http协议的构成及字段说明(请求头、请求体、响应头)
HTTP请求:Hyper Text Transfer Protocol的缩写,即超文本传输协议。
HTTP协议的结构
HTTP报文由客户机到服务器的请求和从服务器到客户机的相应构成。
1、请求报文的组成:
请求行 | 信息头 | 请求头 | 实体头 | 报文主体 |
请求行的格式如下:
Method [分隔符] Request - URL [分隔符] HTTP-Version CRLF |
解释说明:
(1)Method 表示完成Request - URL的方法,该字段是大小写敏感的,据RFC2616标准(现行的HTTP/1.1)得知,通常有以下8种方法:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2)[分隔符]为空格 |
(3)Request - URL: 遵循URL格式,此字段为星号(*)时,说明请求并不用于某个特定的资源地址,而是用于服务本身。 |
(4)HTTP-Version:表示支持的HTTP版本,如HTTP/1.1 |
(5)CRLF:表示换行回车符 HTTP的头包括通用的信息头、请求头、响应头、实体头4部分,每个头域由一个域名、冒号和值域3部分组成。域名是大小写无关的;域值前可以添加任何数量的空格,每个HTTP请求可以包含多个HTTP头域。 HTTP报文主体则包含了HTTP请求的内容,对于get方法,报文主体为空,对于post方法,报文主体则包含需要发送给服务器的数据。 |
2、响应报文的组成:
状态行 | 信息头 | 响应头 | 实体头 | 报文主体 |
解释说明:
状态行由状态码和原因分析两部分组成,其中,状态码由3位数字组成,表示请求是否被理解或被满足,用来支持自动操作;原因分析是对原文的状态码作简单的描述,用于供用户使用。 |
3、无论是请求报文还是响应报文,虽然分别由以上五个部分组成,但是在一定情况下有些并不是必须要的,但是对于:General-header(通用头部)、请求头(客户端->服务器[Request Header])、响应头(服务端->客户端[Response Header]) 这三部分是必须要有的。于是我那一个实例来对这三部分的内容进行说明记录:
(1)General-header(通用头部)
(2)请求头(客户端->服务器[Request Header]) --以下数据是通过fidder抓取所得(关于Fidder基本说明的去这 里:https://www.cnblogs.com/Zhan-W/p/9813218.html)。
(3)响应头(服务端->客户端[Response Header])
其中涉及到前端页面性能问题的字段主要有以下:Accept-Encoding、Connection、Date
4、GET与POST请求过程
POST
请求的过程:
|
|
|
|
|
|
GET
请求的过程:
|
|
|
|
5、HTTP状态码的分类
|
|
|
|
|
|
|
|
|
|
|
|
来源:CSDN
作者:CLIMB_IT ERICA
链接:https://blog.csdn.net/cldimd/article/details/104698943