返回结果的HTTP状态码——《图解http》第四章
- HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。*
4.1状态码负责告知从服务器端返回的请求结果
状态码的类别:
类别 | 原因短语 | |
---|---|---|
1XX | informational(信息性状态码) | 接受的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
4.2 2XX成功
- 200 OK
正常处理
- 204 No Content
请求成功,但不返回资源
- 206 Partial Content
表示客户端进行了范围请求
4.3 3XX重定向
- 301 Moved Permanently
永久性重定向。
- 302 Found
临时性重定向
- 303 See Other
表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。
- 307 Temporary Redirect
临时重定向。与302状态有着相同的含义。
- 304 Not Modified
表示服务器接收了附带条件的请求且条件未满足的情况
PS:条件请求
在进行条件请求时,客户端会提供给服务器一个If-Modified-Since请求头,其值为服务器上次返回的Last-Modified响应头中的日期值还会提供一个If-None-Match请求头,值为服务器上次返回的ETag响应头的值。服务器会读取到这两个请求头中的值,判断出客户端缓存的资源是否是最新的。
- 情况一:如果客户端缓存的资源是最新的话,服务器就会返回HTTP/304 Not Modified响应,但没有响应体.客户端收到304响应后,就会从缓存中读取对应的资源。
- 情况二:如果服务器认为客户端缓存的资源已经过期了,那么服务器就会返回HTTP/200 OK响应,响应体就是该资源当前最新的内容.客户端收到200响应后,就会用新的响应体覆盖掉旧的缓存资源。
4.4 4XX客户端错误
- 400 Bad Request
表示请求的报文中存在语法错误。
浏览器会像200 OK那样对待该状态码。- 401 Unauthorized
表示发送的请求需要有通过HTTP认证的认证信息。另外若之前已进行过1次请求,则表示用户认证失败。
- 403 Forbidden
表示对请求资源的访问被服务器拒绝了。
- 404 Not Found
表明服务器上无法找到请求的资源。也可以在服务器拒绝请求且不想说明原因的时候使用。
4.5 5XX服务器错误
- 500 Internal Server Error
表明服务器再执行请求时发生错误,也可能是其他错误。
- 503 Service Unavailable
表明服务器暂时处于超负载或者正在进行停机维护,现在无法处理请求。
PS: 不少返回的状态码响应都是错误的,但是用户可能察觉不到这点。比如Web应用程序内部发送错误,状态码依然返回200 OK,这种情况也经常遇到。
行为影响状态,状态影响视图