这是我参与「第五届青训营 」伴学笔记创作活动的第 24 天
学习笔记
HTTP 报文
HTTP(hypertext transport protocol)协议『超文本传输协议』,协议详细规定了浏览器和万维网服务器之间互相通信的规则。
请求报文
重点是格式与参数
行 POST /s?ie=utf-8 HTTP/1
头 Host: www.baidu.com
Cookie: BAIDUID=AD3B0FA706E; BIDUPSID=AD3B0FA706;
Content-type: application/x-www-form-urlencoded
User-Agent: chrome 83
空行
体 username=admin&password=admin
注:post请求才有请求体
Request Headers
| Request Header | 说明 |
|---|---|
| Accept | 浏览器可接收的数据格式(如: / ) |
| Accept-Language | 客户端接收的语言类型(如:zh-CN,en-US) |
| Connection | 维护客户端和服务端的连接关系(如:Keep-Alive) |
| Host | 连接的目标主机和端口号(如:localhost:8080) |
| User-Agent | 客户端版本号的名字 |
| Accept-Encoding | 客户端能接收的压缩数据的类型(如:gzip) |
| Cookie | 客户端暂存服务端的信息 |
| Content-type | 发送数据的格式,get请求没有(如:application/json) |
响应报文
行 HTTP/1 200 OK
头 Content-Type: text/html;charset=utf-8
Set-Cookie: BD_CK_SAM=1;path=/
Content-length: 2048
Content-encoding: gzip
空行
体 <html>
<head>
</head>
<body>
<h1>尚硅谷</h1>
</body>
</html>
(html 文本/json 文本/js/css/图片...)
- 负载(Payload)用来查看请求发送的查询字符串和form data
- Preview用来查看解析后的返回数据
- Response用来查看返回数据
Response Headers
| Response Headers | 说明 |
|---|---|
| Content-Type | 服务端发送的类型及采用的编码方式(如:text/html; charset=utf-8) |
| Content-Encoding | 服务端能够发送压缩编码类型(如:gzip) |
| Content-Length | 服务端发送的压缩数据的长度(如:128) |
| Set-Cookie | 服务端发送到客户端的暂存数据 |
| Cache-Control | 缓存相关 |
| Last-Modified | 缓存相关 |
| Etag | 缓存相关 |
post请求体参数格式
- Content-Type: application/x-www-form-urlencoded;charset=utf-8 用于键值对参数,参数的键值用=连接, 参数之间用&连接 例如:
name=%E5%B0%8F%E6%98%8E&age=12 - Content-Type: application/json;charset=utf-8 用于 json 字符串参数 例如:
{"name": "%E5%B0%8F%E6%98%8E", "age": 12} - Content-Type: multipart/form-data 用于文件上传请求
常见的响应状态码
状态码
-
1xx:指示信息-表示请求已接收,继续处理 -
2xx:成功-表示请求已被成功接收 -
3xx:重定向-要完成请求必须进行更进一步的操作 -
4xx:客户端错误-请求有语法错误或请求无法实现 -
5xx:服务器错误-服务器未能实现合法的请求 常见的http状态码 -
****
200:客户端请求成功 -
206:客户发送带有range头的GET请求,服务器完成了它 -
301:重定向(永久) -
302:重定向(临时) -
304:资源未被修改,有缓存 -
403:请求被拒绝 -
404:资源未找到 -
500:服务器错误 -
504:网关超时
不同类型的请求及其作用
GET: 从服务器端读取数据(查)POST: 向服务器端添加新数据 (增)PUT: 更新资源 (改)DELETE: 删除服务器端数据 (删)