当前位置: 首页 > news >正文

HTTP状态码有哪些常见的类型?

HTTP 状态码用于表示服务器对客户端请求的响应状态,常见的 HTTP 状态码可以分为以下几类:

一、1xx:信息提示

状态码以 1 开头,表示请求已接收,客户端应继续其请求。常见的状态码有:

• 100 Continue:表示服务器已收到请求的初始部分,客户机应继续发送请求的剩余部分。该状态码通常用于客户端分段上传文件的场景,服务器在收到每一段数据后,会返回 100 表示继续上传。

• 101 Switching Protocols:表示服务器理解客户端的请求,并且正在切换协议以完成请求。例如,在服务器同意客户端的升级请求,如从 HTTP 升级到 WebSocket 协议时,会返回这个状态码。

二、2xx:成功

状态码以 2 开头,表示客户端的请求被成功接收、理解和接受。

• 200 OK:这是最常见的成功状态码,表示客户端的请求已成功被服务器接收、理解并接受。它表示请求所希望的资源已被成功获取,并且在响应正文中返回给客户端。例如,当用户请求一个 HTML 页面时,服务器成功返回该页面内容,就会返回 200 状态码。

• 201 Created:表示请求成功并且服务器已经创建了新的资源。通常是在客户端发送 POST 请求创建新资源后,服务器返回这个状态码,并在响应头中通过 Location 字段指定新创建资源的 URI。例如,当用户在博客平台上发布一篇新文章,服务器成功创建文章后,就会返回 201 状态码。

• 202 Accepted:表示请求已被接受进行处理,但处理尚未完成。它通常用于异步操作的场景,服务器接收了请求,但需要一些时间来处理,客户端可以在后续请求中查询处理结果。例如,当用户提交一个长时间运行的任务时,服务器会立即返回 202 状态码,并提供一个用于查询任务状态的 URI。

• 204 No Content:表示服务器成功处理了请求,但没有返回任何内容。这种情况通常发生在客户端发送了一个请求,希望服务器执行某些操作,但不需要返回任何数据。例如,当客户端请求服务器删除某个资源,服务器成功删除后,就可以返回 204 状态码。

三、3xx:重定向

状态码以 3 开头,表示为了完成请求,客户端需要进一步进行操作,通常需要客户端重新发送请求。

• 301 Moved Permanently:表示请求的资源已被永久移动到新的 URI,客户端应该使用新的 URI 发送请求。这个状态码通常用于网站的永久重定向,例如当网站的域名发生了变更,或者页面的 URL 被永久更改时,服务器会返回 301 状态码,并在响应头中指定新的 URI。

• 302 Found:这是最常见的重定向状态码之一,表示请求的资源临时移动到另一个 URI。与 301 不同,客户端应该使用新的 URI 重新发送请求,但会保持原来的请求方法和消息主体。通常用于页面的临时重定向,例如在网站维护期间,将用户引导到一个临时页面。

• 304 Not Modified:表示客户端请求的资源未被修改,客户端可以继续使用本地缓存的版本。当客户端发送请求并且请求头中包含 If-Modified-Since 或 If-None-Match 等条件请求头时,服务器会检查资源是否被修改。如果没有被修改,就返回 304 状态码,客户端可以直接使用缓存的资源,从而节省了传输资源的时间。

四、4xx:客户端错误

状态码以 4 开头,表示客户端的请求有错误,服务器无法处理该请求。

• 400 Bad Request:表示客户端的请求语法错误或请求参数不完整,服务器无法理解该请求。例如,当客户端发送的请求消息格式不正确,或者缺少必要的请求参数时,服务器会返回 400 状态码。

• 401 Unauthorized:表示请求未授权,客户端需要提供身份验证信息。通常发生在客户端尝试访问受保护的资源,但没有提供有效的身份验证凭据时。服务器会返回 401 状态码,并在响应头中包含 WWW-Authenticate 字段,指定支持的身份验证方案。

• 403 Forbidden:表示服务器理解请求但拒绝执行,通常是因为客户端没有足够的权限访问请求的资源。与 401 不同,403 表示身份验证已经完成,但服务器拒绝授权访问。例如,当用户尝试访问一个受权限限制的页面,但用户没有相应的权限时,服务器返回 403 状态码。

• 404 Not Found:这是最常见的客户端错误状态码之一,表示服务器未找到请求的资源。当客户端请求的页面或资源在服务器上不存在时,服务器会返回 404 状态码。这可能是由于用户输入了错误的 URL,或者请求的资源已被删除。

五、5xx:服务器错误

状态码以 5 开头,表示服务器在处理请求时发生了错误。

• 500 Internal Server Error:这是最常见的服务器错误状态码,表示服务器内部发生了错误,无法完成请求。这可能是由于服务器的配置错误、应用程序的异常或服务器的其他内部问题导致的。

• 501 Not Implemented:表示服务器不支持请求方法或功能。当客户端请求使用了服务器不支持的方法(如 PUT、DELETE 等)或功能时,服务器返回这个状态码。

• 502 Bad Gateway:表示服务器作为网关或代理时,从上游服务器收到了无效的响应。这通常发生在服务器作为反向代理或网关时,与后端服务器通信出现故障或接收到无效的响应时。

• 503 Service Unavailable:表示服务器当前无法处理请求,通常是由于服务器过载或维护等原因。这种情况下,客户端可以在一段时间后重试请求。

• 504 Gateway Timeout:表示服务器作为网关或代理时,没有及时从上游服务器收到响应。这表示服务器在等待后端服务器响应时超时了,可能是因为后端服务器处理请求过慢或网络故障等原因引起的。

了解这些常见的 HTTP 状态码有助于开发人员更好地理解客户端与服务器之间的通信过程,以及在开发和调试 Web 应用时准确地处理各种请求和响应情况。

相关文章:

  • 搭建 Spark - Local 模式:开启数据处理之旅
  • 推荐一个简单又好用的在线视频编辑工具,在线免费使用,便捷高效!
  • ​​批发商商城小程序制作哪家强?开启高效批发新模式!
  • Python爬虫从入门到实战详细版教程Char01:爬虫基础与核心技术
  • 在 master 分支上进行了 commit 但还没有 push,怎么安全地切到新分支并保留这些更改
  • STL常用算法——C++
  • Unity 跳转资源商店,并打开特定应用
  • C# 事件知识文档
  • Vue2 el-checkbox 虚拟滚动解决多选框全选卡顿问题 - 高性能处理大数据量选项列表
  • 如何给文件增加拓展名
  • 1️⃣5️⃣three.js_GUI辅助调试器
  • Qt进阶开发:鼠标及键盘事件
  • AOSP Android14 Launcher3——RectFSpringAnim窗口动画类详解
  • ComfyUI+Sonic实战,三步实现图片开口说话
  • 单个或批量实现-提取PDF文档中的合同号和姓名并按“合同号_姓名”格式重命名文件。
  • 【文献分享】Model-based evaluation提供了数据和代码
  • day48—双指针-通过删除字母匹配到字典最长单词(LeetCode-524)
  • rk3568main.cc解析
  • 多路转接select服务器
  • Node.js简介(nvm使用)
  • 供应商已“陷入困境”,美汽车行业致信特朗普政府
  • 国际货币基金组织:将今年美国经济增长预期下调0.9个百分点至1.8%
  • 海南公布知识产权保护典型案例,一企业违规申请注册“中华”商标被处罚
  • “五一”假期前多地规范旅游市场:要求明码标价,禁止强迫购物
  • 上海市政府常务会议部署多措并举促进消费,提高居民收入,减轻家庭负担
  • 扫描类软件成泄密“推手”,网盘账号密码遭暴力破解