HTTP协议、请求响应

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才能运行

官网:Apache Tomcat® - Welcome!

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)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值