五大类状态码:
- 1xx:信息状态码,表示接收的请求正在处理。
- 2xx:成功状态码,表示请求正常处理完毕。
- 3xx:重定向状态码,表示需要进行附加操作来完成请求。
- 4xx:客户端错误状态码,表示服务器无法处理请求。
- 5xx:服务器错误状态码,表示服务器失效,处理请求出错。
常见状态码:
- 100:表示目前为止正常,客户端可以继续发送请求或者忽略这个响应。(HTTP 1.1 新值的)
- 200: 表示请求被成功处理。
- 204:表示请求已经成功处理,但返回的响应报文不包含实体主体。一般在只需要从客户端往服务器发送信息,而不需要返回数据时使用。
- 206:表示客户端进行了范围请求,响应报文包含指定范围的实体内容。
- 301:表示永久重定向。
- 302:表示临时重定向。
- 303:表示临时重定向,同时要求客户端采用 GET 方法获取资源。
- 304:如果请求报文首部包含一些条件,比如:If-Match,If-None-Match,If-Modified-Since,If-Unmodified-Since,If-Range,如果不满足条件,则服务器会返回 304 状态码。
- 307:表示临时重定向,同时要求浏览器不会把重定向请求的 POST 方法改成 GET 方法。
- 400:表示请求报文中存在语法错误。
- 401:表示请求需要有认证信息。
- 403:表示请求被拒绝。
- 404:表示无法找到对应资源。
- 405:表示请求中的方法被禁止。
- 412:表示先决条件失败。
- 500:表示服务器执行请求时发生错误 。
- 503:表示服务器正忙,现在无法处理请求。
重定向和转发的区别
- 重定向:指由浏览器进行页面跳转。如果服务器返回重定向状态码,比如 301(永久重定向)、302(临时重定向),浏览器就到新的网址重新请求资源,地址栏会发生改变,请求次数为 2 次,效率比转发的低。可用于用户注销后跳转到其他网站。
- 转发:指由服务器进行页面跳转。服务器直接访问要跳转的地址,将内容读取后发给浏览器。地址栏不发生变化,显示的是上一个页面的地址,请求次数为 1 次。可用于用户登录某个网页后,继续浏览里面的其他模块。