目录
1. HTTP协议
1.1 HTTP简介
1.2 Fiddler
2. HTTP请求
2.1 首行
2.2 请求头(header)
2.3 空行
2.4 正文(body)
3. HTTP响应
3.1 首行
3.2 响应头(header)
3.3 空行
3.4 正文(body)
1. HTTP协议
1.1 HTTP简介
1. HTTP协议即“超文本传输协议”,即不止可以传输文本,还可以传输图片、音频、视频等二进制数据,是一个应用层协议;
2. HTTP已经更新到HTTP/3.0,但目前大规模使用的版本是HTTP/1.1;
3. 最常见的使用HTTP协议的场景有:
(1)网站网页与后台服务器的交互;
(2)手机APP与后台服务器的交互;
4. 应用层协议需要基于传输层协议向上层提供服务,HTTP是基于TCP协议实现的。
5. HTTP协议是一种“一问一答”结构模型的协议。
6. HTTP报文与之前的TCP/UDP报文不同,HTTP的报文分为请求和响应两种格式。
注:1. 常见的协议结构模型有:
(1)一问一答:访问网站;
(2)多问一答:上传文件;
(3)一问多答:下载文件;
(4)多问多答:串流,远程桌面;
1.2 Fiddler
Fiddler是当今广泛使用的HTTP抓包工具,具体下载以及简单使用见下文,此处不再赘述:
【JavaEE】_Fiddler抓包HTTP请求与响应-CSDN博客
2. HTTP请求
2.1 首行
HTTP请求的第一行有三个部分信息,分别使用空格进行分隔:
1. GET:HTTP请求的“方法”(method),表示请求的目的;
2. URL:即唯一资源定位符,用于描述一个资源在网络上的位置:
3. 版本号:HTTP/1.1目前是最主流的HTTP版本;
2.2 请求头(header)
1. 请求头是键值对结构的数据,每个键值对独占一行,格式为: 键: 值;
2. 此处的键与值都是标准规定的,后续详细介绍;
2.3 空行
空行用于作为请求头的结束标记;
2.4 正文(body)
有些HTTP请求有正文部分,有些HTTP请求没有正文部分;
3. HTTP响应
3.1 首行
HTTP响应首行有三个部分:
1. 版本号:HTTP/1.1
2. 状态码(200):描述了请求的结果;
3. 状态码描述(OK):进一步描述状态码的含义:
3.2 响应头(header)
同HTTP请求一样:
1. 请求头是键值对结构的数据,每个键值对独占一行,格式为: 键: 值;
2. 键与值内容由标准规定;
3.3 空行
空行是响应头的结束标志;
3.4 正文(body)
正文内容可能比较长,并且可能是多种样式,如HTML,CSS,JS,JSON,XML,图片、字体、视频、音频等等,可能会进行压缩;