HTTP状态码是由三位数字组成的数字代码,用于表示HTTP协议处理请求时的返回状态。状态码通常由服务端发送,客户端通过接收状态码来了解请求是否成功,以及出现错误时出错的原因。

以下是HTTP状态码的详细介绍: 

1xx - 信息性状态码

这些状态码表示已接受请求,但仍处于处理过程中。常见的信息性状态码有以下几种:

  • 100 Continue(继续):表示客户端应该继续它的请求
  • 101 Switching Protocols(切换协议):表示客户端需要采用不同协议以完成请求,如升级为WebSocket
  • 102 Processing(处理):表示服务器已经收到并正在处理请求,但客户端仍应继续等待

2xx - 成功状态码

这些状态码表示已成功接收请求并进行了处理。常见的成功状态码有以下几种:

  • 200 OK(成功):表示已成功处理请求,一般用于GET和POST请求
  • 201 Created(已创建):表示已成功创建请求的资源
  • 202 Accepted(已接受):表示已接收请求,但尚未完成处理,需要等待一段时间
  • 204 No Content(无内容):表示成功处理请求,但没有返回任何实体内容

3xx - 重定向状态码

这些状态码表示客户端需要可能的进一步操作才能完成请求,如需要进一步地加载新URL。常见的重定向状态码有以下几种:

  • 300 Multiple Choices(多项选择):表示请求的资源有多个可供选择的表示形式,由客户端进行选择
  • 301 Moved Permanently(永久重定向):表示资源已被永久移除,并且将SE0优化转移到了新的位置
  • 302 Found(临时重定向):表示资源已被临时移动到另一个位置和URL
  • 303 See Other(查看其他位置):表示客户端应当使用另一个URI来访问请求的资源,而不是使用当前URI
  • 304 Not Modified(未修改):表示客户端缓存的资源未发生修改,可以继续使用缓存
  • 307 Temporary Redirect(临时重定向):与302状态码类似,客户端应该继续使用原地址
  • 308 Permanent Redirect(永久重定向):与301状态码类似,客户端应该使用新的URL来访问请求资源

4xx - 客户端错误状态码

这些状态码表示客户端的请求有错误,需修改请求才能成功。常见的客户端错误状态码有以下几种:

  • 400 Bad Request(请求出错):表示请求报文存在语法错误或请求不被服务器所接受
  • 401 Unauthorized(未授权):表示请求未经授权,需进行身份验证
  • 403 Forbidden(拒绝访问):表示服务器拒绝该请求
  • 404 Not Found(未找到):表示请求的资源不存在
  • 405 Method Not Allowed(方法不被允许):表示请求中所指定的方法不被服务器支持
  • 406 Not Acceptable(不可接受):表示客户端请求的内容格式服务器不支持
  • 407 Proxy Authentication Required(需要代理身份验证):表示客户端需要先使用代理服务器进行身份验证才能访问所需资源
  • 408 Request Timeout(请求超时):表示请求超时,服务器等待的时间过长
  • 409 Conflict(请求冲突):表示请求冲突,且仅适用于PUT请求
  • 410 Gone(已被删除):表示请求的资源已被永久删除
  • 411 Length Required(需要长度):表示服务端必须提供 Content-Length 头信息
  • 412 Precondition Failed(前置条件不满足):表示客户端请求的条件无法服务端满足
  • 413 Payload Too Large(请求体太大):表示服务器拒绝处理请求,请求过于庞大
  • 414 URI Too Long(URI太长):表示请求中的URI过长,服务器无法处理
  • 415 Unsupported Media Type(不支持的媒体类型):表示客户端请求的内容格式不被服务器支持
  • 416 Range Not Satisfiable(范围无效):表示服务器无法提供请求的范围,如请求的资源不存在
  • 417 Expectation Failed(服务器无法处理Expect头字段指定的期望值):表示服务器无法满足客户端在Expect头字段中指定的扩展请求信息
  • 421 Misdirected Request(该对端服务器错):表示服务器要求客户端通过另一个协议或IP地址访问资源,以便更好的控制负载平衡。
  • 422 Unprocessable Entity(请求格式正确,但语义有误):表示请求格式正确,但是由于含有语义错误,无法被服务器识别
  • 423 Locked(当前请求的资源被锁定):表示由于资源被锁定,请求无法处理
  • 424 Failed Dependency(请求失败依赖):表示一个先前的请求失败,导致此次请求失败
  • 425 Too Early(请求过早):表示请求过早,任何操作都不能执行
  • 426 Upgrade Required(需要升级协议):表示客户端需要切换协议以完成请求
  • 428 Precondition Required(此时请求需满足先决条件):表示缺少先决条件,请求无法被处理
  • 429 Too Many Requests(请求过多):表示请求次数超出了服务器的限制
  • 431 Request Header Fields Too Large(请求头超大):表示请求头部字段或cookie长度过大,服务器无法处理
  • 451 Unavailable For Legal Reasons(由于法律原因无法获得):表示服务器由于法律原因无法处理请求

5xx - 服务器端错误状态码

这些状态码表示服务器在处理请求时遇到错误或无法完成请求。常见的服务器端错误状态码有以下几种:

  • 500 Internal Server Error(内部服务器错误):表示服务器在处理请求时遇到错误
  • 501 Not Implemented(未实现):表示服务器不支持请求的功能
  • 502 Bad Gateway(错误网关):表示网关或代理服务器收到无效响应
  • 503 Service Unavailable(服务不可用):表示服务器暂时无法处理请求,如服务器过载、停机等
  • 504 Gateway Timeout(网关超时):表示网关或代理服务器在规定时间内未能接收到响应
  • 505 HTTP Version Not Supported(HTTP协议版本不被支持):表示服务器不支持请求中所用的HTTP协议版本
  • 506 Variant Also Negotiates(协商变量也行):表示服务器在内部配置错误
  • 507 Insufficient Storage(存储空间溢出):表示服务器无法存储完成请求所必须的内容
  • 508 Loop Detected(检测到循环):表示服务器在处理请求时检测到循环
  • 510 Not Extended(不可扩展):表示客户端需要进行额外的扩展以完成请求
  • 511 Network Authentication Required(需要网络认证):表示客户端需要进行网络认证以完成请求

获取状态码示例

在Java中,使用HttpURLConnection或OkHttp等库发送Http请求,可以通过getResponseCode()方法来获取状态码。下面是一个示例代码:

URL url = new URL("http://www.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int statusCode = connection.getResponseCode();

以上代码是使用HttpURLConnection发送Get请求,并获取响应的状态码。

小结

以上就是HTTP协议中定义的所有状态码及其含义。了解这些状态码,可以更好地判断请求返回结果是否符合预期,有助于开发人员进行debug和问题排查。当HTTP协议定义的状态码不足以表达具体的问题时,HTTP会在响应消息体中进一步描述具体问题信息。无论是服务器端还是客户端,都可以通过状态码及其描述信息来判断问题所在,以便及时得到解决。

HTTP状态码、接口请求状态码相关推荐

  1. 接口请求返回的状态码总览

    HTTP状态码(英语:HTTP Status Code),用以表示网页服务器超文本传输协议响应状态的3位数字代码. 作用:服务器告诉客户端当前请求响应的状态,通过状态码就能判断和分析服务器的运行状态 ...

  2. 接口响应状态码整理合集

    前言 请求后端接口的时候有时因为某些原因会返回一些错误状态码,不同的状态码对应不同的错误信息,为了方便状态码查询与问题定位,梳理总结一下. 目录 HTTP响应状态码分类 100-199 信息响应 20 ...

  3. Http请求状态码-206

    哈喽 大家好啊 相信很多小伙伴都遇到过接口206状态 这是我最近遇到的一个很头疼的问题 首先我们打开F12看网络请求,因为有些是图片类型,有些是xhr接口类型,有些是媒体media资源类型,所以大家筛 ...

  4. 为什么ajax请求状态码为0,ajax请求状态码为0的解决办法

    原文链接:https://blog.csdn.net/changqing5818/article/details/53932463 前言 今天遇到个奇怪的问题,使用JQuery的ajax请求,后台的C ...

  5. HTTP请求状态码404相关问题解决

    HTTP请求状态码404相关问题解决 参考文章: (1)HTTP请求状态码404相关问题解决 (2)https://www.cnblogs.com/complc/p/11646710.html 备忘一 ...

  6. http协议组成(请求状态码)

    http请求由:请求行:消息报头:请求正文组成 //请求行 Request URL: http://172.32.4.33:8080/operation/v2/autoServer/queryAuto ...

  7. 在使用selenium 做IE自动化操作时 请求状态码 400【帮忙解决或者找出问题所在悬赏200】

    在使用selenium 做IE自动化操作时 发现定位点击按钮无效,后来发现,人工点击按钮时,请求状态码为200,自动化点击时状态码为400,请问大家有什么方法可以尝试解决这个问题吗? 对方可能使用了某 ...

  8. 服务器响应请求状态码(详细版)

    原文地址: https://www.cnblogs.com/chinaifae/p/10253520.html. 2开头 (成功响应)表示成功处理了请求的状态码 200 (成功) 服务器已成功处理了请 ...

  9. http协议,http状态码,请求,响应

    http 简介 http 是一种超文本传输协议(Hyper Text Transfer Protocol), 可以用来在络中把服务器消息传输到我们的浏览器中.并且Http 协议是一个基于 TCP/IP ...

最新文章

  1. The method setButton(int, CharSequence, Message) in the type AlertDialog is not applicable for the a
  2. 使用静态URL片段 URL路由 精通ASP-NET-MVC-5-弗瑞曼
  3. CentOS6.2安装LAMP+DRUPAL网站(2)
  4. ORACLE 字符串函数用法(转载)
  5. macos 安装 brew
  6. freemarker 去掉最后一个逗号_从零开始做一个SLG游戏(六)游戏系统以及配置表...
  7. ARM 汇编学习——编写简单的ARM汇编程序
  8. 通俗理解滑模变结构(2)
  9. Too many open files 问题
  10. GitHub 报告:中国755万开发者排全球第二
  11. SAS Viya调研概述
  12. android 状态模式,Android编程设计模式之状态模式详解
  13. Linux常用命令的缩写含义
  14. Power bi 3.6 百分比堆积柱形图
  15. u3d学习-第一个小游戏
  16. Go环境配置(MAC)
  17. 【地图学】地图投影的定义和分类
  18. 【面试】764高频前端开发面试问题及答案整理
  19. 高清网络摄像机 (High Definition IP Camera) 的延迟问题
  20. 为什么特征数据要做对数变换?

热门文章

  1. MATLAB图片加密
  2. c语言字符串数组的两种表示方法
  3. 人工智能机器人中的硬件
  4. 中南大学计算机学院张伟,中南大学2019年大学生创新创业年会计算机学院专场分会顺利举办...
  5. dreamweaver作业静态HTML网页设计——动漫主题:天宝伏妖录(7页) 学生动漫网页设计作品静态HTML网页模板源码
  6. matlab算cos15 cos30,cos30 等于多少:Cos30度等于多少?怎么算的求详细解答
  7. NPM酷库045:js-yaml,读写YAML
  8. 惠普新CEO的独门秘笈
  9. 扎心,如果张东升是个程序员
  10. 金蝶AAS适配人大金仓kdb_pdo