《图解HTTP》【4】HTTP状态码

1. 客户端发送请求给服务器端,服务器端响应内容给客户端,而状态码用以描述服务器端响应是否正常。

2. 状态码分类:

1xx:信息性状态码     接收的请求正在处理

2xx:成功状态码           请求正常处理完毕

3xx:重定向状态码     需要附加操作以完成请求

4xx:客户端错误状态码   服务器无法处理请求

5xx:服务器错误状态码   服务器处理请求出错

3. 常用的状态码: 

【1】2xx类别:

(1)200 OK 表示请求正常处理,正常响应

(2)204 No Content 请求资源成功,但不返回任何资源,一般在只需要客户端向服务器发送信息,服务器端不需要响应资源时使用.

(3)206 Partial Content 范围请求成功,客户端进行范围请求,服务器成功响应,需要使用 Range 字段.

【2】3xx类别:

(1)301 Moved Permanently 永久性重定向:表示当前请求的资源已经不存在,被分配到了新的 URI,会通过返回的响应头部 Location 地址值,自动跳转到新的 URI.

(2)302 Found 临时性重定向:规定如果用户使用 POST 请求,返回 302,禁止浏览器将 POST 请求转换为 GET 请求,再次访问返回的响应头部 Location 的地址值。303 和 307 是对 302 的规范细化,因为虽然 302 禁止那么做,但多数浏览器实际上还是会将 POST 请求变为 GET 请求,去访问返回的响应头部 Location 的地址值。

(3)303 See Other 临时性重定向:302 规定了不允许将用户的请求方法变更,但多数浏览器都无视了这个规定,因此推出了 303 和 307,对 302 做规范化,303 实际上和 302 对请求的处理时一样的,用户使用 POST 请求,返回 303 将用户的请求方法变更为 GET 请求后,重新请求响应头部的 Location 地址值.

(4)307 Temporary Redirect 临时性重定向:307 与 303 相反,它禁止将用户 POST 请求方法变更为 GET,去再次请求返回的响应头部 Location 的地址值,而是使用原来的 POST 方法。

(5)304 Not Modified :表示用户发送了带有条件的请求,但是服务器未满足条件,虽然被划分在3xx类别,但和重定向没什么关系。附带条件的请求指的是,用户在 GET 请求时 ,携带头部字段 If-Match,If-Modified-Since 等等【涉及浏览器缓存部分】

【3】4xx类别:

(1)400 Bad Request 请求错误,表示请求报文存在语法错误,需要修改。

(2)401 Unauthorized 表示用户请求未经授权,需要通过 HTTP 认证,返回 401 响应的头部有一个 WWW-Authenticate 字段用来质询用户信息,初次接收到 401 响应会弹出一个对话框用以认证,如果二次收到 401 响应,表示认证失败。

(3)403 Forbidden 表示禁止用户请求此资源.

(4)404 Not Found 表示服务器不存在要请求的资源.

【4】5xx类别:

(1)500 Internal Server Error 表示服务器端在执行请求时发生错误.

(2)503 Service Unavailable 表示服务器崩溃,超负荷运作,或者在进行停机维护.

上一篇:Http状态码301和302的区别


下一篇:VMware Workstation 与 Device/Credential Guard不兼容