图解HTTP读书笔记-(四 返回结果的HTTP状态码)

返回结果的HTTP状态码

4.1 状态码告知从服务器端返回的请求结果

Code  类别 原因短语

100-199 信息状态码用于指定客户端应相应的某些动作。 
200-299 成功状态码用于表示请求成功。 
300-399 重定向状态码用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 
400-499 客户端错误状态码用于指出客户端的错误。 
500-599 服务器错误状态码用于支持服务器错误。 

状态码很多,列举一些常见的

4.2 200 (OK/正常)
200 (SC_OK)的意思是一切正常。一般用于相应GETPOST请求。这个状态码对servlet是缺省的;如果没有调用setStatus方法的话,就会得到200

204 (No Content/无内容)
服务器接收的请求已处理成功,但在返回的响应报文中不包含实体的主体。通常在并没有新文档的情况下,204 (SC_NO_CONTENT)确保浏览器继续显示先前的文档。这各状态码对于用户周期性的重载某一页非常有用,并且你可以确定先前的页面是否已经更新。

206 (Partial Content/局部内容)

206 (SC_PARTIAL_CONTENT)是在服务器完成了一个包含Range头信息的局部请求时被发送的。响应报文中包含有content-range指定范围的实体内容,这是 HTTP 1.1中新加入的。 

3XX重定向:

表明浏览器需要执行某些特殊的处理已正确的请求。

301 (Moved Permanently)
永久重定向,301 (SC_MOVED_PERMANENTLY)状态是指所请求的文档在别的地方;文档新的URL会在定位响应头信息中给出。浏览器会自动连接到新的URL 

302 (Found/找到)
临时重定向,301有些类似,只是定位头信息中所给的URL应被理解为临时交换地址而不是永久的。代表状态码302的常量是SC_MOVED_TEMPORARILY而不是SC_FOUND 

303 (See Other/参见其他信息)

这个状态码和 302 相似,只是如果最初的请求是 POST,那么新文档(在定位头信息中给出) GET 找回。这个状态码是新加入 HTTP 1.1中的。 

304 (Not Modified/为修正)
表示客户端发送附带条件(下面的例子)的请求时,服务器允许请求访问资源,但是为满足条件的状况。如:

当客户端有一个缓存的文档,通过提供一个 If-Modified-Since 头信息可指出客户端只希望文档在指定日期之后有所修改时才会重载此文档,用这种方式可以进行有条件的请求。304 (SC_NOT_MODIFIED)是指缓冲的版本已经被更新并且客户端应刷新文档。另外,服务器将返回请求的文档及状态码 200servlet一般情况下不会直接设置这个状态码。它们会实现getLastModified方法并根据修正日期让默认服务方法处理有条件的请求。这个方法的例程已在2.8部分(An Example Using Servlet Initialization and Page Modification Dates/一个使用servlet初始化和页面修正日期的例子)给出。

305 (Use Proxy/使用代理)
305 (SC_USE_PROXY)表示所请求的文档要通过定位头信息中的代理服务器获得。这个状态码是新加入 HTTP 1.1中的。 

307 (Temporary Redirect/临时重定向)
307状态的规则与302相同。是由于许多浏览器并不遵守规则,在收到302响应时即使是原始消息为POST的情况下会把post改为get并删除请求报文的主体。只有在收到303响应时才假定浏览器会在POST请求时重定向。

307这个状态码是新加入 HTTP 1.1中的。 添加这个新的状态码的目的很明确:不会从POST变成get

4.4 4XX客户端错误

400 (SC_BAD_REQUEST)

指出客户端请求中的语法错误。 

401 (Unauthorized/未授权)
401 (SC_UNAUTHORIZED)表示客户端在授权头信息中没有有效的身份信息时访问受到密码保护的页面。若之前已进行1次请求,则表示用户认证失败。

这个响应必须包含一个WWW-Authenticate的授权信息头以用于质询用户信息,浏览器在初次接收到401响应,会弹出认证用的对话框

403 (Forbidden/禁止)
403 (SC_FORBIDDEN)的意思是请求资源的访问被服务器拒绝了,服务器没必要给出具体原因。通常是未获得文件系统的访问授权,或者由于服务器上的损坏文件或目录许可而引起。

404 (Not Found/未找到)

表明服务器无法找到所请求的资源,相信大多数的人会遇到这个错误。

4.5 5XX服务器端错误

表明服务器本身发生错误。

502 (Bad Gateway/错误的网关)
502 (SC_BAD_GATEWAY)被用于充当代理或网关的服务器;该状态指出接收服务器接收到远端服务器的错误响应。

503 (Service Unavailable/服务无法获得)
状态码503 (SC_SERVICE_UNAVAILABLE)表示服务器由于在维护或已经超载而无法响应。例如,如果某些线程或数据库连接池已经没有空闲则servlet会返回这个头信息。服务器可提供一个Retry-After头信息告诉客户端什么时候可以在试一次。 

504 (Gateway Timeout/网关超时)
该状态也用于充当代理或网关的服务器;它指出接收服务器没有从远端服务器得到及时的响应。该状态是新加入 HTTP 1.1的。

阅读更多
换一批

没有更多推荐了,返回首页