响应状态码
1xx:
服务器收到请求,请求者继续执行操作
2xx
成功,操作被成功接受并处理
3xx
重定向,需要进一步操作完成请求
4xx
客户端错误,请求无法完成,请求包含语法错误
5xx
服务器错误,服务器处理请求时发生错误
更多:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/
状态码 | 状态码英文名称 | 描述 | 说明 |
---|---|---|---|
100 | Continue | 在 HTTP 协议中,当客户端发送一个带有 Expect 请求头部的请求时,在服务器收到请求后会返回 100 状态码来告知客户端可以继续发送请求主体(body)。 | 当客户端发送一个带有 "Expect: 100-continue" 请求头部的请求时,服务器会先返回 100 状态码,表示已经准备好接受请求主体。这种机制可以在客户端发送大量数据给服务器之前,先确保服务器能够处理该请求。 |
101 | Switching Protocols | 切换协议。 | 当客户端向服务器发送一个 Upgrade 请求头部时,服务器可以返回 101 状态码来表示它正在切换到另外一个协议。这通常发生在 WebSocket 协议的握手过程中,客户端请求从 HTTP 协议切换到 WebSocket 协议时会返回 101 状态码。服务端理解客户端的请求,并满足客户端的协议需求 |
200 | OK | 请求成功。 | 表示客户端请求服务端的数据,成功。 |
201 | Created | 已创建。 | 当客户端发送一个包含必要信息以创建资源的请求时,如果服务器成功创建了这个资源,就会使用状态码 201 来表示操作成功。通常,服务器会在响应的头部中包含新创建资源的位置(Location),以便客户端可以通过该位置访问新资源。 |
202 | Accepted | 已接受。 | 表示服务器已经接受了客户端的请求,但尚未完成处理。通常情况下,当服务器收到一个请求后,可能需要一些时间来完成相关的操作,例如异步任务的处理、长时间的计算或其他耗时操作,客户端可以通过不同的方式继续与服务器进行交互,例如轮询、长轮询或使用 WebSocket 进行实时更新。 |
203 | Non-Authoritative Information | 非授权信息。 | 通常情况下,当原始服务器(即收到请求的服务器)并非最适合提供请求资源时,它可能会指示客户端访问另一个服务器来获取所需的信息。在这种情况下,原始服务器会返回状态码 203 给客户端,并且在响应中包含从第三方服务器获取的信息。状态码 203 通常用于代理服务器,表示虽然服务器能够提供响应,但推荐客户端使用其他来源的信息。客户端收到 203 响应后,可以根据响应中提供的信息来决定如何处理数据,例如是否直接使用第三方服务器提供的信息。 |
204 | No Content | 无内容。 | 当服务器接收到客户端的请求并成功处理后(无需更新的操作,例如删除资源或执行简单的数据修改),如果没有需要返回给客户端的实体内容,可以使用状态码 204 来表示。这意味着服务器已经成功执行了请求,但在响应中没有包含任何响应体。状态码 204 可以被视为请求成功的一种特殊情况,它与状态码 200 OK 不同之处在于,后者会在响应中包含实际的响应内容,而前者则不包含。 |
205 | Reset Content | 重置内容。 | ,它在HTTP/1.1规范中被定义为重置内容。当服务器希望客户端清除当前页面中的表单输入内容时,可以返回状态码 205。当客户端提交表单数据给服务器后,如果服务器希望让客户端清空表单中已填写的数据而不返回任何新内容时,可以使用状态码 205。客户端会收到这个状态码作为响应,然后会重置表单,清除用户已输入的内容。 |
206 | Partial Content | 表示服务器已经成功处理了部分 GET 请求,但只返回了部分资源的内容。 | 当客户端发送带有 Range 头部的请求时,请求服务器返回文件的某个范围内的数据,而不是整个文件。如果服务器能够满足这个范围请求,它会返回状态码 206,并在响应头中包含表示所请求数据范围的 Content-Range 头部。当客户端发送带有 Range 头部的请求时,请求服务器返回文件的某个范围内的数据,而不是整个文件。如果服务器能够满足这个范围请求,它会返回状态码 206,并在响应头中包含表示所请求数据范围的 Content-Range 头部。 |
300 | Multiple Choices | 多种选择。 | 具体来说,服务器在响应中会包含一个Location头部,其中列出了可供选择的资源列表。客户端可以根据自己的需求选择其中一个资源进行进一步的请求。总之,状态码300表示服务器提供了多个选项,客户端可以根据自己的需求选择其中一个继续请求。 |
301 | Moved Permanently | 永久移动。 | 当一个网页的URL发生永久性变化时,服务器通常会返回状态码301来告知客户端该网页已被永久重定向到新的URL上。在收到301响应后,客户端会自动将之前的URL替换为新的URL,并在以后的请求中使用新的URL。这样,用户就可以无需手动更改书签或链接,而能够访问到正确的资源。可以是网站更改了域名,或者某个页面的URL进行了修改。301重定向肯定会对SEO造成影响。关键词的排名及权重都受到影响 |
302 | Found | 临时移动。 | 当服务器需要临时将请求重定向到另一个位置时,会返回302状态码。与301状态码不同,302状态码表示资源被暂时性地移动到了另一个位置,客户端在以后的请求中仍然应该使用原始URL。客户端收到302响应后,会从响应头中的Location字段获取重定向的新URL,并向该URL发送新的请求。但客户端在处理302重定向时通常不会缓存重定向结果,而是在每次请求时都会重新访问原始URL获取重定向信息。 |
303 | See Other | 查看其它地址。 | 它表明所请求的资源可以在另一个URI下被找到,客户端应该使用GET方法定向获取请求的资源。与302状态码不同的是,当使用POST请求时,303状态码要求客户端发送一个新的GET请求去获取重定向后的资源。当服务器返回状态码303时,它告诉客户端需要发起一个新的GET请求去获取资源,而不是继续使用原来的POST请求。 |
304 | Not Modified | 未修改。 | 它是在客户端发送条件GET请求时服务器返回的一种状态码。当客户端发送带有If-Modified-Since或者If-None-Match头部的GET请求时,服务器会通过比较资源的最后修改时间或实体标签来判断资源是否有更新。如果服务器判断资源未发生变化,就会返回状态码304,告诉客户端可以继续使用本地缓存的副本,而不用重新下载。这种机制可以帮助减少对服务器的请求次数,提高性能并节省带宽。静态资源 |
305 | Use Proxy | 使用代理。 | 表示客户端需要通过代理服务器访问所请求的资源 |
307 | Temporary Redirect | 临时重定向。 | 表示请求的资源已经临时移动到了另一个位置。客户端收到307响应后,会自动重定向到新的位置来获取资源,但是请求的方法不会改变。这个状态码与302 Found类似,但307要求客户端保持原始请求方法不变。换句话说,如果原始请求是POST请求,客户端在收到307响应后会继续以POST方式重定向到新位置,而不会改为GET请求。307状态码通常用于需要临时重定向的情况,让客户端直接访问新的资源位置。 |
400 | Bad Request | 客户端请求的语法错误 | 客户端发送的请求语法上存在问题(1.发送的参数有问题,2.发送的参数过大超过服务器的最大值,3.格式不正确),导致服务器无法理解这个请求的意思,无法处理导致的错误。本质上还是客户端请求时出现的问题 |
401 | Unauthorized | 未经授权 | 服务器返回401状态码表示客户端没有提供有效的身份验证信息或者提供的身份验证信息不足以访问资源。当收到401状态码时,客户端通常会被要求提供有效的凭据(例如用户名和密码)以重新发送请求。401状态码常用于需要用户登录或提供身份验证信息才能访问的资源(1.用户未登录需要访问某资源 2.用户的权限不足,访问超过权限的资源)。 |
402 | Payment Required | 需要付款,保留,将来使用,目前还不存在标准的使用约定,不同的实体可以在不同的环境下使用。 | 它指示客户端需要进行付款以访问请求的资源。通常情况下,这种状态码用于要求用户进行付费订阅或购买特定的服务或内容,以便继续访问所需的资源。 |
403 | Forbidden | 禁止访问 | 服务器理解客户端的请求,但拒绝执行该请求。这通常是由于服务器收到请求,但服务器不想向客户端返回所请求的资源,可能是因为客户端没有足够的权限来访问资源,或者服务器不允许特定操作。403状态码通常用于表示权限不足,即使进行身份验证也无法访问资源。 |
404 | Not Found | 未找到 | 指示客户端请求的资源在服务器上不存在。当服务器无法找到与客户端请求的URI(统一资源标识符)对应的资源时,会返回404状态码。这可能是由于输入了错误的URL、资源被移动或删除,或者服务器上根本没有该资源所致。通常情况下,404状态码是用户最为熟知的状态码之一,表示请求的页面或文件未找到。(可以理解,访问的资源不存在就会出现404错误) |
405 | Method Not Allowed | 方法不被允许 | 这意味着客户端使用了服务器不允许的请求方法。例如,客户端可能使用了不被服务器支持的HTTP方法,比如在只允许GET和POST方法的情况下使用了PUT或DELETE方法。服务器在收到此类请求时会返回405状态码,告知客户端所使用的HTTP方法不被允许。 |
406 | Not Acceptable | 不可接受 | 指示服务器无法根据客户端请求中发送的Accept头部字段值生成响应实体,因为客户端请求的内容特性无法被服务器满足。换句话说,服务器无法提供客户端所需的响应内容类型。通常情况下,406状态码会在客户端请求的内容类型与服务器支持的内容类型不匹配时返回。(服务器返回的内容,客户端无法解析,比如:客户端请求数据Accept:application/json,服务端响应Content-Type:text/html) |
407 | Proxy Authentication Required | 需要代理认证 | 指示客户端必须先使用代理服务器进行身份验证,然后才能访问请求的资源。当客户端发送的请求需要经过代理服务器转发到目标服务器时,如果代理服务器要求进行身份验证,但客户端未提供有效的身份验证信息,那么代理服务器会返回407状态码,要求客户端提供有效的身份验证信息,以便代理服务器可以继续处理请求。 |
408 | Request Time-out | 请求超时 | 指示客户端发出的请求在服务器等待时间内没有得到响应。这通常发生在客户端发送请求后,服务器在预定的时间内没有做出响应,导致请求超时。客户端可以选择重发请求,以尝试获得有效的响应。408状态码提示了请求处理时间过长,可能是由于网络连接问题、服务器负载过重或其他原因导致的请求超时。 |
409 | Conflict | 冲突 | 指示由于请求中的资源状态与服务器上的现有资源状态冲突而导致请求无法完成。这种冲突通常是指在并发操作中,多个请求对同一资源进行了修改,但由于状态冲突导致无法同时处理这些请求。服务器返回409状态码时,通常会包含描述冲突原因的信息,以帮助客户端解决冲突并重新发起请求。 |
410 | Gone | 永久删除 | 指示请求的资源已被服务器永久删除,且不会再被恢复。与404状态码不同,404表示资源未找到,而410则表示资源曾经存在但现在已被永久删除。当服务器返回410状态码时,客户端可以清除该资源的引用,因为该资源不再可用。通常情况下,服务器会在返回410状态码时提供一些额外信息,说明资源被删除的原因。 |
411 | Length Required | 需要长度 | 指示服务器拒绝接受客户端发送的没有定义Content-Length头部的请求。在要求提供内容长度的情况下,如果客户端发送的请求缺少Content-Length头部,服务器将返回411状态码以指示缺少必要的请求头部信息。这个状态码通常用于要求客户端在请求中包含内容长度的场景,以便服务器能够正确处理请求。 |
412 | Precondition Failed | 先决条件错误 | 指示服务器在处理请求时,发现其中所附带的一些前提条件未满足,因此无法执行该请求。通常情况下,客户端在发送请求时会包含一些条件,如If-Match、If-None-Match等,用于在服务器执行请求之前检查资源的状态。如果服务器发现这些条件不满足,就会返回412状态码,告知客户端请求未能成功执行因为前提条件失败。 |
413 | Request Entity Too Large | 请求实体过大 | 指示服务器拒绝处理客户端发送的请求,因为请求中所携带的实体数据过大而超出了服务器的处理能力或限制。这通常发生在客户端尝试上传的数据量超过服务器所允许的最大限制时,服务器会返回413状态码以提示请求实体过大。客户端可以尝试减少请求中的数据量或与服务器管理员联系以增加限制,以便成功处理请求。 |
414 | Request-URI Too Large | 请求的URI过长 | 指示客户端发送的请求中的URI(统一资源标识符)超出了服务器能够处理的最大长度限制,导致服务器拒绝处理该请求。这种情况通常发生在客户端发送的请求URI过长,超过了服务器允许的限制,因此服务器无法正常处理该请求并返回414状态码。客户端可以尝试缩短请求的URI长度或使用其他方式来处理较长的URI。 |
415 | Unsupported Media Type | 不支持的媒体类型 | 指示服务器拒绝处理客户端发送的请求,因为请求中所携带的实体的媒体类型不被服务器支持或不被请求的资源接受。换句话说,服务器无法处理请求,因为请求中包含的数据格式或媒体类型与服务器或资源不兼容。客户端可以尝试修改请求中的媒体类型,以便服务器能够接受并处理请求。 |
416 | Requested range not satisfiable | 范围不符合要求 | 指示服务器无法满足客户端在请求中指定的Range头部的范围要求。通常情况下,客户端在请求中包含Range头部,用于指定所需的资源范围,而服务器则会根据范围请求返回相应的资源内容。如果服务器无法满足客户端指定的范围请求,就会返回416状态码,表示请求的范围不符合要求,无法提供所需的资源范围。(如果客户端请求的资源范围与服务器上的资源不匹配、超出范围或服务器无法处理范围请求,服务器就会返回416状态码。断网续传) |
417 | Expectation Failed | 期望失败 | 示服务器无法满足请求中Expect头部字段指定的期望值。客户端在发送请求时可以使用Expect头部字段,用于指定期望的服务器行为,例如期望服务器返回100 Continue响应。如果服务器无法满足这个期望,就会返回417状态码,表示期望失败。这种情况通常发生在服务器无法满足客户端的期望行为时。 |
500 | Internal Server Error | 服务器内部错误 | 指示服务器在处理请求时发生了意外的、无法处理的错误。这个状态码通常表示服务器遇到了无法预料的情况,导致无法完成客户端的请求。当服务器无法确定准确的错误原因时,会返回500状态码作为通用的服务器内部错误提示,告知客户端请求未能成功处理。这种状态码一般不会提供具体的错误信息,而是表明服务器出现了问题。 |
501 | Not Implemented | 未实现 | 指示服务器不支持或未实现客户端请求的功能或方法。当服务器收到无法识别或不支持的请求方法时,会返回501状态码作为响应,告知客户端服务器不支持该请求所需的功能或方法。这通常发生在客户端发送了服务器不认识或者不支持的请求方法时。 |
502 | Bad Gateway | 网关错误 | 指示作为网关或代理的服务器从上游服务器接收到无效的响应。换句话说,502错误表明代理服务器无法从上游服务器(例如,Web服务器或其他代理服务器)获取有效的响应。这可能是由于上游服务器暂时不可用、超时、故障或配置错误引起的。通常情况下,502错误是由代理服务器转发请求到上游服务器时出现问题导致的。 |
503 | Service Unavailable | 服务不可用 | 指示服务器目前无法处理客户端的请求,因为服务器暂时过载或维护中。当服务器无法处理请求并且预计在较短时间内恢复时,会返回503状态码给客户端。这个状态码通常用于临时情况,客户端可以稍后重试请求。503状态码与服务器内部错误(500状态码)不同,它表明服务器有意暂时停止服务,而不是由于无法处理请求而导致的错误。 |
504 | Gateway Time-out | 网关超时 | 指示作为网关或代理的服务器在等待上游服务器的响应时已超时。这种情况通常发生在代理服务器向上游服务器转发请求时,但上游服务器未能及时响应,导致代理服务器超时。504状态码表明网关或代理服务器在请求上游服务器时发生了超时,客户端可以尝试重新发送请求或等待一段时间后再次尝试。这通常暗示了上游服务器存在性能问题或负载过重。 |
505 | HTTP Version not supported | HTTP版本不受支持 | 指示服务器不支持或拒绝支持客户端所请求的HTTP协议版本。当客户端发送的HTTP协议版本(例如,HTTP/1.1)不被服务器支持时,服务器会返回505状态码作为响应,告知客户端服务器不支持该版本的协议。这种情况通常很少发生,因为大多数现代服务器都支持常见的HTTP协议版本,如HTTP/1.1。 |
# 为什么会使用重定向
域名更换(旧域名更换为新域名)
多域名跳转(多个域名跳转至主站,进行引流)
网站调整(如改变网页目录结构)
路径改变(如网页被移到一个新地址)
网页扩展名改变(如应用需要把.php改成.html或.shtml)
# 301 与 302 的区别
301:
1.服务器返回 301 ,表示资源已经'永久'被移动到新的url中
2.客户端接受 301 ,重定向到新的url,搜索引擎会更新索引到新的url
3.浏览器会缓存301重定向,下次在访问旧url,不会发起请求,直接访问新的url
302:
1.服务器返回 302 ,表示资源已经被'临时'移动到新的url中
2.客户端接受 302 ,暂时访问新的url,原url还是有效的
3.浏览器会缓存302重定向,每次访问原url时,还是正常访问发起请求,并且跳转到新的url中
# 场景:
301 永久重定向
比如:公司的内的域名进行了更改
原:https://www.zzzz.com 转为 现:https://www.z123456.com
302 临时重定向
比如:将80端口转到443
原:http://zzzz.com 转为 https://www.zzzz.com