请求行:
有3种请求,告诉你你这个请求的最基本的信息和操作是什么
-
请求方式,例如:GET、POST、PUT、DELETE等等
-
请求URI,也就是访问的网址,它可以是一个绝对路径,也可以是一个相对路径。
-
协议版本,表示该请求所对应的http版本协议,比如HTTP/1.1
例子,一个使用GET方法请求http://www.example.com/index.html页面的HTTP请求的请求行如下所示:
GET /index.html HTTP/1.1
请求头:
告诉你请求的最基本内容是什么
-
本机的基本情况
-
加密信息
- Authorization:指定客户端提供的认证凭据。
-
请求内容的格式,还有编码方式
- Content-Type:指定请求实体的MIME类型; 例如:text/html; charset=utf-8
- Accept-Language:指定客户端支持的语言;
- Accept-Encoding:指定客户端支持的压缩算法;
- Content-Length:指定请求实体的长度;
-
访问的端口协议等信息
- Host:指定被请求资源的主机名和端口号;
- User-Agent:指定HTTP客户端的名称和版本号;
- Accept:指定客户端能够接收的MIME类型;
- Connection:指定客户端与服务器之间连接的类型;
一个常见的Get 头:
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/88.0.4324.182 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
一个常见的post头:
POST /submit-form 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/88.0.4324.182 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 28
name=John+Doe&email=johndoe@example.com
请求内容:
只有request为post或者put的时候才会用到这个请求内容,主要内容是发送的类型还有内容,常见的Content-Type类型包括:
- application/x-www-form-urlencoded:用于提交表单数据的默认方式,请求内容是参数名和参数值的键值对,中间用“&”分隔。
- multipart/form-data:用于上传文件和二进制数据,请求内容包含多个部分,每个部分都有自己的Content-Type和Content-Disposition头信息。
- application/json:用于发送JSON格式的数据,请求内容是JSON对象或数组的字符串表示形式。
- text/plain:用于发送纯文本数据,请求内容是纯文本。
以下是一个使用POST方法提交JSON数据的HTTP请求示例,其中请求内容为一个JSON对象:
POST /api/data HTTP/1.1
Host: www.example.com
Content-Type: application/json
Content-Length: 57
{
"name": "John Doe",
"age": 30,
"email": "johndoe@example.com"
}