# 请求(响应)结构
# 请求结构
- 请求行
- 请求头
- 空行
- 请求体
# 请求行
- 请求方法
- URL(请求路径)
- HTTP版本
GET /user HTTP/1.1
# 请求头
本质上是一系列的键值对,用来提供额外的上下文及信息,以下是一些常用的字段
Key | 用途 |
---|---|
Host | 指定服务器域名和端口号(可选) |
User-Agent | 包含客户端的信息 |
Accept | 客户端可以接收那些类型的数据(服务器可以返回哪些数据) |
Accept-Language | 希望服务器优先选择的语言 |
Accept-Encoding | 客户端支持的编码方式(服务器可以返回的编码类型) |
Connection | 通信完成后的连接状态(keep-alive/close) |
Cookie | 客户端保存的全部Cookie |
Content-Length | 请求体大小 |
Content-Type | 请求体的数据类型 |
Authorization | 令牌 |
# 空行
用来识别请求头结束
# 请求体
只有POST方法有
可选部分,当需要上传文件或者上传数据时被使用到,以下是一些常用类型(写在Content-Type中)Content-Type | 用途 |
---|---|
application/x-www-form-urlencoded | URL编码式的键值对,例如key1=value1&key2=value2 |
multipart/form-data | 通常用于上传文件 |
application/json | json文件 |
text/plain | 纯文本 |
application/xml | xml文件 |
application/octet-stream | 二进制数据流 |
# 示例:
# 响应结构
- 状态行
- 响应头
- 响应体
# 状态行
- HTTP协议版本
- 状态码
- 状态信息
HTTP/1.1 200 OK
# 响应头
和请求头类似,以键值对的形式存在,包含服务器信息,响应内容等,常见字段:
Key | 用途 |
---|---|
Content-Type | 响应主体的类型 |
Content-Length | 响应主体的长度 |
Server | 服务器信息 |
Cache-Control | 缓存指令 |
Expires | 响应过期时间 |
# 响应体
服务器返回的实际数据