摘要
本文部分内容来源于网络,个人收集整理,请勿传播
2xx 成功
1 | 2xx 成功 |
3xx 重定向
301 && 302
- 301 永久重定向
- Moved Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。
- 302 临时重定向
- Found 请求的资源现在临时从不同的URI响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。
- 共同点:用户都可以看到url替换为了一个新的,然后发出请求
301适合永久重定向
- 比较常用的场景是使用域名跳转。
- 我们访问 http://www.baidu.com 会跳转到 https://www.baidu.com,发送请求之后,就会返回301状态码,然后返回一个location,提示新的地址,浏览器就会拿着这个新的地址去访问。
注意: 301请求是可以缓存的, 即通过看status code,可以发现后面写着from cache。
302用来做临时跳转
- 比如未登陆的用户访问用户中心重定向到登录页面。
- 访问404页面会重新定向到首页。
1 | ##niginx 301/302配置 |
304
客户端发送了一个带条件的GET请求且该请求已被允许,但是请求的文档没有发生改变,则状态码是304
- 如ngx配置了静态资源的缓存
1 | 303 请参阅其它 — 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应。 |
4xx 客户端错误
1 | 400 错误请求 — 请求中有语法问题,或不能满足请求。 |
499
499错误是什么?让我们看看NGINX的源码中的定义:
1 | ngx_string(ngx_http_error_495_page), /* 495, https certificate error */ |
可以看到,499对应的是 “client has closed connection”。这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。
- nginx发现如果两次提交post过快就会出现499的情况,看来是nginx认为是不安全的连接,主动拒绝了客户端的连接.
- nginx转发php或者另一个nginx,超时时间比后端程序短,达到了超时时间会主动断开客户端的连接,返回499
1 | # nginx 添加以下参数 |
5xx 服务器中出现的错误
1 | 500 内部错误 - 代码因为意外(报错)无法返回请求结果 |
其他
1 | HTTP状态代码(各种错误代码集合) |
1 | 错误 602 The port is already open |