目录
HTTP概述
HTTP特点
HTTP请求协议
请求数据的格式
响应数据的格式
响应的状态码
HTTP协议的解析
HTTP概述
- HTTP:Hyper Text Transfer Protocol,超文本传输协议,规定浏览器和服务器之间数据传输的规则。(即请求数据和响应数据的格式)
- 以上一篇SpringBoot项目的案例为例
- 在浏览器中发送对应的请求,服务器对其进行响应
- 请求数据
- 响应数据
HTTP特点
- 基于TCP协议:面向连接,安全
- 基于请求-响应模型的:一次请求对应一次响应
- HTTP协议是无状态的协议:对于事务处理没有记忆功能。每次请求-响应都是独立的。
- 缺点:多次请求间不能共享数据
- 优点:速度快
HTTP请求协议
请求数据的格式
三部分:请求行、请求头、请求体
- 请求行:请求数据第一行(请求方式、资源路径、协议)
- 请求头:第二行开始以键值对的形式
- 常见请求头的含义:
-
Host 请求的主机名 User-Agent 浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0...Chrome/79,IE浏览器的标识类似Mozilla/5.0(windowsNT...)like Gecko Accept 标识浏览器接受的资源类型,如text/*,image/*或者*/*表示所有 Accept-Language 表示浏览器偏好的语言,服务器可以据此返回不同语言的网页 Accept-Encoding 表示浏览器支持的压缩类型,例如gzip,deflate等 Content-Type 请求主体的数据类型 Content-Length 请求主体的大小(单位:字节)
-
-
请求体:POST请求,存放请求参数
-
-
(GET和POST请求方式的区别,也是一道面试题)
GET:请求参数在请求行中,没有请求体,请求大小有限制 -
POST:请求参数在请求体中,POST请求没有大小限制
-
响应数据的格式
三部分:响应行、响应头、响应体
- 响应行:响应数据第一行(协议、状态码、描述)
- 响应头:第二行开始,以键值对的形式呈现的数据
- 常见响应头
-
Content-Type 表示响应内容的类型,例如text/html、application/json=》将来客户端浏览器获取到数据后就会按照对应的数据格式进行处理 Content-Length 表示响应内容的长度(字节数) Content-Encoding 表示该响应压缩算法,例如gzip。=》服务器端采用什么方法对数据进行压缩;客户端也用对应的方法进行解压缩 Cache-Control 指示客户端应如何缓存,例如max-age=300表示最多可以缓存300秒=》服务器端返回的数据在浏览器缓存的时间 Set-Cookie 告诉浏览器当前页面的所在的域设置cookie
-
- 常见响应头
- 响应体:最后一部分,存放响应数据
响应的状态码
- 状态码大类
-
1xx 响应中-临时状态码,表示请求已经接收,告诉客户端应该继续请求或者它如果已经完成则忽略它 2xx 成功-表示请求已经被成功接受,处理已完成 3xx 重定向-重定向到其他地方,让客户端再发送一次请求以完成整个处理 4xx 客户端错误-处理发生错误,责任在客户端。如:请求了不存在的资源,客户端未被授权,禁止访问等。 5xx 服务器错误-处理发生错误,责任在服务器。如:程序抛出异常
-
- 常见响应状态码(200、404、500)
状态码大全:HTTP 响应状态码 - HTTP | MDN (mozilla.org)