关闭

Http_4个新的http状态码:428、429、431、511

1393人阅读 评论(3) 收藏 举报
分类:

1、428 Precondition Required (要求先决条件)

先决条件是客户端发送 HTTP 请求时,必须要满足的一些预设条件。一个好的例子就是 If-None-Match 头,经常用在 GET 请求中。如果指定了 If-None-Match ,那么客户端只在响应中的 ETag 改变后才会重新接收回应。

先决条件的另外一个例子是 If-Match 头,一般用在 PUT 请求上,用于指示只更新但没有被改变的资源。这在多个客户端使用 HTTP 服务时用来防止彼此间覆盖相同内容的情况。

当服务器端使用 428 Precondition Required 状态码时,表示客户端必须发送上述的请求头才能执行该请求操作。这个方法为服务器提供一种有效的方法来阻止 “lost update”问题的出现。

2、429 Too Many Requests (太多请求)

当你需要限制客户端请求某个服务的数量,也就是限制请求速度时,该状态码就会非常有用。在此之前,有一些类似的状态码。例如“509 Bandwidth Limit Exceeded”。

如果你希望限制客户端对服务的请求数,可使用 429 状态码,同时包含一个 Retry-After 响应头用于告诉客户端多长时间后可以再次请求服务。

3、431 Request Header Fields Too Large (请求头字段太大)

某些情况下,客户端发送 HTTP 请求头会变得很大,那么服务器可发送 431 Request Header Fields Too Large 来指明该问题。

我不太清楚为什么没有 430 状态码,而是直接从 429 跳到 431,我尝试搜索但没有结果。唯一的猜测是 430 Forbidden 跟 403 Forbidden 太像了,为了避免混淆才这么做的,天知道!

4、511 Network Authentication Required (要求网络认证)

对我来说这个状态码很有趣,如果你在开发一个 HTTP 服务器,你不一定需要处理该状态码,但如果你在编写 HTTP 客户端,那这个状态码就非常重要。

如果你频繁使用笔记本和智能手机,你可能会注意到大量的公用 Wifi 服务要求你必须接受一些协议或者必须登录后才能使用,这是通过拦截HTTP流量实现的。当用户试图访问网络返回一个重定向和登录,这很讨厌,但是实际情况就是这样的。

使用这些“拦截”客户端,会有一些讨厌的副作用。在 RFC 中提到以下这两个的例子:

  • 如果你在登录Wifi前访问某个网站,网络设备将会拦截首个请求,这些设备往往也有自己的网站图标“favicon.ico”。登录后你会发现,有一段时间内你访问的网站图标一直是Wifi登录网站的图标。
  • 如果客户端使用HTTP请求来查找文档,网络将会响应一个登录页,这样你的客户端就会解析错误并导致客户端运行异常,在现实中这种问题非常常见。

而 511 状态码的提出就是为了解决这个问题。因此,如果你正在编写 HTTP 的客户端,你最好还是检查 511 状态码以确认是否需要认证后才能访问。

0
0
查看评论

http协议状态码和web错误解决总结

HTTP协议状态码详解(HTTP Status Code) 使用ASP.NET/PHP/JSP 或者javascript都会用到http的不同状态,一些常见的状态码为:  200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务不可用  1xx...
  • bcbobo21cn
  • bcbobo21cn
  • 2016-03-31 19:10
  • 1510

Http 状态码详解

1xx 消息相关的 代表请求已经收到,继续处理。 这个状态码的分类意味着一个临时的响应,仅有状态行和可选的头部信息组成,并且有一个空行结尾。因为HTTP/1.0并没有定义任何1xx相关的状态码,所以服务器应该发出一个1xx的响应给一个HTTP/1.0的客户端除非在实验条件下。 100 继续...
  • sunnylinner
  • sunnylinner
  • 2016-12-26 11:27
  • 797

4 HTTP状态码

状态码告知从服务器端返回的请求结果 借助状态码,用户可以知道服务端是否正常处理了请求,还是出现了错误。 状态码类别 类别 原因短语 1XX 信息性状态码 接收的请求正在被处理 2XX ...
  • hughtw
  • hughtw
  • 2015-03-19 14:25
  • 571

Http状态码大全(404、500、505等)

Http状态码大全(404、500、505等) 基本涵盖了所有问题 HTTP 400 – 请求无效 HTTP 401.1 – 未授权:登录失败 HTTP 401.2 – 未授权:服务器配置问题导致登录失败 HTTP 401.3 – ACL 禁止访问资源 HTTP ...
  • origination_star
  • origination_star
  • 2017-01-11 10:35
  • 2538

HTTP协议入门——1.1版本

HTTP协议入门——1.1版本 基本概述     超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。  &...
  • q547550831
  • q547550831
  • 2016-01-01 17:20
  • 1925

编写网络爬虫对于状态码的处理----HTTP常用状态码

状态代码 代码描述 处理方式 200 请求成功 获得响应的内容,进行处理 201 请求完成,结果是创建了新资源,新创建资源的URI可在响应的实体中得到 爬虫中不会遇到 202 请求被接受,但处理尚未完成 阻塞等待 204 服务器端已经实现了请...
  • u012043391
  • u012043391
  • 2016-04-06 00:13
  • 772

web前端面试题3-------http状态码

状态码 含义 100 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。 101 服务器已...
  • u012763269
  • u012763269
  • 2015-06-28 14:27
  • 1376

http状态码代表含义

一、200状态码:    成功2××: 成功处理了请求的状态码。    1、200 :服务器已成功处理了请求并提供了请求的网页。    2、204: 服务器成功处理了请求,但没有返回任何内容。    二、300状态码:  ...
  • waterDjj
  • waterDjj
  • 2016-09-09 15:18
  • 3001

《图解HTTP》学习笔记(四)-返回结果的HTTP状态码

1、状态码告知从服务器端返回的请求结果HTTP 状态码负责表示客户端 HTTP 请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。状态码由3位数字+原因短语组成,如 200 OK。数字中的第一位指定了响应类别,后两位无...
  • will130
  • will130
  • 2016-05-24 20:51
  • 710

HTTP协议状态码含义参考(HTTP Status Code)

FROM:http://www.cnblogs.com/shanyou/archive/2012/05/06/2486134.html 使用ASP.NET/PHP/JSP 或者javascript都会用到http的不同状态,一些常见的状态码为: 200 – 服务器成功返回网页 404 – ...
  • hongweigg
  • hongweigg
  • 2016-11-09 09:03
  • 662
    个人资料
    • 访问:562745次
    • 积分:18471
    • 等级:
    • 排名:第599名
    • 原创:274篇
    • 转载:20篇
    • 译文:0篇
    • 评论:5681条
    和我交谈
    点击这里给我发消息 点击这里给我发消息
    时间你好?
    博客专栏
    最新评论