HTTP码有哪些?分别对应什么意思?
HTTP状态码是指客户端向服务器发出请求时,服务器返回的HTTP协议状态码。
根据HTTP/1.1协议,HTTP状态码分为5类,常见的状态码包括:
1xx:信息响应类,表示请求已被成功接收,等待后续处理。
2xx:成功响应类,表示请求已成功被服务器接收、理解、并接受。
3xx:重定向响应类,表示需要进一步的操作来完成请求。
4xx:客户端错误响应类,表示客户端发送的请求有错误。
5xx:服务器错误响应类,表示服务器无法完成对请求的处理。
以下是HTTP状态码以及它们的含义:
2xx
200 OK:请求已成功,请求所希望的响应头或数据体将随此响应返回。
201 Created:请求已经被实现,而且有一个新的资源已经依据请求的需要而建立。
202 Accepted:表示请求被服务器接收但尚未执行完成。
203 Non-authoritative Information:文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝。
204 No Content:服务器成功处理了请求,但body中没有任何内容。
205 Reset Content:服务器成功处理了请求,用户需要重置页面上的一些参数。
206 Partial Content:服务器成功处理了部分请求的内容,就是说body中有部分内容。
3xx
300 Multiple Choices:重定向多种选择。
301 Moved Permanently:永久性重定向,请求的 URL 已永久移动到另一个位置。
302 Found:临时性重定向,请求的 URL 已暂时移动到另一个位置。
303 See Other:需要使用 GET 方法访问另一个 URL。
304 Not Modified:自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。(客户端缓存的资源未修改,可以直接使用缓存。)
305 Use Proxy:客户请求的文档应该通过Location头所指明的代理服务器提取。
306 Unused:【此代码被用于前一版本。目前已不再使用,但是代码依然被保留。】
307 Temporary Redirect:临时性重定向,与 302 Found 类似,但禁止 POST 请求方法改变。
308 Permanent Redirect:永久性重定向,与 301 Moved Permanently 类似,但禁止 POST 请求方法改变。
4xx
400 Bad Request:请求参数错误,服务器无法解析。
401 Unauthorized:未授权,需要用户身份验证。
402 Payment Required:保留,预留支付场景使用。
403 Forbidden:请求被服务器拒绝,没有权限访问。
404 Not Found:请求的资源不存在。
405 Method Not Allowed:请求方法不允许,如 POST、GET、PUT 等。
406 Not Acceptable:客户端请求格式不可用,服务器无法生成满足请求的响应。
407 Proxy Authentication Required:需要代理身份验证。
408 Request Timeout:请求超时,服务器没有在指定时间内处理请求。
409 Conflict:请求冲突,服务器无法处理请求的操作。
410 Gone:请求的资源已经不存在,永久性删除。
411 Length Required:需要请求消息携带有效长度信息。
412 Precondition Failed:先决条件失败,服务器检查请求头中的先决条件时发现条件不满足。
413 Payload Too Large:请求体太大,服务器无法处理。
414 URI Too Long:请求 URI 过长,服务器无法处理。
415 Unsupported Media Type:不支持的请求格式,服务器无法处理。
416 Range Not Satisfiable:范围请求不可满足,如请求的范围超过了资源的实际长度。
417 Expectation Failed:请求头中包含无法满足的期望信息。
5xx
500 Internal Server Error:服务器内部错误,原因未知。
501 Not Implemented:请求方法不被服务器支持。
502 Bad Gateway:服务器作为网关或代理,从上游服务器接收到无效响应。
503 Service Unavailable:服务器过载或维护中,暂时无法处理请求。
504 Gateway Timeout:服务器作为网关或代理,等待上游服务器响应超时。
505 HTTP Version Not Supported:HTTP 协议版本不受支持。
506 Variant Also Negotiates:服务器存在内部配置错误。
507 Insufficient Storage:服务器无法存储完成请求所必须的内容。
508 Loop Detected:服务器在处理请求时检测到无限循环。
510 Not Extended:客户端请求头中包含服务器不支持的扩展信息。
比较常用的就如下几个:
200 OK:请求已成功,请求所希望的响应头或数据体将随此响应返回。
201 Created:请求已经被实现,而且有一个新的资源已经依据请求的需要而建立。
204 No Content:服务器成功处理了请求,但body中没有任何内容。
206 Partial Content:服务器成功处理了部分请求的内容,就是说body中有部分内容。
301 Moved Permanently:永久性重定向,请求的 URL 已永久移动到另一个位置。
302 Found:临时性重定向,请求的 URL 已暂时移动到另一个位置。
304 Not Modified:自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
400 Bad Request:请求错误,服务器未能理解请求。
401 Unauthorized:未授权,需要用户身份验证。
403 Forbidden:没有权限访问网站,服务器已经理解请求,但是拒绝执行它。
404 Not Found:无法找到指定位置的资源,服务器已经理解请求,但是找不到资源。
500 Internal Server Error:服务端遇到错误,无法完成请求。
502 Bad Gateway:服务器作为网关或代理,从上游服务器接收到无效响应。
503 Service Unavailable:服务器过载或维护中,暂时无法处理请求。
响应201状态码的“心路历程”
(1)通常在POST请求或某些PUT请求之后发送响应。
(2)201响应的HTTP消息体会包含描述新创建资源的URL、元数据以及可能用于访问资源的链接等详细信息。
(3)一般情况下,201状态码是由服务器向客户端返回的,意味着服务器已经根据客户端请求所提供的信息创建了一个新资源。这个新资源可能是指一个新的网页、一个新的文档、一个新的用户账户等等。
(4)当客户端发送一个POST请求时,服务器可能会在其数据库中创建一个新的记录,而201状态码就是用来通知客户端数据库创建新记录成功的。