http

168 阅读1分钟

HTTP 报文结构

组成

起始行 + 头部 + 空行 + 实体

笔记

  1. 以前以为只有header和实体
    1. 实际上还有起始行
    2. GET /home HTTP/1.1
    3. HTTP/1.1 200 OK
  2. 空行的作用
    1. 隔开头部和实体
    2. 空行后面就是实体

request payload

本质

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