301、302、304

  1. 301 Moved Permanently 永久移动。是指请求的资源已被永久的移动到新的URL,返回信息会包括新的URL,浏览器还会自动定向到新的URL。今后任何新的请求都应该使用新的URL来代替。
  2. 302 Found 临时移动。与301类似。但是资源只是临时被移动。客户端应该继续使用原有的URI
  3. 304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存所访问过的资源。通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。

什么时候会出现304
如果客户端发送了一个带条件的GET请求已被允许,而文档中的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码。即客户端和服务器端只需要传输很少的数据量来做文件的校验,如果文件没有修改过,则不需要返回全量的数据。

304的缓存原理
1.服务器首先产生Etag,服务器可在稍后使用它来判断页面是否被修改。本质上客户端通过该记号传回服务器要求服务器验证(客户端)缓存。
2.304是HTTP的状态码,服务器用来标识这个文件没有被修改,不返回内容,浏览器接受到这个状态码会去去找浏览器缓存的文件。
3.流程:

  • 客户端请求一个页面A。服务器返回页面A,并在A上加一个Tage客服端渲染该页面,并把Tage也存储在缓存中。客户端再次请求页面A。
  • 并将上次请求的资源和ETage一起传递给服务器。服务器检查Tage.并且判断出该页面自上次客户端请求之后未被修改。直接返回304。
  • last-modified: 客服端请求资源,同时有一个last-modified的属性标记此文件在服务器最后修改的时间
    客服端第二次请求此url时,根据http协议。浏览器会向服务器发送一个If-Modified-Since报头,
    询问该事件之后文件是否被修改,没修改返回304。

有了Last-Modified,为什么还要用ETag?
1、因为如果在一秒钟之内对一个文件进行两次更改,Last-Modified就会不正确(Last—Modified不能识别秒单位的修改)
2、某些服务器不能精确的得到文件的最后修改时间
3、一些文件也行会周期新的更改,但是他的内容并不改变(仅仅改变修改的事件),这个时候我们并不希望客户端认为文件被修改,而重新Get。

 ETag,为什么还要用Last-Modified?1、两者互补,ETag的判断的缺陷,比如一些图片等静态文件的修改2、如果每次扫描内容都生成ETag比较,显然要比直接比较修改时间慢的多。ETag是被请求变量的实体值(文件的索引节,大小和最后修改的时间的Hash值)1、ETag的值服务器端对文件的索引节,大小和最后的修改的事件进行Hash后得到的。

301和302的区别
(1)字面上区别:301永久重定向 302临时重定向。
(2)301比较常用的场景是使用域名跳转。302用来做临时跳转 (例如:未登录的用户访问用户中心重定向到登录页面)


HTTP常见状态码总结

2XX (成功处理了请求状态)

  • 200 : OK 请求成功。一般用于GET与POST请求。(服务器已经成功处理请求,并提供了请求的网页)
  • 201:Created 已创建。成功请求并创建了新的资源。(用户新建或修改数据成功)
  • 202:Accepted 已接受。已经接受请求,单未处理完成。(一个请求已经进入后台)
  • 204 :No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档。(用户删除成功)

3XX (每次请求使用的重定向不要超过5次)

  • 303:See Other 查看其他地址。与301类似,使用GET和POST请求查看。

4XX (表示请求可能出错,妨碍了服务器的处理)

  • 400:Bad Request 客户端请求的语法错误,服务器无法理解。(服务器不理解请求的语法)
  • 401:Unauthorized 请求要求用户的身份认证(用户没有权限(用户名,密码输入错误))
  • 403:Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求。(用户得到授权(与401相反),但是访问被禁止)
  • 404:Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面(服务器找不到请求的网页)

5XX (表示服务器在处理请求的时候发生内部错误)
500:Internal Server Error 服务器遇到错误,无法完成请求。
503:Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 (服务器目前无法使用(超载或停止维修 ))

关于HTTP状态码之301 302 304相关推荐

  1. HTTP常见状态码 200 301 302 404 500

    HTTP状态码(HTTP Status Code) 状态码并不是每个都有,为了后期扩展.[update20170505] 一些常见的状态码为: 一.1开头 1xx(临时响应)表示临时响应并需要请求者继 ...

  2. 细说http状态码之301,304

    无论google还是度娘,查询http状态码的含义是总是晦涩难懂,前一段时间配合公司进行了一次域名升级,才真的对301和304这两个状态码有的更深一步的了解. 301 301,官方示意永久性移动,表示 ...

  3. HTTP协议响应状态码(301、302、303的区别)

    1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101 (切换协议) 请 ...

  4. HTTP状态:202、301、304、404、503

    301.404.200.304等HTTP状态,代表什么意思? 在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的 ...

  5. 状态码302_HTTP状态码 201,202,302,405 ... 傻傻分不清,看这一个项目就够啦

    本期搬运 [github]http.cat,它是一款用于提供对应HTTP状态码界面模板的API,并且每次都会返回一张寓意如图的 喵喵相片. 本篇文章大约需要3分钟来阅读,热衷吸猫人士可能会更久.届时你 ...

  6. http状态码(204,304, 404, 504,502)

    网络状态码含义,常用(204,304, 404, 504,502) 200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用 常见HTTP状态码大全  1xx(临时响应) ...

  7. 常见HTTP状态码(200,304,404等)

    在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样,Google无法验证网站几种解决办法,提及到由于 ...

  8. html 文件 状态码,如何解决网站304状态码问题

    如何解决网站304状态码问题 304状态码的定义是:如果客户端发送了一个带条件的GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态 ...

  9. Http 状态码详解之304、403、503

    一.304状态码 1.1 定义 自从上次请求后,请求的网页未修改过.服务器返回此响应时,不会返回网页内容. 如果网页自请求者上次请求后再也没有更改过,您应将服务器配置为返回此响应(称为 If-Modi ...

最新文章

  1. delphi 改变闪动光标
  2. Go []byte to a C *char
  3. redux中reducer使用require.context使用技巧
  4. 聊聊大麦网UWP版的首页顶部图片联动效果的实现方法
  5. SpringBoot开发案例从0到1构建分布式秒杀系统
  6. 把控制台程序嵌入到 WinForm 中执行
  7. matlab图像相加例子,MATLAB图像处理例子
  8. “北航Clubs” Alpha版发布!
  9. IntelliJ IDEA 工具篇之如何切换 git 分支
  10. TimeUnit.SECONDS.sleep()和sleep区别
  11. 9. 求数组任意次最值
  12. 当AS3遇见Swift
  13. 帆软之使用FineTube将其他来源数据同步至简道云表单(多图预警)
  14. 【拒绝一问就懵】之从Thread讲到Handle
  15. 2021-01-05
  16. 2018年全国多校算法寒假训练营练习比赛(第三场)I 三角形【皮克公式+gcd】
  17. unity 编辑器模式下修改屏幕分辨率
  18. 赵小楼《天道》《遥远的救世主》深度解析(52)丁元英境界和觉悟的知行合一:超越本能的男人,真好汉也
  19. Android 自动朗读TT
  20. php随浏览器大小变化,如何在将图像显示到浏览器之前使用php重新调整图像大小?...

热门文章

  1. 亚马逊卖家必须了解的恶意竞争手段和应对方法
  2. 亚马逊卖家该如何进行站外引流
  3. JLINK SWD 复位脚
  4. amr-wb,转自刘品
  5. 计算机专业新生表演,沙场秋点兵 学子展风采 ——计算机专业部在2020级新生军训汇报表演中喜获佳绩...
  6. 刘海屏水滴屏小米89等安卓P底部留黑or白适配
  7. C语言程序设计——if语句的嵌套——分段函数(例4.11)
  8. 博士生AI岗位面试经验分享:这样可以让您的薪水翻一倍
  9. 相位解包裹(六)质量图导向法quality guide phase unwrapping(QGPU)
  10. 正交解调 matlab,正交相位偏移键控(qpsk)调制解调系统simulink(matlab)建模分析毕业论文...