2019独角兽企业重金招聘Python工程师标准>>>
今天在谷歌浏览器上刷新页面的时候,出现了 如下失败信息:
HTTP 412 (Precondition Failed)
想想当时的动作是在发送ajax请求失败之后,再刷新,就会出现上面的失败问题。百度了下,参考下面的两个网址:
http://blog.csdn.net/billfeller/article/details/7750774;
http://www.cnblogs.com/gisblogs/p/7121943.html
大体上是讲:
Http 新的状态码 428 , 这个状态码要求 Http 需要满足一些先决条件(Http Precondition Required),比如:
1:If-None-Match 头, 经常用在 GET 请求中。如果指定了 If-None-Match , 那么客户端只在响应中的 ETag 改变后才会重新接收回应.
2:If-Match 头, 一般用在 PUT 请求上,用于指示只更新但没有被改变的资源. 这在多个客户端使用 HTTP 服务时用来防止彼此间覆盖相同内容的情况.当服务器端使用 428 Precondition Required 状态码时,表示客户端必须发送上述的请求头才能执行该请求操作。这个方法为服务器提供一种有效的方法来阻止 “lost update”问题的出现。上面一句:必须发送上述的请求头才能执行该请求操作, 这句话说明之所以会Precondition Failed 就和说的机理有关系, 第一次Ajax之后, 响应的什么属性没改变, 导致浏览器不会接受新的响应。