网络/协议
HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。
HTTP协议的报文格式可以分为请求报文和响应报文两种,具体如下:
请求报文格式如下:
请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
请求行以方法字段开始,后面分别是URL字段和HTTP协议版本字段,并以CRLF结尾。SP是分隔符。除了在最后的CRLF序列中CF和LF是必需的之外,其他都可以不要。有关通用信息头,请求头和实体头方面的具体内容可以参照相关文件。
HTTP请求报文包括请求行,请求头和请求正文3个部分,格式如下:
请求行(request line): 请求方法 + 请求URI + HTTP协议版本
请求头(request header):可选的头部信息,用于补充请求的内容和其他信息
请求正文(request body):可选的,通常包含应用程序要传输到服务端的数据
例如,以下是一个GET请求的报文:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Referer: https://www.google.com/
Connection: keep-alive
应答报文格式如下:
状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。有关通用信息头,响应头和实体头方面的具体内容可以参照相关文件。
HTTP响应报文包括状态行,响应头和响应正文3个部分,格式如下:
状态行(status line):HTTP协议版本 + 状态码 + 状态描述
响应头(response header):可选的头部信息,用于补充响应的内容和其他信息
响应正文(response body):可选的,通常包含服务端返回的数据
例如,以下是一个200 OK状态码的响应报文:
HTTP/1.1 200 OK
Date: Mon, 21 Oct 2021 08:30:45 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Tue, 29 Dec 2020 07:26:13 GMT
ETag: “0-6166700c”
Content-Type: text/html
Content-Length: 5804
Connection: close
《!doctype html》
《html》
《head》
《title》Example Web Page《/title》
《/head》
《body》
《h1》Hello World!《/h1》
《p》This is an example web page《/p》
《/body》
《/html》
以上就是HTTP协议的请求报文和响应报文的基本结构和格式。
全部0条评论
快来发表一下你的评论吧 !