常见的HTTP状态码


本文主要整理了一些常见的HTTP状态码,并做了简单的解释。

1XX:消息

这类状态码,代表请求已被服务端接受,但服务端还要继续进行处理。

100 代表继续 Continue

服务端收到请求,并表示可以继续,当客户端准备推送较大的数据时,可以用100表示允许

101 切换协议 Switching Protocols

比较常见的是响应WebSockets连接,浏览器会先发送HTTP请求,在请求头里带上希望升级为WebSockets协议的相关信息。
服务端收到后,如果支持 WebSockets,就会返回这个状态码 101,进行 HTTP 到 WebSockets 的协议切换。


2XX:成功

表示成功处理了请求

200 成功 OK

服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。

201 已创建 Created

请求成功并且服务器创建了新的资源。

202 已接受 Accepted

服务器已接受请求但尚未处理


3XX:重定向

表示要完成请求,需要进一步操作。通常这些状态代码用来重定向。

301 永久性重定向 Moved Permanently

资源已被分配了新的 URL,客户端向新地址发送请求,未来所有的请求都应该使用新的URL,服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

302 临时性重定向 Found
  • 资源临时被分配了新的 URL,旧地址还在,客户端继续向旧地址发送请求。
  • 通常情况下,301状态码比302更常用,因为永久性重定向对于SEO和搜索引擎的优化更加友好,而且可以使浏览器和搜索引擎更好地缓存新的URL,从而提高性能和减少网络流量。但在负载均衡和应急维护等情况下,临时性重定向也是非常有用的。
303 查看其他位置 See Other
  • 表示请求已经被服务器接收,但需要进一步的操作才能完成请求。它通常用于POST请求的响应,告诉客户端应该使用GET方法重新发起请求。
  • 例如,当用户提交一个表单后,服务器可能会返回303状态码,告诉浏览器应该使用GET方法重新请求一个新的URL,以防止用户刷新页面时重新提交表单。
307 临时性重定向 Temporary Redirect
  • 请求的资源临时从不同的URI 响应请求,临时重定向。与302类似。使用GET请求重定向。
  • 当服务器返回状态码 302 时,表示请求的资源暂时被重定向到其他位置。对于 GET 请求,客户端会自动进行重定向操作,而对于POST 请求,则可能会将请求方法改为 GET 并重定向。这样可能导致一些安全漏洞,因为 POST 请求的消息体可能包含敏感信息,通过自动转换为 GET 方法并携带在 URL 中可能会带来安全风险。
  • 与 302 不同,当服务器返回状态码 307 时,表示请求的资源也被临时重定向到了其他位置。不同的是,对于所有类型的请求(包括 GET、POST 等),客户端都会保持原始请求的方法和消息体不变,并重发请求到新的 URI。这样可以避免因为自动转换请求方法而带来的安全风险,适用于需要保持请求方法和消息体的场景。

4XX:请求错误

表示请求可能出错,妨碍了服务器的处理。

400 错误请求 Bad Request

服务器不理解请求的语法,通常是语义有误或请求参数有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。

401 未授权 Unauthorized

当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。

403 禁止 Forbidden

服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。

404 未找到 Not Found

请求失败,请求所希望得到的资源未被在服务器上发现。如果服务器不想告诉请求者拒绝理由,或者服务器端没有这个页面,都可以返回404给客户端。

408 请求超时 Request Timeout

服务器等候请求时发生超时,客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改。


5XX:服务器错误

表示服务器在处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。

500 服务器内部错误 Internal Server Error

服务器遇到错误,无法完成请求。一般来说,这个问题都会在服务器端的源代码出现错误时出现,如果服务端未对异常做处理返回对应的状态码,那么一般会默认返回500。

501 未实现 Not Implemented

服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码,以告诉客户端服务器不支持请求中要求的功能

502 错误网关 Bad Gateway

服务器作为网关或代理,从上游服务器收到无效响应。

503 服务不可用 Service Unavailable

服务器目前无法使用(由于超载或停机维护)。例如,如果某些线程或数据库连接池已经没有空闲则servlet会返回这个头信息。服务器可提供一个Retry-After头信息告诉客户端什么时候可以再试一次。

504 网关超时 Gateway Timeout

服务器作为网关或代理,但是没有及时从上游服务器收到请求。该状态是HTTP 1.1新加入的。

505 HTTP 版本不受支持 HTTP Version Not Supported

服务器不支持请求中所用的 HTTP 协议版本。该状态是HTTP 1.1新加入的。

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值