HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。
状态码的职责是当客户端向服务器端发送请求,描述返回的请求结果。借助状态码,用户可以知道服务器是正常处理了请求还是出现了错误。
状态码如200 OK,以3位数字和原因短语组成。数字中的第一位指定了相应类别,后两位无分类。
类别 | 原因短语 | |
---|---|---|
1xx | Informational(信息性状态码 ) | 接受的请求正在处理 |
2xx | Success(成功状态码) | 请求正常 |
3xx | Redirection(重定向状态码 ) | 需要进行附加操作已完成请求 |
4xx | Client Error(客户端错误状态吗) | 服务器无法处理请求 |
5xx | Server Error(服务器错误状态吗) | 服务器处理请求错误 |
状态码种类繁多,实际上经常使用的大概只有一下14种:
1、200 OK
表示从客户端发来的请求在服务器端正常处理。
在响应报文内,随状态码一起返回的信息会因为方法的不同而发生改变。
2、204 No Content
请状态码表示服务器接受的请求已成功处理,但在返回的响应报文中不含实体的主体部分。例:当从浏览器发出请求处理后,返回204响应,那么浏览器现实的页面不会发生更新。
3、206 Partial Content
该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。
4、301 Moved Permanently
永久性重定向。表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。
5、302 Found
临时性重定向。表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。
6、303 See Other
表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。
注:当301、302、303响应状态码返回时,几乎所有的浏览器都会把POST请求改成GET请求,并删除请求报文内的主体,之后请求会自动再次发送。
7、304 Not Modified
表示客户端发送附带条件的请求时,服务器允许请求访问资源,但因发生请求为满足条件,直接返回304.
8、307 Temporary Redirect
临时重定向
9、400 Bad Request
表示请求报文中存在语法错误。
10、401 Unauthorized
表示发送的请求需要有通过HTTP认证的认证信息。
11、403 Forbidden
表明对请求资源的访问被服务器拒绝了。
12、404 Not Found
该状态码表明服务器上无法找到请求的资源。
13、500 Internal Server Error
表明服务器端在执行请求时发生了什么错误。
14、503 Service Unabailable
表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
参考资料:《图解HTTP》