状态码
状态码的类别:
状态码 | 类别 | 原因 |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error客户端错误状态码 | 服务器无法处理的请求 |
5XX | Server Error(服务器错误状态码) | 服务器请求处理出错 |
Ⅰ 2XX表明请求被正常处理了
- 200 OK: 客户端发来的请求被服务端正常处理了。
204 No Content
: 请求处理成功,但返回的报文中不含实体的主体部分(浏览器页面不会发生更新)。206 Partial Content
: 客户端发起了范围请求,服务器处理成功,返回了由Content-Range
指定范围的实体内容。
Ⅱ 3XX表明浏览器需要执行某些特殊的处理才能正确处理请求
- 301 Moved Permanently: 请求的资源已被分配了新的URI(永久性重定向)。
- 302 Found: 资源临时被分配了新的URI(临时性重定向)。
303 See Other
: 303状态码和302 Found状态码有着相同的功能,但是303状态码明确表示客户端应当采用GET方法获取资源。304 Not Modified
: 客户端发送附带条件的请求时,服务端允许请求访问资源,但因发生请求未满足条件的情况后,直接返回304 Not Modified.
自从上次请求后,请求的网页未被修改过。服务器返回此响应时,不会返回网页内容。- 307 Temporary Redirect: 临时重定向,和302功能相同,只不过307 Temporary Redirect明确规定了不会从POST变为GET,即期望客户端保持请求方法不变向新的地址发出请求。
注意:
- 301、302标准是禁止将POST方法改变成GET方法的,但实际使用时,大家都这么做。
Ⅲ 4XX表示客服端处发生错误
400 Bad Request
: 请求报文中存在语法错误。 一般都是参数问题,比如参数类型不匹配、少传参等。401 Unauthorized
: 表示发送的请求需要有通过HTTP认证(BAISC认证、DIGEST认证)的认证信息。第一次返回401时会弹出认证用的对话窗口,第二次返回表示用户认证失败。403 Forbidden
: 请求资源的访问被服务器拒绝了。404 Not Found
: 服务器无法找到请求的资源。
Ⅳ 5XX表示服务器本身发生错误
-
500 Internal Server Error
: 服务端在执行请求时发生了错误,一般都是服务端代码出错。 -
502 Bad Gateway
:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。tomcat未能启动成功。 -
504 Gateway Time-out:
作为网关或者代理工作的服务器尝试执行请求时,服务器无响应。 -
503 Service Unavailable
: 服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
注意:
200 OK
一切正常
301 Moved Permanently
永久移走
302 Move temporarily
临时移走
307 Temporary Redirect
临时重定向
404 Not Found
请求的资源不存在
500 Internal Server Error
服务器内部错误
参考博客:状态码详解
Ⅴ 转发和重定向的区别:
转发:服务器内部进行处理转发,是一次请求。
重定向:客户发送一个请求到服务器,服务器向客户端返回一个响应,响应行告诉客户端你必须要再发送一个请求。
区别:
- 请求次数:重定向是浏览器向服务器发送一个请求并收到响应后再次向一个新地址发出请求,转发是服务器收到请求后为了完成响应跳转到一个新的地址;重定向至少请求两次,转发请求一次。
- 地址栏不同:重定向地址栏会发生变化,转发地址栏不会发生变化。
- 是否共享数据:重定向两次请求不共享数据,转发一次请求共享数据。
- 跳转限制:重定向可以跳转到任意URL,转发只能跳转本站点资源;
- 发生行为不同:重定向是客户端行为,转发是服务器端行为。
参考博客:转发和重定向的区别