1XX信息
100 Continue
200 OK
- 表示从客户端发来的请求再服务器端被正常处理了。
- 可以没有实体主体(HEAD)
- 204 No Content
- 请求已成功处理,但在返回的响应报文中不含实体的主体部分。
- 也不允许返回任何实体的主体。
- 比如返回not-modified,不更新当前页面
- 206 Partial Content
- 表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。
- 请求报文的请求首部字段中Range首部指定范围
- 响应报文的实体首部字段中包含由Content-Range指定范围的实体内容
3XX 重定向
3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。
重定向地址放在响应首部字段的Locatoin字段中。
- 300 Multiple Choice(多种选择)
- 该请求有多种可能的响应,用户代理或者用户必须选择它们其中的一个。
- 301 Moved Permanently
- 永久性重定向。
- 该状态码表示请求的资源已被永久分配了新的URI。
- 302 Found
- 临时性重定向。
- 该状态码表示请求的资源本次被分配了新的URI。
- 与301的区别在于:302状态码代表的资源不是永久移动,只是临时性质的。换句话说,已移动的资源对应的URI将来还有可能发生改变。
- 302=303+307?
- 303 See Other
- 临时性重定向。请求对应的资源存在另一个URI,应使用GET方法定向获取请求的资源。
- 与302的区别在于:明确表示客户端应当采用GET方法获取资源(无视原本的方法)
- 也可以用302代替303,但303更合适.
- 当301、302、303响应状态码返回时,几乎所有浏览器都会把POST 改成 GET,并删除请求报文内的主体,之后请求会自动再次发送。301、302标准是禁止将POST方法变成GET方法的,但实际使用时大家都会这么做。
- 304 Not Modified
- 不进行重定向。不包含任何主体部分。
- 该状态码表示,服务端资源未改变,可直接使用客户端未过期的缓存。
- 发生条件:客户端发送附带条件的请求,服务器端允许访问资源,但请求未满足条件。
- 附带条件的请求指:采用GET方法的请求报文中包含If-Match,If-None-Match,If-Modified-Since, If-Unmodified-Since,If-Range中的任一首部。
307 Temporary Redirect
400 Bad Request
- 请求报文中存在语法错误
- 场景:
- 前端提交的字段名称或者字段类型和后台的实体类不一样
- 或者前端提交的参数跟后台需要的参数个数不一致,导致无法封装。
- 浏览器会像 200 OK 一样对待该状态码
- 401 Unauthorized
- 表示发送的请求需要有通过HTTP认证的认证信息。
- 若浏览器初次接收到401响应,会弹出认证用的对话窗口。若之前已进行过1次请求,则表示用户认证失败。
- 返回含有401的响应必须包含一个适用于被请求资源的 WWW-Authenticate 首部用以质询(challenge)用户信息。
- 403 Forbidden
- 对请求资源的访问被服务器拒绝了。
- 如果服务器想给出拒绝的详细理由,可以在实体的主体部分对原因进行描述。
404 Not Found
500 Internal Server Error
- 服务器在执行请求时发生了错误。
- 也可能是Web应用存在的bug或某些临时的故障。
- 502 Bad Gateway
- 表示一台服务器在充当网关(gateway)或代理(proxy)时,从另一台上游服务器(upstream)接收无效响应。
- nginx 中经常遇到
- 503 Service Unavailable
- 服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
- 如果知道以上状况需要的时间,最好写入Retry-After首部字段返回给客户端。

