一、什么是HTTP状态码?
HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。一般而言响应状态码由三位数构成,所有状态码的第一个数字代表了响应的五种状态之一。通常用于测试查看结果以及错误原因。
二、常见HTTP响应状态码有哪些
1、1XX状态码(临时响应)
①、100:客户端继续请求。
②、101:切换协议,服务器根据客户端的请求切换版本的协议。例如,从 HTTP/1.1 切换到 WebSocket 协议时,服务器可能会先返回 101 状态码,表示即将切换协议以便建立 WebSocket 连接。
2、2XX状态码(请求成功)
①、200:请求处理成功。
②、201:成功请求并创建了新的资源。
③、202:已接受到请求,但处理未完成。
④、203:服务器成功处理了请求,但返回的元信息不是来自源服务器(例如从缓存或代理服务器获取的部分信息)时,会使用 203 状态码。
⑤、204:服务器成功处理请求,但是返回的响应没有内容。
⑥、205:重置内容。可通过此返回码清除浏览器的表单域。
⑦、206:服务器成功处理了部分GET请求。
3、3XX状态码(跳转/重定向)
①、301:永久跳转。请求的资源已被永久的移动到新URL,返回信息会包括新的URL,浏览器会自动定向到新URL。
②、302:临时跳转。与301跳转相似,不同的是只是临时的移动到新URL。
③、303:当服务器接收到请求并处理后,发现应该引导客户端到另一个 URL 去获取资源时,会返回 303 状态码。比如在用POST请求方法,填写完一个表单点击提交后,然后想让客户端跳转新的页面(比如一个确认页面或者结果页面),并在响应头的 Location 字段中指定客户端要跳转去的 URL。
④、304:缓存。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。
⑤、305:使用代理。所请求的资源必须通过代理访问。
⑥、307:临时重定向。与302类似。使用GET请求重定向。
4、4XX状态码(客户端错误)
①、400:客户端语法错误,服务器无法识别。
②、401:请求要求用户的身份认证。
③、403:服务器拒绝客户端的请求。
④、404:服务器资源不存在,或者服务器无法根据客户端的请求找到资源。
⑤、405:客户端请求中的方法被禁止,如PUT方法。
⑥、406:服务器无法根据客户端请求的内容特性完成请求。
⑦、407:请求要求代理的身份认证,请求要求代理的身份认证。
⑧、408:服务器等待客户端发送的请求时间过长,导致超时。
⑨、409:服务器处理客户端的PUT请求时发生了冲突。
⑩、410:显示资源不存在,因为资源曾经存在,只是被永久删除了。404可能是URL有错。
⑪、411:服务器需要客户端发送带有Content-Length请求信息的请求。
⑫、412:客户端请求信息的先决条件错误。
⑬、413:请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。
⑭、414:URL过长。
⑮、415:服务器无法处理请求附带的媒体格式。
⑯、416:客户端请求的范围无效。
⑰、417:服务器无法满足Expect的请求头信息
5、5XX状态码(服务器错误)
①、500:服务器内部错误。
②、501:未实现,服务器不支持请求中所需的功能或方法。
③、502:网关错误。
④、503:服务不可用。服务器可能是临时过载、维护或者正在进行系统升级等原因。
⑤、504:网关超时。
⑥、505:HTTP 版本不受支持。客户端使用了一个较新的或者较旧的 HTTP 版本(如 HTTP/3,而服务器只支持 HTTP/1.1 和 HTTP/2)来发送请求时,服务器会返回 505 状态码。