这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
HTTP协议
01.初始HTTP
什么是HTTP
- Hyper Text Transfer Protocol
- 应用层协议,基于TCP协议
- 请求响应
- 简单可扩展
- 无状态:没有记忆能力,每个请求都是独立的
TCP协议特点
-
面向连接
- 建立和关闭连接
-
点对点(一对一)
-
可靠交付
- 错误确认和重传
-
面向字节流,也就是说仅把上层协议传递过来的数据当成字节传输
- 拥塞控制
- 流量控制(发送方和接收方的传输速率协调)
02.协议分析
请求方法
| 请求方法 | 说明 |
|---|---|
| GET | 请求一个指定资源的表示形式。使用GET的请求应该只被用于获取数据 |
| POST | 用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用 |
| PUT | 用于请求有效载荷替换目标资源的所有当前表示 |
| DELETE | 删除指定的资源 |
| HEAD | 请求一个与 GET 请求的响应相同的响应,但没有响应体 |
| CONNECT | 建立一个到由目标资源标识的服务器的隧道 |
| OPTIONS | 用于描述目标资源的通信选项 |
| TRACE | 沿着到目标资源的路径执行一个消息环回测试 |
| PATCH | 用于对资源应用部分修改 |
-
Safe安全的方法:不会修改服务器的数据的方法
- GET/HEAD/OPTIONS
-
Idempoten幂等的方法:多次执行效果一致,服务器状态也一致
- GET/HEAD/OPTIONS/PUT/DELETE
- 安全的方法都是幂等的
状态码
- 200 OK-客户端请求成功
- 301-资源(网页等)被永久转移到其它URL
- 302-临时跳转
- 401 Unauthorized-请求未经授权
- 404-请求资源不存在,可能是输入了错误的URL
- 500-服务器内部发生了不可预期的错误
- 504 Gateway Timeout-网关或者代理的服务器无法在规定的时间内获得想要的响应。
RESTful API
-
一种API设计风格;REST--Representational State Transfer
- 每个URI代表一种资源
- 客户端和服务器之间,传递这种资源的某种表现层
- 客户端通过 HTTP method,对服务器资源进行操作,实现“表现层状态转化”