HTTP 报文结构
组成
起始行 + 头部 + 空行 + 实体
笔记
- 以前以为只有header和实体
- 实际上还有起始行
- GET /home HTTP/1.1
- HTTP/1.1 200 OK
- 空行的作用
- 隔开头部和实体
- 空行后面就是实体
request payload
本质
- Request Payload本质就是http请求的请求体
- chrome上的Request Payload” 和“Form Data”都是Request Payload
- 默认手写个ajax
- 表现为request payload
- 默认的Content-Type为text/plain
- Request Payload会对非字符串做字符串转换。
- 浏览器不知道数据来自哪里
- Content-Type如果设置了Content-Type: application/x-www-form-urlencoded
- 表现为form data
- 在这里,浏览器知道更多:它知道bar是提交表单的输入字段foo的值。
- 值得形式是以key1=value1&key2=value2的形式提交的。
- Content-Type: multipart/form-data
- 文件上传,也是post,表现为form data
- 请求体也是一个字符串,但是添加了分隔符等内容的构造体
- Content-Type: multipart/form-data; boundary=${bound}
- ${bound} 是一个占位符,代表我们规定的分割符,可以自己任意规定,但为了避免和正常文本重复了,尽量要使用复杂一点的内容。
- Content-Type: application/json
- 发送的数据为JSON.stringify(formDataObject)
- 表现为request payload