一、状态码
- 1xx - 服务器收到请求
- 2xx - 表示成功处理请求,如:200
- 3xx - 需要重定向(配合Location,浏览器直接跳转)
- 301 - 永久重定向
- 302 - 临时重定向
- 304 - 资源未改变,浏览器会使用缓存
- 4xx - 客户端请求错误
- 403 - 客户端无权限
- 404 - 请求地址错误
- 5xx - 服务器端错误
- 500 服务器错误
- 504 网关超时
二、Methods
- get - 获取数据
- post - 新建数据
- patch/put - 更新数据
- delete - 删除数据
三、Restful-API
Restful API 是一种新的 API 设计方法
- 传统 API 设计:把每个 url 当作一个功能
- Restful API 设计:把每个 url 当作一个唯一的资源
API 可用下面两种方式设计成一个资源
- 尽量不用 url 参数
传统的 API 设计:/api/list?pageIndex=2
Restful API 设计:/api/list/2
- 用 method 表示操作类型
传统的 API 设计:
- get 请求(查):/api/get-blog?id=100
- post 请求(增):/api/create-blog
- post 请求(改):/api/update-blog?id=100
Restful API 设计:
- get 请求(查):/api/blog/100
- post 请求(增):/api/blog
- patch 请求(改):/api/blog/100
四、Http Headers
1、通用
- Cache-Control:控制强制缓存的逻辑
2、Request Headers
- Accept:浏览器可接收的数据格式
- Accept-Encoding:浏览器可接收的压缩算法,如 gzip
- Accept-Languange:浏览器可接收的语言,如 zh-CN
- Connection:keep-alive 一次 TCP 连接重复使用
- Cookie
- Host:请求服务器的域名
- User-Agent(简称 UA)浏览器信息
- Content-type:发送数据的格式,如 application/json
3、Response Headers
- Content-type:返回数据的格式,如 application/json
- Content-length:返回数据的大小,多少字节
- Content-Encoding:返回数据的压缩算法,如 gzip
- Set-Cookie:服务端修改 Cookie
- Expires:内容过期时间
- Last-Modified:资源的最后修改时间
- Etag:资源的唯一标识
五、缓存
1、强制缓存
强制缓存逻辑图如下:
Cache-Control :
- max-age:最大缓存时间
- no-cache:不强制缓存
- no-store:不缓存(包括强制缓存和协商缓存)
- private:只允许最终用户做缓存,如 电脑、浏览器、手机等
- public:允许中间路由和代理也能缓存
Expires:旧的缓存标识方式,设置过期时间
2、协商缓存
协商缓存是一个服务端的缓存策略
- 服务端判断客户端资源,是否和服务端资源一样
- 一致则返回 304,否则返回 200 和最新的资源
其中常用的资源标识有(服务端返回):
- Last-Modified:资源的最后修改时间
- Etag:资源的唯一标识
客户端请求时,它们携带的资源标识分别是:
- If-Modified-Since:值与 Last-Modified 相同
- If-None-Match:值与 Etag 相同
3、刷新操作
- 正常操作:地址栏输入 url、跳转链接、前进后退(强制缓存有效、协商缓存有效)
- 手动刷新:F5、点击刷新按钮、右键菜单刷新(强制缓存失效、协商缓存有效)
- 强制刷新:ctrl + F5(强制缓存失效、协商缓存失效)