HTTP状态码

来源:互联网 发布:崩坏3矩阵怎么回血 编辑:程序博客网 时间:2024/05/01 12:02
状态码类别原因短语1XXInformational(信息性状态码)接收的请求正在处理2XXSuccess(成功状态码)请求正常处理完毕3XXRedirection(重定向状态码)需要进行附加操作以完成请求4XXClient Error(客户端错误状态码)服务器无法处理请求5XXServer Error(服务端错误状态码)服务器处理请求出错


       HTTP状态码用来表示客户端HTTP请求的返回结果、标记服务器的处理是否正常、通知出现的错误等工作。状态码格式如:200 OK,由3位数字和原因短语组成。其中,第一位数字表示响应类别,主要有五种响应类别(见上表)。 实践中,经常使用的HTTP状态码主要有以下14种:

1,200 OK

        该状态码表示请求在服务器端被正常处理了。

2,204 No Content

        该状态码表示服务器已成功处理请求,但返回的响应报文中不含实体的主体部分。

3,206 Partial Content

        该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。响应报文中包含由Content-Range指定范围的实体内容。

4,301 Moved Permanently
        该状态码表示永久重定向。请求的资源已经被分配了新的URI,以后要使用新的URI获取资源。新的URI会在首部字段Location中提供。

5,302 Found

        该状态码表示临时重定向。请求的资源已经被分配了新的URI,本次要使用新的URI访问。与301相似,但是302表示资源不是被永久移动,只是临时的。

6,303 See Other

        该状态码表示请求的资源存在另一个URI,应使用GET方法定向获取请求的资源。303状态码和302状态码有着相同的功能,但303明确表示应当使用GET方法获取资源,这点与302是不同的。

7,304 Not Modified

        该状态码表示客户端发送附带条件的请求(附带条件的请求是指使用GET方法的请求报文中包含If-Match,If-Modified-Since,If-Non-Match,If-Range,If-Unmodified-since中任一首部)时,服务器允许请求访问资源,但未满足附带条件。304状态码返回时,不包含任何响应的主体。304虽然被划分在3XX类别中,但是和重定向没有关系。

8,307 Temporary Redirect

        该状态码表示临时重定向,与302的含义是相同的。

9,400 Bad Request

        该状态码表示请求报文中存在语法错误,需修改请求的内容后重新发送请求。另外,浏览器会像200一样对待该状态码。

10,401 Unauthorized

        该状态码表示发送的请求需要有通过HTTP认证(BASIC认证、DIGEST认证)的认证信息。若之前已进行过一次请求,则表示用户认证失败。返回含有401的响应必须包含一个适用于被请求资源的WWW-Authenticate首部用以质询用户信息。当浏览器初次接收到401响应,会弹出认证的对话窗口。

11,403 Forbidden

        该状态码表示对请求资源的访问被服务器拒绝了。服务器没必要给出拒绝的详细理由,但如果想做说明的话,可以在实体的主体部分对原因进行描述。出现403的原因主要有未获得文件系统的访问授权,访问权限出现某些问题(从未授权的发送源IP地址试图访问)等情况。

12,404 Not Found

       该状态码表示服务器上无法找到请求的资源。也可能是服务器拒绝请求且不想说明理由。

13,500 Internal Server Error

       该状态码表示服务器在执行请求时发生了错误,也可能是Web应用存在的BUG或某些临时的故障。

14,503 Service Unavailable

       该状态码表示服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。如果事先可以预估出解除上述状况需要的时间,写入Retry-After首部字段返回给客户端。


PS:HTTP状态码与实际状况不一致的情况是经常发生的,这既需要服务器开发同学遵循相应的规范加以改善,也提醒客户端开发同学要有适当的灵活性,出现不一致的情况时及时与服务端同学check相关逻辑,以保证最终交互的正确性和合理性。

0 0
原创粉丝点击