http状态码和http缓存

http 常见的状态码有哪些

  • 状态码分类
  • 1xx 服务器收到请求(后台收到的提示)
  • 2xx 请求成功 200
  • 3xx 重定向 301,302,304
  • 4xx 客户端错误,如404
  • 5xx 服务端错误,如500
  • 常见状态码
  • 200成功
  • 301 永久重定向(配合location,浏览器自动处理,比如换域名)
  • 302 临时重定向(配合location,浏览器自动处理,这次访问新的,下次不一定)
  • 304资源未被修改 (资源在本地还有效,不用再请求)
  • 404资源未zhaiod
  • 403 没有权限
  • 500 服务器错误
  • 504 网关超时
  • 就是一个约定,跟着执行就好了

什么是 Restful-API

  • 传统的methods
  • get获取服务器数据
  • post像服务器提供数据
  • 现在的methods
  • get 获取数据
  • post 新建数据
  • put/patch 更新数据 patch(补丁)
  • delete 删除数据
  • Restful-API
  • 一种新的API设计方法(早就推广使用)
  • 传统API设计:把每个url当做一个功能
  • Restful-API设计:把每个url当做一个唯一的资源

如何设计成一个资源

  • 尽量不用url参数
  • 用method表示操作类型

不用url参数:

  • 传统API设计:/api/list?pageIndex=2
  • Restful-API设计:/api/list/2 (第二页的资源)
    用method表示操作类型:

传统api设计
在这里插入图片描述

Restful-API设计
在这里插入图片描述

  • 传统是用 api表示功能,用不同的api表示是更新还是创建
  • Restful-API把api当成资源,同一个资源(api)的不同操作用method区分是更新还是创建

http 哪些常见 headers

  • 常见的Request Headers
  • Accept 浏览器可接收的数据格式
  • Accept-Encoding 浏览器可接收的压缩算法,如gzip
  • Accept-Languange 浏览器可接收的语言,如zh-CN
  • Connection:keep-alive 一次TCP连接重复使用
  • cookie 数据
  • Host 请求域名
  • User-Agent (UA)浏览器信息
  • Content-type 发送数据的格式,如application/json
  • 常见的Response Headers
  • Content-type 返回数据的格式,如application/json
  • Content-length 返回数据的大小,多少字节
  • Content-Encoding 返回数据的压缩算法,如gzip
  • Set-cookie 服务器端修改cookie
  • 自定义 header
    在这里插入图片描述
    Request Headers里会多一个 字段,X-Requested-Width
  • 缓存相关的headers
    在这里插入图片描述

http 为何需要缓存

为什么需要缓存:

为了让页面快一点,网络请求比较慢,数据要要缓存,减少网络请求的体积和数量。网络请求具有不稳定性

哪些资源可以被缓存?

静态资源(js css img)在打包完成后,加上哈希,不会被改变

cache-control 是什么意思 - http 强制缓存

cache-control的值

  • max-age 设置缓存最大过期时间
  • 不用本地缓存,正常请求服务端,交给服务处理(可能有协商缓存)
  • 不用本地缓存,不用服务端缓存措施
  • private 只能允许最终用户做缓存
  • public 允许中间路由或代理也可以做缓存
  • Response Headers中,服务器端返回
  • 控制强制缓存的逻辑
  • 例如cache-control:max-age=31536000(单位是秒) 给资源加上最大缓存时间一年
    在这里插入图片描述
    再次请求的时候,判断cache-control设置的时间有没有过期,没有就会在本地缓存找资源 减少网络请求。如果缓存过期,去服务器请求,又返回资源和cache-control
    在这里插入图片描述
    关于Expires
  • 同在Response Headers
  • 同为控制缓存过期
  • 已被cache-control取代

Etag 和 Last-Modified 是什么意思 - http 协商缓存

协商:带着资源标识判断

  • 服务端缓存策略,服务端判断资源是否用缓存
  • 服务器判断客户端资源,是否和服务端资源
  • 一致则返回304,否则返回200和最新的资源

资源标识

在Response Headers中:

  • Last-Modified 资源的最后修改时间
  • Etag 资源的唯一标识

在请求头Request Headers中:

  • if-Modified-Since,也是资源的最后修改时间 ,是服务器传过来的Last-Modified值
  • if-Node-Match,也是资源的唯一标识,是服务器传过来的Etag值
    在这里插入图片描述在这里插入图片描述
  • 会优先使用Etag
  • Last-Modified只能精确到秒级
  • 如果资源被重复生成,而内容不变,则Etag更精确
  • 如果同时设了 ETag 和 Last-Modified,那么必须同时满足 ETag 和 Last-Modified一致才会 返回304

http缓存综述

在这里插入图片描述

刷新页面对 http 缓存的影响

三种刷新操作

  • 正常操作:地址栏输入url,跳转链接,前进后退等
  • 手动刷新:F5,点击刷新按钮,点击菜单刷新
  • 强制刷新:ctrl+F5

不同刷新操作,不同的缓存策略

  • 正常操作:强制缓存有效,协商缓存有效
  • 手动刷新:强制缓存失效,协商缓存有效
  • 强制刷新:强制缓存失效,协商缓存失效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值