常用HTTP状态码

状态码 释义 使用
100 Continue 表示目前为止一切正常, 客户端应该继续请求, 如果已完成请求则忽略。一般用在这种情况:客户端在发送一个大数据请求前,希望知道服务器是否会对这个数据进行处理。 客户端必须在发送请求实体前, 在初始化请求中发送 Expect: 100-continue 首部并接收 100 Continue 响应状态码.
101 Switching Protocol 协议切换,状态码表示服务器应客户端升级协议的请求正在切换协议。服务器会发送一个Upgrade响应头来表明其正在切换过去的协议
200 OK 成功

默认情况下状态码为200的响应可以被缓存
GET: 已经取得资源,并将资源添加到响应的消息体中。

HEAD: 响应的消息体为头部信息。

POST: 响应的消息体中包含此次请求的结果。

TRACE: 响应的消息体中包含服务器接收到的请求信息。

PUTDELETE 的请求成功通常并不是响应200 OK的状态码而是 204 No Content 表示无内容(或者 201 Created表示一个资源首次被创建成功)。
201 Created 成功并创建了新的资源。

同时新增的资源会在应答消息体中返回,其地址或者是原始请求的路径,或者是 Location 首部的值。
设计 REST API,或者一个 CRUD API,使用 POST(或者 PUT)成功创建一个新的资源后,服务器应该返回 201 Created 同时在 header 的 Location 字段给出刚刚创建好的这个资源的 URI。
202 Accepted 成功,但是服务器仍在进行处理。

表示服务器端已经收到请求消息,但是尚未进行处理。
服务器在接受请求后,可以先返回202告诉客户端已经收到消息,但是有一个异步处理还在继续处理
203 Non-Authoritative Information 成功,非权威信息。

状态码表明请求是成功的,但是通过转换代理(RFC7230的5.7.2节)已经从源服务器的200 (OK)响应中修改了所包含的有效负载。
204 No Content 成功,没有内容返回。

但是客户端客户不需要离开当前页面。默认情况下 204 响应是可缓存的。一个 ETag 标头包含在此类响应中。
205 Reset Content 成功,客户端进行重置操作。

用来通知客户端重置文档视图,比如清空表单内容、重置 canvas 状态或者刷新用户界面。
常用204代替
206 Partial Content 部分成功。

header必须包含 Range 首部,表明自己请求第几个字节到第几个字节的内容,如果服务器支持,响应主体包含range首部请求的数据。

如果只包含一个数据区间,那么整个响应的 Content-Type 首部的值为所请求的文件的类型,同时包含 Content-Range 首部。

如果包含多个数据区间,那么整个响应的 Content-Type 首部的值为 multipart/byteranges ,其中一个片段对应一个数据区间,并提供 Content-RangeContent-Type 描述信息。
只包含一个数据区间的响应
包含多个数据区间的响应
常用于断点续传和多线程下载
301 Moved Permanently 永久重定向。

说明请求的资源已经被移动到了由 Location 头部指定的url上,是固定的不会再改变。搜索引擎会根据该响应修正。

尽管标准要求浏览器在收到该响应并进行重定向时不应该修改http method和body,但是有一些浏览器可能会有问题。所以最好是在应对GETHEAD 方法时使用301,其他情况使用308 来替代301
----
302 Found 临时重定向

请求的资源被暂时的移动到了由Location 头部指定的 URL 上。浏览器会重定向到这个URL, 但是搜索引擎不会对该资源的链接进行更新
----
303 See Other GET重定向到相关页面

它表示重定向链接指向的不是新上传的资源,而是另外一个页面,比如消息确认页面或上传进度页面。而请求重定向页面的方法要总是使用 GET
304 Not Modified 未改变

无需再次传输请求的内容,也就是说可以使用缓存的内容。

通常是在此请求下会返回304:使用 GETHEAD等安全方法(safe),或是在请求中附带了头部信息: If-None-MatchIf-Modified-Since

如果资源没被修改过,服务器端就应该返回 304 Not Modified,同时 body 不包含任何内容

如果修改过,则返回 200 OK ,响应会带有头部 Cache-Control, Content-Location, Date, ETag, Expires,和 Vary.
很多浏览器的 开发者工具 会发出额外的请求,以达到 304 的目的,这样可以把资源以本地缓存的形式展现给开发者。
307 Temporary Redirect 临时重定向

请求的资源暂时地被移动到了响应的 Location 首部所指向的 URL 上。

状态码 307302之间的唯一区别在于,当发送重定向请求的时候,307 状态码可以确保请求方法和消息主体不会发生变化。如果使用 302 响应状态码,一些旧客户端会错误地将请求方法转换为 GET
308 Permanent Redirect 永久重定向

请求的资源已经被永久的移动到了由 Location 首部指定的 URL 上。浏览器会进行重定向,同时搜索引擎也会更新其链接
在重定向过程中,请求方法和消息主体不会发生改变,然而在返回 301状态码的情况下,请求方法有时候会被客户端错误地修改为GET方法。
400 Bad Request 错误的请求

由于请求语法无效(例如,格式错误的请求语法,太大的大小,无效的请求消息或欺骗性路由请求),服务器不能或不会处理该请求。
401 Unauthorized 未授权

客户端错误,指的是由于缺乏目标资源要求的身份验证凭证,发送的请求未得到满足。

这个状态码会与 WWW-Authenticate 首部一起发送,其中包含有如何进行验证的信息。
响应示例
这个状态类似于 403, 但是在该情况下,依然可以进行身份验证。
403 Forbidden 拒绝访问

客户端错误,指的是服务器端有能力处理该请求,但是拒绝授权访问。
这个状态类似于 401,但进入该状态后不能再继续进行验证。该访问是长期禁止的,并且与应用逻辑密切相关(例如不正确的密码)

总的说401相应应该用来表示缺失或错误的认证,403表示用户认证后,但权限不足,无法对该资源进行操作
404 Not Found 资源不存在

客户端错误,指的是服务器端无法找到所请求的资源。返回该响应的链接通常称为坏链(broken link)或死链(dead link),它们会导向链接出错处理页面。
404 状态码并不能说明请求的资源是临时还是永久丢失。如果服务器知道该资源是永久丢失,那么应该返回 410 (Gone) 而不是 404 。
405 Method Not Allowed HTTP请求方法禁用
407 Proxy Authentication Required 缺少代理认证 这个状态码会与 Proxy-Authenticate首部一起发送,其中包含有如何进行验证的信息。

你可能感兴趣的:(常用HTTP状态码)