常见 HTTP 状态码
类别 | 原因短语 | |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正在处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 客户端错误,请求包含语法错误或服务器无法完成请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
1XX 信息
100 Continue
表明目前为止都很正常,客户端可以继续发送请求或忽略这个响应
2XX 成功
200 OK
从客户端发来的请求在服务器被正常处理了
-
204 请求处理成功 但是没有任何资源返回给客户端(一般用于只需客户端向服务端发送消息)
-
206 对资源的某一部分请求 响应报文中包含由 Content-Range 指定范围的实体内容
3XX 重定向
-
301永久重定向 如果把资源对应的URI保存为书签,则此时书签会根据Localtion首部字段提示的URI重新保存
-
302 临时重定向 临时地从旧地址A跳转到地址B
-
303 和301,302类似 当使用post方法访问一个资源时,把客户端以get的方式重定向到对应的URI,返回303状态码
-
304 资源已经找到,但是不满足条件,所以不把资源返回给客户端。常用于协商缓存。
-
400 请求报文内有语法错误
-
401 该状态码表示发送的请求需要通过HTTP认证,初次收到401响应浏览器弹出认证的对话窗口。若收到第二次401状态码,则说明第一次验证失败。
-
403 请求资源的访问被服务器拒绝,一般是未获得文件系统的访问权限,访问权限出现问题。
-
404 服务器上找不到请求资源 或路径错误
-
405 请求方法被服务端识别,但是服务端禁止使用该方法。可以用OPTIONS来查看服务器允许哪些访问方法
-
500 服务器端在执行请求时出错,一般是因为web应用出现bug
-
502 代理服务器或网关从上游服务器中收到无效响应
-
503 服务器暂时处于超负载或停机维护,目前无法处理请求
301和302的区别。
301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)——这是它们的共同点。
他们的不同在于。301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。 SEO302好于301
重定向原因:
- 网站调整(如改变网页目录结构);
- 网页被移到一个新地址;
- 网页扩展名改变(如应用需要把.php改成.Html或.shtml)。 这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再者某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点等。