码迷,mamicode.com
首页 > Web开辟 > 详细

http状况码204/206/200懂得

时间:2017-05-26 23:36:41      浏览:58544      评论:0      收藏:0      [点我收藏+]

标签:format   rar   操作   number   hive   container   弗成用   get   相干信息   

HTTP的状况码有很多种,重要有1xx(临时照应)、2xx(成功)、3xx(已重定向)、4xx(请求缺点)和5xx(办事器缺点)五个大年夜类,每个大年夜类还对应一些详细的分类。平常平凡我们接触比较多的是200、400、500等。

这里我们重要评论辩论一下状况码204,在HTTP RFC 2616中关于204的描述以下:

If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be sent. This response is primarily intended to allow input for actions to take place without causing a change to the user agent’s active document view, although any new or updated metainformation SHOULD be applied to the document currently in the user agent’s active view.

意思同等于请求履行成功,然则没稀有据,浏览器不消刷新页面.也不消导向新的页面。若何懂得这段话呢。照样经过过程例子来解释吧,假定页面上有个form,提交的url为http-204.htm,提交form,正常情况下,页面会跳转到http-204.htm,然则假设http-204.htm的照应的状况码是204,此时页面就不会产生转跳,照样逗留在以后页面。别的关于a标签,假设链接的页面照应码为204,页面也不会产生跳转。

所以关于一些提交到办事器处理的数据,只须要前往能否成功的情况下,可以推敲应用状况码204(也就是XMLHttpRequest.status)来作为前往信息,从而省掉落多余的数据传输。

$.ajax({
            type: "POST",
            beforeSend: function(xhr){xhr.setRequestHeader(‘__RequestVerificationAntiCSRFToken‘, $("#hidden-CSRFToken").val());},
            url: $(this).data(‘targetUrl‘), 
            cache: false,        
            data:post_data,
            dataType:"json",
            async: true,
            error: function(jqXHR, error, errorThrown) {
                alert(jqXHR.status);          
                },
            success: function(data) {
               //...
               }
  });

前次我们讲了HTTP/304照应,明天我们持续评论辩论别的三种能够让Fiddler用户认为困惑的请求或照应类型.

下面的截图中有三条Web会话,每条都前往了不合的状况码,但都在HTTP/2xx范围内:

技巧分享

HEAD请求办法

第一个请求前往了HTTP/200,但你应当留意到了,办事器并没有前往照应体.假设你在Inspectors选项卡中检查一下,就会发明客户端应用的是HEAD请求办法.HEAD办法许可客户端仅向办事器请求某个资本的照应头,而不要真实的下载该资本本身.办事器前往的照应头应当和客户端应用GET办法请求该资本时前往的请求头雷同,比起GET办法,只是省略了照应体.

技巧分享

从上图中可以看出,假设客户端应用GET而不是HEAD办法请求该资本,办事器就应当会前往6623字节大年夜小的照应体.还可以看出,该资本的类型为text/html和它的编码为UTF-8.客户端可以应用HEAD请求来搜集相干信息以肯定若何操作该资本.例如,在IE中,假设一个OBJECT元素缺乏TYPE参数,浏览器就会发送一个HEAD请求,目标URL为这个OBJECT元素的SRC属性指定的URL.然后浏览器便可以或许根据照应中的Content-Type头知道这是哪一种类型的OBJECT.

HTTP/204照应

会话列表中的第二条会话前往了HTTP/204照应.从Content-Length照应头可以看出,该照应没有照应体,状况码描述为“No Content”:

技巧分享

你或许会有疑问:“前往一个没有照应体的HTTP/200照应不可吗?”

假设没有照应体,则在大年夜多半场景下,这两种照应码完全等效,但有一种情况下,HTTP/204照应会让浏览器有不合的表示.这类情况就是当用户在浏览器窗口window或许frame/iframe框架中导航的时辰.

  • 假设导航到的URL前往了一个没有照应体的HTTP/200照应,则页面将会显示一个空白文档(就是一片白色).页面的URL地址也会变成新指定的URL.
  • 假设办事器前往的是一个HTTP/204照应,以后页面不会有任何变更,就仿佛根本没有停止导航操作一样.页面的URL地址也保持不变.

HTTP/205照应码很少见,它类似于HTTP/204,除页面保存在以后文档不变以外,多了一步操作,就是要清空以后文档内一切表单控件的内容.

HTTP/206照应

最后一条会话前往了HTTP/206 “Partial Content”照应.这类照应是在客户端注解本身只须要目标URL上的部分资本的时辰前往的.这类情况常常产生在客户端持续请求一个未完成的下载的时辰(平日是当客户端加载一个别积较大年夜的嵌入文件,比如视屏或PDF文件),或许是客户端测验测验完成带宽遏流的时辰.

你可以经过过程Range请求头辨认出一个部分外容请求.该请求头注解了客户端须要请求资本的哪一部分:

技巧分享

在上图的请求中,客户端告诉办事器,它须要该视屏文件中从172,032到13,325,503字节范围内的数据.

在大年夜多半情况下,客户端还会发送一些条件请求头,让办事器来辨别该前往哪个版本的资本.在上图的请求中,客户端把它在前次接收该资本的0到172032字节部分请求中办事器前往的ETag照应头作为了本次请求的If-Match请求头发送了出去,异样还把前次照应中的Last-Modified照应头用If-Unmodified-Since请求头发送了出去.

假设办事器发明该资本的版本与客户端所请求的版本不婚配,则会前往一个HTTP/412 Precondition Failed照应.假设客户端应用If-Range请求头而不是If-Match发送了前次收到的ETag照应头的值,且办事器发明客户端请求的版本与以后资本的版本不婚配,则办事器会前往全部资本数据.假设客户端须要完全的资本数据,应用If-Range可以增添一个搜集请求.

办事器的Content-Range照应头注解了前往的是文件的哪一部分,Content-Length照应头注解了该部分文件的大年夜小:
技巧分享

你或许留意到了Accept-Ranges照应头,办事器发送这个头的目标是让客户端知道办事器接收以字节为单位的部分外容请求.

假设你在Fiddler中看到了一个HTTP/206照应,但你须要的是一个完全的文件(比如你想保存一个完全的视屏文件),你可以选中该会话按下U键,或许按住Ctrl键点击对象栏中的Replay按钮,履行无条件请求。

在HTTP1.1协定下,HTTP状况码总共可分为5大年夜类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
1xx:信息照应类,表示接收到请求并且持续处理
2xx:处理成功照应类,表示举措被成功接收、懂得和接收
3xx:重定向照应类,为了完成指定的举措,必须接收进一步处理
4xx:客户端缺点,客户请求包含语法缺点或许是不克不及精确履行
5xx:办事端缺点,办事器不克不及精确履行一个精确的请求
 
100——客户必须持续收回请求
101——客户请求办事器根据请求转换HTTP协定版本
200——交易成功
201——提见知道新文件的URL
202——接收和处理、但处理未完成
203——前往信息不肯定或不完全
204——请求收到,但前往信息为空
205——办事器完成了请求,用户代理必须复位以后曾经浏览过的文件
206——办事器曾经完成了部分用户的GET请求
300——请求的资本可在多处取得
301——删除请求数据
302——在其他地址发清楚明了请求数据
303——建议客户拜访其他URL或拜访方法
304——客户端曾经履行了GET,但文件未变更
305——请求的资本必须从办事器指定的地址取得
306——前一版本HTTP中应用的代码,现行版本中不再应用
307——申明请求的资本临时性删除
400——缺点请求,如语法缺点
401——请求授权掉败
402——保存有效ChargeTo头照应
403——请求不准可
404——没有发明文件、查询或URl
405——用户在Request-Line字段定义的办法不准可
406——根据用户发送的Accept拖,请求资本弗成拜访
407——类似401,用户必须起首在代理办事器上取得授权
408——客户端没有在用户指定的饿时间内完成请求
409——对以后资本状况,请求不克不及完成
410——办事器上不再有此资本且无进一步的参考地址
411——办事器拒绝用户定义的Content-Length属性请求
412——一个或多个请求头字段在以后请求中缺点
413——请求的资本大年夜于办事器许可的大年夜小
414——请求的资本URL善于办事器许可的长度
415——请求资本不支撑请求项目格局
416——请求中包含Range请求头字段,在以后请求资本范围内没有range指导值,请求也不包含If-Range请求头字段
417——办事器不满足请求Expect头字段指定的希冀值,假设是代理办事器,能够是下一级办事器不克不及满足请求
500——办事器产生外部缺点
501——办事器不支撑请求的函数
502——办事器临时弗成用,有时是为了防止产生体系过载
503——办事器过载或暂停维修
504——关隘过载,办事器应用另外一个关隘或办事来照应用户,等待时间设定值较长
505——办事器不支撑或拒绝支请求头中指定的HTTP版本

http状况码204/206/200懂得

标签:format   rar   操作   number   hive   container   弗成用   get   相干信息   

原文地址:http://www.cnblogs.com/zhjh256/p/6910534.html

(3)
(5)
   
告发
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权一切 京ICP备13008772号-2
迷上了代码!