一、状态码
5种状态码:
具有代表性的14个状态码:
2XX
请求被正常处理
- 200 ok
表示客户端发来的请求在服务端被正常处理了
- 204 no Content
服务端请求处理成功,但是没有资源返回(响应报文中不含实体的主体),当从浏览器发出请求处理后,返回204,那么浏览器的页面不发生跟新。
- 206 partial Content
客户端进行了范围请求,服务端成功执行了这部分的请求,响应报文中包含有Content-Range指定范围的实体内容
3XX 重定向
表明浏览器需要执行某些特殊的处理以正确处理请求。
- 301 moved Permanently
请求的资源已被分配了新的URL,以后应使用资源现在所指的URL。
- 302 Found
临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问
- 303 See Other
该状态码表示由于请求对应的资源存在着另一个 URI,应使用 GET方法定向获取请求的资源。
303 状态码和 302 Found 状态码有着相同的功能,但 303 状态码明确表示客户端应当采用 GET 方法获取资源,这点与302 状态码有区别
注意:当 301、302、303 响应状态码返回时,几乎所有的浏览器都会把POST 改成 GET,并删除请求报文内的主体,之后请求会自动再次发送。
- 304 Not Modified
如果客户端发送了一个带条件的GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码。简单的表达就是:客户端已经执行了GET,但文件未变化。
注: GET方法的请求报文中包含 If-Match,If-ModifiedSince,If-None-Match,If-Range,If-Unmodified-Since 中任一首部
- 307 Temporary Redirect
临时重定向,同302.307会遵循浏览器的标准,不会讲post请求变为get
4XX 客户端错误
- 400 Bad Request
请求报文中存在语法错误,当错误发生时需要修改请求的内容再次发送
- 401 Unauthorized
该状态码表示发送的请求需要有通过HTTP认证(BASIC 认证、DIGEST 认证)的认证信息。另外若之前已进行过 1 次请求,则表示用户认证失败。
- 403 Forbidden
请求资源的访问被服务器拒绝
- 404 Not Found
服务器上无法找到请求资源
5XX服务器错误
- 500 Internal Server Error
表示服务端在执行请求时发送错误
- 503 Service Unavailable
服务器超负荷或者处于停机维护中,如果事先得知解除以上状况需要的时间,最好写入RetryAfter 首部字段再返回给客户端。