HTTP 报文 之 HTTP 状态码(3)

为了避开这个问题, HTTP/1.1 规范指出,对于 HTTP/1.1 客户端,用 307 状态码取代 302 状态码来进行临时重定向。这样服务器就可以将 302 状态码保留起来,为 HTTP/1.0 客户端使用了。

这样一来,服务器要选择适当的重定向状态码放入重定向响应中发送,就需要查看客户度的 HTTP 版本了。

400 ~ 499 —— 客户端错误状态码

有时客户端会发送一些服务器无法处理的东西,比如格式错误的请求报文,或者最常见的是,请求一个不存在的 URL。

状态码   原因短语   含义  
400   Bad Request   用于告知客户端它发送过来一个错误的请求  
401   Unauthorized    与适当的首部一同返回,在这些首部中请求客户端在获取对资源的访问权之前,对自己进行认证。  
402   Payment Required   现在这个状态码还未使用,但已经被保留,以作未来之用。  
403   Forbidden   用于说明请求被服务器拒绝了。如果服务器想说明为什么拒绝请求,可以包含实体的主体部分来对原因进行描述。但这个状态码通常是在服务器不想说明拒绝原因的时候使用的  
404   Not Found   用于说明服务器无法找到所请求的 URL。通常会包含一个实体,以便客户端应用程序显示给用户看。  
405   Method Not Allowed   发起的请求中带有所请求的 URL 不支持的方法时,使用此状态码。应该在响应中包含 Allow 首部,以告知客户端对所请求的资源可以使用哪些方法。  
406   Not Acceptable   客户端可以指定参数来说明他们愿意接收什么类型的实体。服务器没有与客户端可接受的 URL 相匹配的资源时,使用此代码。通常,服务器会包含一些首部,以便告知客户端弄清楚什么请求无法满足。  
407   Proxy Authentication Required   与 401 状态码类似,但用于要求对资源进行认证的代理服务器。  
408   Request Timeout   如果客户端完成请求所花的时间太长,服务器可以回送此状态码,并关闭连接。超时时长随服务器的不同而不同,但通常对所有的合法请求来说,都是够长的。  
409   Conflict   用于说明请求可能在资源上引发的一些冲突。服务器担心请求会引发冲突时,可以发送此状态码。响应中应该包含描述冲突的主体。  
410   Gone    与 404 类似,只是服务器曾经拥有过此资源。主要用于 Web 站点的维护,这样服务器的管理者就可以在资源被移除的情况下通知客户端了。  
411   Length Required    服务器要求在请求报文中包含 Content-Length 首部时使用。更多关于 Content-Length 首部的信息请参见 3.5.4 节。  
412   Precondition Failed    客户端发起了条件请求,且其中一个条件失败了的时候使用。客户端包含了 Expect 首部时发起的就是条件请求。更多有关 Expect 首部的内容请参见附录 C 中 Expect 部分  
413   Request Entity Too Large   客户端发送的实体主体部分比服务器能够或者希望处理的要大时,使用此状态码  
414   Request URI Too Long   客户端所发请求中的请求 URL 比服务器能够或者希望处理的要长时,使用此状态码  
415   Unsupported Media Type    服务器无法理解或无法支持客户端所发实体的内容类型时,使用此状态码  
416   requested Range Not Satisfiable   请求报文所请求的是指定资源的某个范围,而此范围无效或者无法满足时,使用此状态码。  
417   Expectation Failed  

请求的 Expect 请求首部包含了一个期望,但服务器无法满足此期望时,使用此状态码。

如果代理或者其他中间应用程序有确切证据说明源服务器会为某请求产生一个失败的期望,就可以发送这个响应状态码。

 

500 ~ 599 —— 服务器错误状态码

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5af036edbd300e97f529329396e8c719.html