参考链接

MDN: HTTP 响应状态码

小林coding: HTTP 常见的状态码有哪些?

HTTP常见状态码

HTTP 常见状态码 - 图1

  • 200 和 304:
    200 表示成功,服务器已成功处理了请求,返回需要的资源
    304 表示未修改,自上次请求后资源未修改,重定向至已缓存文件,不返回资源

  • 301 和 302 :
    301:永久重定向,表示资源已被分配了新的 URL,后续都向新的 URL 请求资源
    302:临时重定向,表示资源临时被分配了新的 URL,后续还是向旧的 URL 请求资源

  • 302 和 307 :
    当发送重定向请求的时候,307 状态码可以确保请求方法和消息主体不会发生变化
    302 状态码不强制保持请求方法不变,一些旧客户端会错误地将请求方法转换为 GET

1xx

1xx 类状态码属于提示信息,是协议处理中的一种中间状态,实际用到的比较少。

2xx

2xx 类状态码表示服务器成功处理了客户端的请求。

「200 OK」表示从客户端发来的请求在服务器端被正确处理。如果是非 HEAD 请求,服务器返回的响应头都会有 body 数据

「204 No Content」表示请求成功,与 200 OK 基本相同,但响应头没有 body 数据

「205 Reset Content」表示请求成功,但响应报文不含实体的主体部分,但是与 204 响应不同在于要求请求方重置内容

「206 Partial Content」进行范围请求,是应用于HTTP分块下载或断点续传,表示响应返回的 body 数据并不是资源的全部,而是其中的一部分,也是服务器处理成功的状态。

3xx

3xx 类状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向

「301 Moved Permanently」表示永久重定向,表示资源已被分配了新的 URL。

「302 Found」表示临时重定向,表示资源临时被分配了新的 URL。

301 和 302 都会在响应头里使用字段 Location ,指明后续要跳转的 URL ,浏览器会自动重定向新的 URL。

「303 See Other」通常作为 PUT 或 POST 操作的返回结果,它表示重定向链接指向的不是新上传的资源,而是另外一个页面,比如消息确认页面或上传进度页面。而请求重定向页面的方法要总是使用 GET

「304 Not Modified」不具有跳转的含义,表示资源未修改,重定向已存在的缓冲文件,也称缓存重定向,用于缓存控制。

「307 Temporary Redirect」临时重定向,和 302 含义类似,但是期望客户端保持请求方法不变向新地址发出请求

4xx

4xx 类状态码表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义。

「400 Bad Request」表示由于语法无效,服务器无法理解该请求。

「401 Unauthorized」表示发送的请求需要有通过 HTTP 认证的认证信息,由于缺乏目标资源要求的身份验证凭证,发送的请求未得到满足。

「403 Forbidden」表示服务器禁止访问资源,并不是客户端的请求出错。

「404 Not Found」表示请求的资源在服务器上不存在或未找到,所以无法提供给客户端。

5xx

5xx 类状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误码。

「500 Internal Server Error」是个笼统通用的错误码,服务器发生了什么错误,我们并不知道。

「501 Not Implemented」表示客户端请求的功能还不支持,类似”即将开业,敬请期待”的意思。

「502 Bad Gateway」通常是服务器作为网关或代理时返回的错误码,表示服务器自身工作正常访问后端服务器发生了错误。作为网关或代理角色的服务器,从上游服务器中接收到的响应是无效的。

「503 Service Unavailable」表示服务器暂时处于超负载或正在停机维护,暂时无法处理请求,类似”网络服务正忙,请稍后重试的意思”。