# HTTP 基础知识
HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol),HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。
三点注意事项:
- HTTP是无连接
- HTTP是无状态
- HTTP
# 请求方法
- GET:请求资源
- HEAD:跟GET方法类似,区别就是不返回主体
- POST:提交资源
- OPTION:请求服务器告知其支持什么method
- PUT:修改资源
- DELETE:删除资源
# HTTP 报文
HTTP 在应用层交互数据的方式,就叫报文。分为:请求报文 & 响应报文。
# 报文结构
请求行 + 请求头 + 请求体
- 请求行:方法 + 路径 + 协议版本
GET / HTTP/1.1
- 请求头:“header(字段名):value(值)”
- 常见请求Header
| 字段 | 作用 |
|---|---|
| Host | 接受请求的服务器的ip和端口 |
| Referer | 请求来源 |
| Cookie | 向服务器传送一个令牌 |
| Authorization | 对自身进行认证的数据 |
| Connection | 是否 |
| Accept | 媒体类型 |
| Accept-Charset | 字符集类型 |
| Accept-Encoding | 编码方式 |
| Accept-Language | 语言 |
| If-Modified-Since | 协商缓存 时间戳 |
| If-None-Match | 协商缓存 哈希值 |
| User-Agent | 客户端信息 |
通用
| 字段 | 作用 |
|---|---|
| Cache-Control | 强缓存 |
| Pragma | 另一种随报文传送指示的方式,但并不专用缓存 |
| Connection | 允许客户端和服务器指定与请求/响应连接有关的选项 |
| Date | 报文创建时间 |
| MIME-Version | 给出了发送端使用的MIME版本 |
| Trailer | 如果报文采用了分块传输编码方式,就可以用这个首部列出位于报文拖挂部分的首部集合 |
| Transfer-Encoding | 告知接收端为了保证报文的可靠传输,对报文采用了什么编码方式 |
| Update | 给出了发送端可能想要“升级”使用的新版本或协议 |
| Via | 显示了报文经过的中间节点(代理、网关) |