继续分享HTTP状态码大全(下)

在这里插入图片描述

常用HTTP状态码列表:
300-399用于已移动的文件,通常包括在LocalHeader信息中指定的新地址信息中。
用400-499表示客户机错误。
使用500-599支持服务器错误。
差错详细说明:
300(多选/多选)
SC_MULTIPLE_CHOICES表示被请求的文档可以在很多地方找到,并且会在返回的文档中列出。若伺服器有偏好设定,则会在定位回应标头资讯中列出偏好。
301(MovedPermanently)
301(SC_MOVED_PERMANENTLY)状态表示被请求的文档位于其他位置;定位响应头信息中提供了新文档URL。浏览器将自动连接到新URL。
302(Found/Found)
和301有一些相似之处,仅仅定位头信息中给出的URL应该被理解为临时交换地址,而非永久。注:在HTTP1.0中,消息是临时移动(MovedTemporarily)而非找到的,因此,我们认为HttpServletResponse中的常量是SC_MOVED_TEMPORARILY,而非SC_FOUND。
留意。
表示状态码302的常量与SC_FOUND无关,而是SC_MOVED_TEMPORARILY。
由于浏览器将自动连接设置为响应头信息中给出的新URL,因此302状态码非常有用。它很有用,并且有一种专门的方法可以实现–sendRedirect。利用response.sendRedirect(url)比调用response.setStatus(response.SC_MOVED_TEMPORARILY)和调用response.setheader(“位置”,url)要多一些益处。第一,response.sendRedirect(url)方法显然简单易用。其次,servlet会自动建立一个页面来保存此连接,以便在无法自动转向的浏览器上显示。最终,在servlet2.2(J2EE版本)中,sendRedirect可以处理相对路径,并自动转换为绝对路径。但在2.1版本中您只能使用绝对路径。
若将用户转至站点的另一个页面,则使用HttpServletResponse中的encodeURL方法来传送URL。这样可以避免持续地使用基于URL重写的会话跟踪。网址重写是跟踪站点中没有使用cookies的用户的一种方式。可以在每个URL的尾部添加路径信息,但servlet会话跟踪API将自动关注这些细节。SessionTracking在第九章中进行了讨论,如果能养成使用encodeURL的习惯,那么以后就可以更轻松地添加会话跟踪。
关键技能。
与仅仅调用response.sendrect(response.encodeURL)(url))相比,如果你把用户引导到你网站的其他页面,使用response.sendRedirect(sessiontracking)预先计划会话跟踪要好得多。
该状态码有时可与301进行交换。举例来说,如果访问http://www.talentdigger.cn/home/link.php?有误。URL=aG9zdC9%2BdXNlcg%3D%3D(路径信息不完整),一些服务器将回复301状态码,另一些服务器回复302。严格地说,假设初始请求是GET浏览器,那么它就会自动转向。如需详细信息,请参阅状态码307。
303(SeeOther/参阅附加资料)
此状态码与301、302类似,只是如果初始请求为POST,则该药物GET将返回新文档(在定位头信息中给出)。该状态码是HTTP1.1新添加的代码。
304(NotModified/已修正)
如果客户有缓存的文档,则可以通过提供If-Modified-Since头信息来说明,客户只希望在指定日期后对文档进行修改,从而重载该文档,这样就可以以这种方式处理有条件的请求。SC_NOT_MODIFIED是指缓冲的版本已经更新,而且客户机应该对文档进行刷新。服务器还将返回所请求的文档和200状态码。一般情况下,servlet不会直接设置此状态码。他们实现了getLastModified方法,并允许默认服务方法基于修正日期处理有条件请求。该方法的例程已经在2.8节中给出了(AnExampleUsingServletInitializationandPageModificationDates/使用servlet初始化和页面修改日期的示例)。
305(UseProxy/UseAgent)
SSC_USE_PROXY表示要通过定位头信息中的代理服务器获取请求的文档。该状态码是HTTP1.1新添加的代码。
307(TemporaryRedirect/临时重新导向)
浏览器对307状态的处理规则与302相同。在HTTP1.1中加入307状态,这是因为很多浏览器在收到302响应后,即使原始消息是POST,仍会执行错误的转向。仅当收到303响应时,才假设浏览器会在POST请求时进行重定向。增加这一新状态码的目的很清楚:GET和POST请求在303时根据GET和POST请求转换;而307响应时根据GET请求转换而不是POST请求。注:由于某种原因,HttpServletResponse中还没有对应于该状态的常量。这个状态码是HTTP1.1新加入的。
留意。
由于HttpServletResponse中没有SC_TEMPORARY_REDIRECT常量,因此您只能显示使用307状态码的代码。
400(BadRequest/错误要求)
400(SC_BAD_REQUEST)指出客户端请求存在语法错误。
401(取消许可/未经许可)
SC_UNAUTHORIZED是指当授权头信息中没有包含有效身份信息时,客户访问受密码保护的页面。该响应必须包含用于WWW-Authenticate的授权信息头部。举例来说,本书4.5部分的"RestrictingAccesstoWebPages./限制对网页的访问"。
403(Forbidden/禁止)
403(SC_FORBIDDEN)的意思是服务器拒绝提供请求的资源,除非它获得授权。这种情况通常是由于服务器上的文件或目录许可证损坏造成的。
404(NotFound/找不到)
每一个网络程序员都可能遇到过404(SC_NOT_FOUND)状态,它告诉客户机说找不到任何资源。这是一种“没有访问任何页面”的标准方式。该状态代码是常见的响应,并且在HttpServletResponse类sendError(“message”)中有实现该响应的特殊方法。与setStatus相比,使用sendError的优势在于:服务器可以自动生成显示错误信息的错误页面。然而InternetExplorer5浏览器会默认忽略你玩过的错误页面并显示它定制的错误提示页面,尽管微软这样做是违反HTTP规范的。为了关闭这个特性,在工具菜单中,选择Internet选项,进入高级标签页面,并确认(在我的浏览器中是倒数第8个选项)“显示友好的HTTP错误信息”选项未被选中。但只有少数用户知道这一选项,因此IE5隐藏了这一特性,使用户看不到您返回给用户的信息。其它主流浏览器和IE4都能完整显示服务器生成的错误提示页。图6-3和图6-4所示为例子。
  核心警告。
默认情况下,IE5忽略服务器生成的错误提示页面。
405(方法不允许/方法不允许)
405(SC_METHOD_NOT_ALLOWED)表示请求方法(GET、POST、HEAD、PUT、DELETE等)。)不允许用于某些资源。该状态代码是新添加到HTTP1.1的
406(不可接受/不可访问)
406(SC_NOT_ACCEPTED)表示所请求资源的MIME类型与客户端中接受头信息中指定的类型不一致。参见本书第7.2节表7.1中对MIME类型的介绍(http1.1responseheaders及其含义/http1.1responseheaderinformation及其含义)。406是新添加到HTTP1.1的。
407(需要代理认证/代理服务器认证要求)
407的状态(sc_proxy_authentication_required)有点类似于401,只是这个状态用于代理服务器。此状态表示客户端必须由代理服务器进行身份验证。代理服务器向客户端返回代理认证响应头信息,这将导致客户端使用头信息与代理授权请求重新连接。该状态代码是新添加到HTTP1.1的
408(请求超时/请求超时)
408(SC_REQUEST_TIMEOUT)表示服务器等待客户端发送请求的时间过长。该状态代码是新添加到HTTP1.1的
409(冲突/冲突)
此状态通常用于PUT请求,409(SC_CONFLICT)状态通常用于尝试上载版本不正确的文件。该状态代码是新添加到HTTP1.1的
410(消失/不再存在)
410(SC_GONE)告诉客户所请求的文档不再存在,并且没有更新的地址。410的状态和404不同。410用于指导文件已被移除时,而404用于由于未知原因而不可访问。该状态代码是新添加到HTTP1.1的
411(所需长度/所需数据长度)
411(SC_LENGTH_REQUIRED)表示服务器无法处理该请求(假设它是带有附件的开机自检请求),除非客户端发送指示发送到服务器的数据大小的内容长度报头信息。此状态是新添加到HTTP1.1的
412(预处理失败/预处理错误)
412(SC_PREMATION_FAILED)表示请求头信息中的一些前提条件是错误的。此状态是新添加到HTTP1.1的
413(请求实体太大)
413(sc_request_entity_太大)告诉客户端请求的文档比服务器现在想要处理的大。如果服务器认为一段时间后可以处理,会包含一个Retry-After的回复头消息。此状态是新添加到HTTP1.1的
414(请求URI太长)
当URI太长时,使用414(SC_REQUEST_URI_太长)状态。这里的“URI”是指网址中主机、域名和端口号后的内容。比如在URL-http://www.y2k-disaster.com:8080/we/look/傻/now/,URI的意思是/we/look/傻/now/。此状态是新添加到HTTP1.1的
415(不支持的媒体类型/不支持的媒体格式)
415(SC_UNSUPPORTED_MEDIA_TYPE)表示请求附加附件的格式类型服务器不知道如何处理。此状态是新添加到HTTP1.1的
416(请求范围不满足/无法满足请求范围)
416表示客户端包含服务器无法满足的范围标头信息请求。这个状态是HTTP1.1新增的,奇怪的是servlet2.1API的HttpServletResponse中没有对应的常量来表示这个状态。
注意。
在servlet2.1的规范中,没有sc_request_range_not_submissive这样的常量,只能直接用416。servlet2.2版本2.2之后包含此常数。
417(预期失败/预期失败)
如果服务器收到一个值为100-continue的预期请求头消息,这意味着客户端询问附件是否可以在后续请求中发送。在这种情况下,服务器还将告诉浏览器服务器它将不会接收到该状态的附件(417),或者告诉客户端它可以继续发送状态为100的附件(SC_CONTINUE)。此状态是新添加到HTTP1.1的
500(内部服务器错误/内部服务器错误)
500(SC_INTERNAL_SERVER_ERROR)是一种常见的“服务器错误”状态。这种状态往往是CGI程序造成的,也有可能(希望不是!)是由无法正常工作的servlet或返回格式不正确的标头信息引起的。
501(未实施/未实施)
501(SC_NOT_IMPLEMENTED)状态告诉客户端服务器它不支持请求中请求的功能。例如,客户端执行服务器不支持的命令,如PUT。
502(坏网关/坏网关)
502(SC_BAD_GATEWAY)作为代理或网关的服务器;此状态表示接收服务器从远程服务器收到了错误响应。
503(服务不可用/服务不可用)
状态代码503(SC_ServiCe_UNAILY)表示由于维护或过载,服务器无法响应。例如,如果一些线程或数据库连接池不再空闲,servlet将返回这个头信息。服务器可以提供一个“重试后”头,告诉客户端何时可以重试。
504(网关超时/网关超时)
此状态也用于充当代理或网关的服务器;这表明接收服务器没有从远程服务器得到及时的响应。此状态是新添加到HTTP1.1的
505(不支持的HTTP版本)
505(sc_HTTP_version_not_supported)状态代码表示服务器不支持请求中指示的HTTP版本。此状态是新添加到HTTP1.1的
芝麻HTTP为您提供了安全、稳定、高效、便捷的爬虫代理IP服务。在提供高级代理IP资源的同时,还可以设置不同类型的HTTP代理,并设置删除重复等标准。简单来说,芝麻HTTP就像一个中间桥梁,可以根据用户需求设置HTTP代理类型,帮助你持续获取行业数据。
文章部分内容源于网络,联系侵删*
文章参考源于http://h.zhimaruanjian.com/news/1645.html

猜你喜欢

转载自blog.csdn.net/zhimaHTTP/article/details/113756556