HTTP请求由请求行、请求头和请求体三部分组成。
请求行
请求行包括三个部分:请求方法、URL和HTTP协议版本。
格式如下:
<请求方法> <URL> <HTTP协议版本>
例如:
GET /index.html HTTP/1.1
其中:
请求方法:指定客户端希望服务器执行的操作,常见的有GET、POST、PUT、DELETE等。
网址:指定请求的资源
HTTP协议版本:指定客户端使用的HTTP协议版本,常见的有HTTP/1.0和HTTP/1.1。
请求头
请求头包含多个键值对,每个键值对占一行,格式为“键: 值”。键和值之间使用一个冒号和一个空格分隔。请求头的作用是告诉服务器关于客户端的一些信息,例如客户端使用的浏览器类型、所能接受的文档类型、语言等。
常见的请求头包括:
User-Agent:客户端使用的浏览器类型。
Accept:客户端能够接受的文档类型。
Accept-Language:客户端能够接受的语言类型。
Host:请求的服务器地址。
Connection:客户端和服务器之间的连接状态,常见的有keep-alive和close。
Content-Type:请求体中所发送的实体的MIME类型。
例如:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
其中:
Host:请求的服务器地址是 www.example.com。
User-Agent:客户端使用的是Chrome浏览器。
接受:客户端能够接受的文档类型包括文本
连接:客户端和服务器之间的连接状态为keep-alive。