美文网首页
网络请求相关

网络请求相关

作者: 青春向来如此 | 来源:发表于2021-04-08 21:51 被阅读0次

    常见http状态码

    301永久重定向
    302临时重定向
    304缓存
    400参数错误
    401没登录
    403登陆了但没有权限
    404没有此接口或页面
    500 服务器错误
    502 网关错误

    缓存

    1.强制缓存 不会向服务器发请求
    html不走强制缓存 内部引用的资源可以强制缓存(js img css)

    1. 对比缓存
      去服务器比较一下是否发生变化

      服务器给js等资源设置缓存头


    强制缓存 cache-control
    1.no-store 每次都请求服务器 但是不存储缓存到浏览器内存
    2.no-cache 每次都请求服务器 但是会缓存到浏览器内存中
    3.public
    4.private
    5.max-age

     + 如果设置了no-cache ,请求服务器,服务器返回304 则去缓存中找得到
     + 如果设置了no-store ,请求服务器,服务器返回304 则去缓存中找不到
    

    cache-control(新版浏览器) expires(旧版本浏览器)
    cache-control max-age=10 10秒过期
    expires new Date(Date.now()+10*1000) 10秒过期


    对比缓存

    1. 根据文件的修改时间 决定是否返回304 让浏览器找缓存
      last-modified:文件的最终修改时间
      此后的请求中会带上这个时间if-modify-since:时间,然后服务器做对比,如果这个时间和最新的修改时间一样就返回304(缺点:时间变了内容可能没变或者1秒内变化两次)
    2. 根据文件的内容变化 决定是否返回304 让浏览器找缓存
      node中通过摘要算法crypto生成文件的摘要信息(md5 不可逆的算法称为摘要算法)
      相同的内容生成的摘要相同
      md5 = crypto.createHash('md5').update(value).digest('base64')
      res.setHeader('Etag' ,md5)
    

    之后的请求头中会带上if-none-match 来对比


    强制缓存和对比缓存配合使用

    +强制缓存 cache-control 设为no-cache
    +对比缓存 last-modified:文件的最终修改时间
    +Etag

    缓存总结:有强制,走强制;强制失效,走对比。

    相关文章

      网友评论

          本文标题:网络请求相关

          本文链接:https://www.haomeiwen.com/subject/lyxbkltx.html