1.HTTP协议
1>概述
概念:超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
特点:
1.基于TCP协议:面向连接,安全
2.基于请求-响应模型的:一次请求对应一次响应
3.HTTP协议是无状态的协议:对于事物处理没有记忆能力。每次请求-响应都是独立的。
缺点:多次请求间不能共享数据。(会话技术解决)
优点:速度快
2>请求协议
请求数据格式
请求行:请求数据第一行(请求方式、资源路径、协议)
请求头:第二行开始,格式key:value
请求体:POST请求,存放请求参数
GET:请求参数在请求行中,没有请求体,如:/brand/findAll?name=OPPO&status=1。GET请求大小是有限制的。
POST:请求参数在请求体中,POST请求大小是没有限制的(面试题get和post的区别)
3>响应协议
响应行:响应数据第一行(协议、状态、描述)
响应头:第二行开始,格式key:value
响应体:最后一部分,存放响应数据
状态码:200,404,500等
4>协议解析
web服务器
web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是“提供网上信息浏览服务”
Tomcat(汤姆猫)
概念:Tomcat是Apache基金会的一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量javaEE规范。
JavaEE:java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、JavaIDL、JTS、JavaMail、JAF(过时技术Servlet,JSP,EJB等)
Tomcat也被称为Web容器、Servlet容器。Servlet程序需要依赖于Tomcat才能运行
4.请求响应
浏览器发起请求→前端控制器(Springboot底层提供)(HttpServletRequest、DispatcherServlet、HttpServletResponse)→XxxController→响应→浏览器
-
请求(HttpServletRequest):获取请求数据
-
响应(HttpServletResponse):设置响应数据
-
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都储存在服务端。(浏览器,维护方便、体验一般)
-
CS架构:Client/Server,客户端/服务器架构(app,开发、维护麻烦 体验不错)
1>请求
Postman
postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件
①简单参数
- 原始方式获取请求参数:
原始方法形参中声明HttpsServletRequest对象
调用对象的getParameter(参数名)
- SpringBoot中接受简单参数:
请求参数名与方法形参名相同
会自动进行类型转换
- @RequestParam注解
方法形参名称与请求参数名称不匹配,通过该注解完成映射
该注解的required属性默认为true,代表请求参数必须传递,可以设置为false
②实体参数
简单实体对象:请求参数名与形参对象属性名相同,定义POJO接收即可
复杂实体参数:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数
③数组集合参数
数组:请求参数名与形参中数组变量名相同,可以直接使用数组封装
集合:请求参数名与形参中集合变量名相同,通过@RequestParam绑定参数关系
④日期参数
使用@DataTimeFormat注解完成日期参数格式转换
⑤json参数
json数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识
⑥路径参数
通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用@PathVariable获取路径参数
2>响应
1.@ResponseBody
位置:Controller类上/方法上
作用:将方法返回值直接响应,若返回值类型是实体对象/集合,转json格式响应
2.统一响应结果
Result(code,msg,data)