状态码
- 1xx:服务端收到请求
- 2xx:如200,请求成功
- 3xx:如302,重定向
- 4xx:主要为客户端错误,如404,找不到页面
- 5xx:如500,服务端错误
常见状态码
- 200 请求成功
- 301 永久重定向(配合location, 浏览器自动处理)
- 302 临时重定向(配合location, 浏览器自动处理)
- 304 资源未被修改
- 404 资源未找到
- 403 没有权限
- 500 服务器错误
- 504 网关超时
http methods
传统的http method
- get 获取服务端数据
- post发送给服务端数据
现在的http method
- get 获取数据
- post 新建数据
- patch/put 更新数据
- delete 删除数据
Restful API
- 一种新的API设计方法(早已推广)
- 传统api设计:把每个url当成一个功能
- Restful API:把每个url当做一个唯一资源
- 尽量不用url参数
- 使用method表示操作类型
http缓存
强制缓存
Cache-Control
- 在response header中
- 控制强制缓存的逻辑
- 例如:cache-control:age=31536000(单位是秒)
初次请求,返回资源和cache-control,再次请求直接使用本地资源
- max-age 最大缓存时间
- no-cache 不用本地强制缓存
- no-store 不用本地缓存且不用服务端的缓存
- private 只能允许最终用户做缓存
- public 允许中间件做缓存
Expires
- 同在response header中
- 同为控制缓存过期
- 已经被cache-control代替
协商缓存
- 服务端缓存策略
- 服务端判断客户端资源,是否和服务端资源一样
- 一致则返回304,否则返回200和最新资源
资源标识
-
在Respongse Headers中,有两种
-
Last-modified资源的最后修改时间
-
Etag资源的唯一标识(一个字符串,类似人体的指纹)
-
两者共存会优先使用Etag
-
Last- Modified只能精确到秒级
-
如果资源被重复生成,而内容不变,则Etag更精确
http缓存-综述
一张图解释
三种刷新操作
- 正常操作:地址栏输入url,跳转链接,前进后退
- 手动刷新:F5,点击刷新按钮,右击菜单刷新
- 强制刷新:ctrl+F5
不同刷新操作,不同的缓存策略
- 正常操作:强制缓存有效,协商缓存有效
- 手动刷新:强制缓存失效,协商缓存有效
- 强制刷新:强制缓存失效,协商缓存失效