首页 » 网络 » HTTP状态码

HTTP状态码

HTTP状态码(Http Status Code):

状态码 说明
1xx - 信息
100 Continue 服务器收到不完整的请求。客户端应重新发送一个完整请求。
101 Switching protocols 切换协议。如从 HTTP 切换到 WebSocket。
2xx - 成功
200 OK 请求成功。对GET和POST请求应答的文档跟在其后。
3xx - 重定向
300 Multiple Choices 请求的文档可在多个位置找到,并在返回的文档中列出
301 Moved Permanently 文档被永久转移,新URL在Location头中
302 Found 请求页面临时转移到了新地址。HTTP/1.0中叫Moved Temporatily。
304 Not Modified 文档内容没有修改,不返回Message body
305 Use Proxy 应从Location中指明的代理服务器提取文档
307 Temporary Redirect 与302同
4xx - 客户端错误
400 Bad Request 请求出现语法错误,服务器不理解。
401 Authorization Required请求页面需要认证(用户名和密码)。
403 Forbidden 页面禁止访问。
404 Not Found 没有找到请求页面。
405 Method Not Allowed 不允许的方法
408 Request Timeout 从建立连接到收到请求的间隔时间过长
5xx - 服务器端错误
500 Internal Server Error HTTPServer内部错误
503 Service Temporarily Unavailable HTTPServer内部错误,暂时不能提供服务

HTTP 302 重定向

“302/Found”,HTTP/1.0中叫Moved Temporatily。

测试重定向

测试youku.com,重定向到www.youku.com。

$ curl -I youku.com
HTTP/1.1 302 Moved Temporarily
Location: http://www.youku.com/

测试qiyi.com

1. 重定向到http://www.qiyi.com/ 2. 测试www.qiyi.comd,继而又重定向到:http://www.iqiyi.com/。

HTML设置重定向

HTML中的重定向写法如:

<meta HTTP-equiv="refresh" content=5 url="HTTP://berlinix.com">

即告诉浏览器5秒后自动跳转到http://berlinix.com

重定向常用于自动跳转,常见两种跳转:服务器内部跳转和服务器间跳转。

  • 服务器内部跳转如:“登录成功,5秒后自动进入主页”的应用
  • 服务器间跳转如:浏览器向服务器A发送请求,重定向到认证服务器B,当通过认证后,服务器B再通过HTTP重定向到服务器A。

HTTP 307 重定向

$ curl -I http://www.haskell.org
HTTP/1.1 307 Temporary Redirect
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny13 with Suhosin-Patch
Location: http://www.haskell.org/haskellwiki/Haskell

405错误

405/Method Not Allowed,表示不支持请求的方法,这个错误不常见。

例如用HEAD方法请求知乎,将返回405:

$ curl -I www.zhihu.com
HTTP/1.1 405 Method Not Allowed

按RFC 2616的描述,如果服务器返回405,应该同时返回允许的方法列表(The response MUST include an Allow header containing a list of valid methods for the requested resource.),但这个测试没有发现返回允许方法列表。

GET方法访问则无问题:

$ curl -v www.zhihu.com
HTTP/1.1 200 OK

分享

0