美文网首页
【http】状态码

【http】状态码

作者: 前端菜篮子 | 来源:发表于2020-06-03 08:54 被阅读0次

    详见:可能是最详细的HTTP状态码介绍

    • 2XX :成功

    • 3XX:重定向

    • 4XX:客户端错误

    • 5XX:服务器错误

    • 1XX: 请求处理中

    常见状态码

    状态码 描述 实例场景
    101 Switching Protocols 客户端申请websocket连接时,会先发出一个http请求,请求头部声明Connection:Upgrade Upgrade:websocket,然后服务器响应状态码为101,表示切换协议,接下来就可以以websocket协议通讯了。
    200 OK 最常见的状态码,表示成功响应,返回数据。
    206 Partial Content 当文件下载到一半后申请续传,会在请求头中的Range标记需要哪部分的数据,针对这种请求,会返回206和范围数据。
    301 Moved Permanently 更换服务器域名时,一般不会立刻关停旧服务器域名,用户试图访问旧域名时,返回301,并且响应头中Location字段说明新的地址,然后浏览器自动跳转到新的地址。
    304 Not Modified 客户端通过在请求头上声明If-Modified-Since字段校验缓存是否有效,如资源在此日期后并未改动,则返回304表示资源在此日期后没有更新过
    400 Bad Request 当服务器要求必须有一些url参数时,但请求没有带上或者参数名写错了,会返回400
    403 Forbidden 当浏览器通过js提交跨域的复杂请求时,会先发送一个OPTION请求,如果服务器检测不允许其跨域请求,则返回403
    404 Not Found 找不到请求资源,可能是url写错了
    500 Internal Server Error 服务器报错导致返回500

    HTTP缓存:协商缓存304与强制缓存200 from cache

    深入理解HTTP Cache

    image.png

    from memory cachefrom disk cache

    image.png

    随便打开一个网页后在浏览器开发者工具的Network栏发现的细节。

    A、浏览器Network的Size: 3种情况

    • from memory cache
    • from disk cache
    • 资源本身大小(比如:13.6K)

    B、三级缓存原理

    • 1 先查找内存,如果内存中存在,从内存中加载;
    • 2 如果内存中未查找到,选择硬盘获取,如果硬盘中有,从硬盘中加载;
    • 3 如果硬盘中未查找到,那就进行网络请求;
    • 4 加载到的资源缓存到硬盘和内存;

    C、HTTP状态码及区别
    200 form memory cache
    不访问服务器,一般已经加载过该资源且缓存在了内存当中,直接从内存中读取缓存。浏览器关闭后,数据将不存在(资源被释放掉了),再次打开相同的页面时,不会出现from memory cache

    200 from disk cache
    不访问服务器,已经在之前的某个时间加载过该资源,直接从硬盘中读取缓存,关闭浏览器后,数据依然存在,此资源不会随着该页面的关闭而释放掉下次打开仍然会是from disk cache

    304 Not Modified
    访问服务器,发现数据没有更新,服务器返回此状态码。然后从缓存中读取数据。

    浏览器是根据什么决定「from disk cache」与「from memory cache」?贴下某个回答

    • 第一个现象(以图片为例):
      访问-> 200 -> 退出浏览器再进来-> 200(from disk cache) -> 刷新 -> 200(from memory cache)
      总结: 会不会是chrome很聪明的判断既然已经从disk拿来了, 第二次就内存拿吧 快。
    • 第二个现象(以图片为例):
      只要图片是base64 我看都是from memroy cache。
      总结: 解析渲染图片这么费劲的事情,还是做一次然后放到内存吧。 用的时候直接拿
    • 第三个现象(以js css为例):
      个人在做静态测试的发现,大型的js css文件都是直接disk cache
      总结:chrome会不会说 我擦 你这么大 太JB占地方了。 你就去硬盘里呆着吧。 慢就慢点吧。
    • 第四个现象:隐私模式下
      几乎都是 from memroy cache.
      总结: 隐私模式 是吧。 我不能暴露你东西。还是放到内存吧。 你关,我死。

    相关文章

      网友评论

          本文标题:【http】状态码

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