1、http常见的状态码有哪些(1)状态码分类
1xx 服务器收到请求
2xx 请求成功, 如 200
3xx 重定向, 如 302
4xx 客户端错误, 如 404
5xx 服务端错误, 如 500
(2)常见的状态码
200 请求成功
301 永久重定向 (配合 location,浏览器自动处理)
302 临时重定向 (配合 location,浏览器自动处理)
304 资源未被修改
404 资源未找到
500 服务端错误
504 网关超时
2、http methods(1)传统的methods
get 获取服务器的数据
post 向服务器提交数据
简单的网页功能,就这两个操作
(2)现在的methods
get 获取数据
post 新建数据
patch/put 更新数据
delete 删除数据
(3)Restful API
一种新的 API 设计方法
传统的 API: 将每个url 当作一个功能
Restful API 设计: 将每个url 当作一个唯一资源
例如:
传统API设计: /api/list?pageIndex = 2
Restful API 设计: /api/list/2
用method表示操作类型(restful API 设计)
post 请求 /api/blog
patch 请求 /api/blog/100
get 请求 /api/blog/100
3、http headers(1)常见的 Request Headers
Accept 浏览器可接收的数据格式
Accept-Encoding 浏览器可接收的压缩算法, 如 gzip
Accept-Language 浏览器可接收的语言, 如 zh-CN
Connection:keep-alive 一次TCP连接重复使用
Cookie
Host
User-Agent(简称UA)浏览器信息
Content-Type 发送数据格式, 如 application/json
(2)常见的 Response Headers
Content-Type 返回数据的格式,如 application/json
Content-Length 返回数据的大小,多少字节
Content-Encoding 返回数据的压缩算法, 如gzip
(3)自定义headers
(4)缓存相关的headers
Cache-Control
Expires
Last-Modified
Etag
If-Modified-Since
If-None-Match
4、http 缓存http 缓存分为强制缓存和协商缓存
(1)强制缓存
在 Response Headers中的 Cache-Control 控制强制缓存逻辑,如 Cache-Control: max-age = 31536000(单位是秒)
Cache-Control的值有一下几个:max-age、no-cache、no-store、private、public
在Response Headers中的 Expires 也同样控制着缓存过期


(2)协商缓存
服务端缓存策略,服务器判断客户端资源,是否和服务端资源一样,一致则返回304,否则返回200 和最新资源

在 Response Headers中,有两种资源标识:last-modified 和 etag
last-modified是资源的最后修改时间
etag 是资源的唯一标识(一个字符串)
如果两者存在,会先使用etag,last-modified只能精确到秒级,如果资源被重新生成,而内容不变,则etag 更精确




5、三种刷新操作正常操作: 地址栏输入url,跳转链接,前进后退等
手动刷新: f5、点击刷新按钮、右击菜单刷新
强制刷新:ctrl + f5
不同的刷新操作,不同的缓存策略
正常操作: 强制缓存有效,协商缓存有效
手动刷新: 强制缓存失效,协商缓存有效
强制刷新: 强制缓存失效,协商缓存失效