200 OK
请求成功时,最常见的就是这个状态码。
202 Accepted
服务器已接受处理,但未处理完成。与之相似的是 201 Created,表示服务器已接受并创建新的资源。
204 No Content
常见于 HEAD 请求,服务器未返回响应体,只有响应头。
206 Partial Content
常见于范围请求的响应,表示响应体只是部分资源,资源范围由响应头 Range 规定
400 Bad Request
客户端请求有误,例如不遵循 HTTP 规范,或是请求参数有错误。
403 Forbidden
服务器理解客户端请求但拒绝响应,有可能是权限不足。但如果是客户端未认证(登录),应该返回 401 Unauthorized
401 Gone
客户端请求的资源曾经存在,但现在已经不在了。与 404 Not Found 的区别是,404 仅仅表示客户端请求的资源不存在,也许是从来就不存在,也有可能是曾经存在。
418 I’m a teapot
客户端要求服务器冲泡一杯咖啡,但服务器是一个茶壶拒绝冲泡(这是一个彩蛋 23333,并没有什么卵用的状态码)
301 Moved Permanently
客户端请求的资源已永久移动至其他地方,由响应头 Location 指向新的资源位置,后续的请求应使用新的地址。
与此对应的是 302 Found 或 303 See Other,表示临时移动资源,客户端下次请求时应继续使用原有资源,这两个区别不大,仅仅是语义上的区别。
由于这几个状态码有的客户端会改变请求方法,如本来请求方法是 POST,有可能会被改成 GET,因此仅当请求方法为 GET 或 HEAD 时使用这几个状态码(301, 302, 303)。
如果想不让客户端改变请求方法,应当使用 307 Temporary Redirect 临时重定向和 308 Permanent Redirect 永久重定向。