HTTP状态码是什么?

news2024/11/15 10:07:05

文章目录

  • HTTP状态码
    • 1. 消息:1xx
    • 2. 成功:2xx
    • 3. 重定向:3xx
    • 4. 请求错误:4xx
    • 5. 服务器错误:5xx


HTTP状态码

HTTP 状态码(HTTP Status Code)是一个表示服务器响应状态的 3 位整数代码。比如当服务器收到客户端的某个请求后,服务器会对客户端做出响应,响应中会使用一个数字形式的代码来表示当前响应的状态,这个代码就是 HTTP 状态码。
在这里插入图片描述

状态码使用第一个数字表示响应的类别,一共五种,分别使用 1~5 来表示,状态码的后两位则没有特殊的含义。HTTP 状态码的类别及说明如下表所示。

分类分类描述
1xx信息,表示服务器收到了请求,并且该请求还没有完成,需要请求者继续执行
2xx成功,表示请求被成功接收并处理
3xx重定向,表示需要进一步的操作才能完成请求
4xx客户端错误,表示该请求无法完成或包含语法错误
5xx服务器错误,表示服务器在处理请求的过程中发生了错误

下面来详细介绍一下 HTTP 中的状态码。

1. 消息:1xx

1xx 类型的状态码代表客户端的请求已被服务器接受,但还需要继续处理。这类响应是临时响应,只包含响应行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义 1xx 这一类型的状态码,所以除非在特定的条件下,否则服务器不会向客户端发送 1xx 类型的响应。1xx 类型状态码的具体说明如下表所示:

状态码状态码英文名称中文描述
100Continue表示服务端仅收到了一部分请求,客户端应继续该请求
101Switching Protocols表示服务端已经根据客户端的请求切换了协议版本,注意:只能向更高级的协议版本切换,例如,切换到 HTTP 的新版本协议
102Processing表示服务端已收到并且正在处理这个请求,但暂无响应
103Early Hints表示允许服务端在主响应头之前先发送部分响应头,以达到预加载文件的目的

2. 成功:2xx

2xx 类型的状态码代表客户端的请求已成功被服务端接收,并成功处理了这个请求。2xx 类型状态码的具体说明如下表所示:

状态码状态码英文名称中文描述
200OK表示请求成功
201Created表示请求成功并创建了新的资源
202Accepted表示该请求正在进行处理,但尚未处理完成
203Non-Authoritative Information表示请求成功。但返回的 meta 信息不在原始的服务器,而是一个副本
204No Content表示请求成功,但不需要返回任何响应体
205Reset Content表示请求成功,但没有返回任何响应体。与状态码 204 不同的是,此状态码告诉客户端应立即重置发送此请求的文档视图。比如在用户提交表单后,立即重置表单,以便用再次输入
206Partial Content表示服务端成功处理了部分 GET 请求,像迅雷这类的 HTTP 下载工具就是使用此类响应实现断点续传或者分段下载的
207Multi-Status由 WebDAV(RFC 2518) 扩展的状态码,代表之后的响应体将是一个 XML 消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码

3. 重定向:3xx

3xx 类型的状态码代表需要客户端采取进一步的操作才能完成请求。通常这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。

当且仅当后续的请求所使用的方法是 GET 或者 HEAD 时,用户浏览器才可以在没有用户介入的情况下自动提交所需要的后续请求。客户端应当自动监测并避免无限循环的重定向(例如:A->A,或者 A->B->C->A),因为这会导致服务器和客户端资源的消耗。按照 HTTP/1.0 版协议的规范,浏览器重定向得次数不得超过 5 次。

3xx 类型状态码的具体说明如下表所示:

状态码状态码英文名称中文描述
300Multiple Choices表示该请求有多种可能的响应,客户端需要选择其中的一个进行重定向
301Moved Permanently表示请求的资源已永久移动到新的 URL,响应中会包含新的 URL,浏览器会自动重定向到新的 URL,今后任何对该资源的请求都应该使用新的 URL
302Found表示请求的资源被临时移动到新的 URL,与 301 不同,被请求的资源只是临时被移动,后续对该资源的请求还可以使用原 URL
303See Other表示对当前请求的响应可以在另一个 URL 上找到,而且客户端应当采用 GET 的方式访问那个资源
304Not Modified表示所请求的资源(自上次访问)并没有改变时,服务器会返回此状态码,但响应中不会包含响应体,因此客户端可以使用上次请求缓存的资源
305Use Proxy表示所请求的资源必须通过指定的代理才能访问
306Unused在最新版的规范中,该状态码已经被弃用
307Temporary Redirect与 302 类似,表示所请求的资源需要临时从不同的 URL 响应

4. 请求错误:4xx

4xx 类型的状态码代表了客户端可能发生了错误,导致服务器无法完成响应,服务器就会返回一个解释当前错误状况的响应体。这一类状态码适用于任何请求方法(HEAD 请求除外),客户端(浏览器)会自动显示出响应中的响应体,也就是我们常说的错误信息。

4xx 类型状态码的具体说明如下表所示:

状态码状态码英文名称中文描述
400Bad Request客户端请求有语法错误,服务器无法理解
401Unauthorized当前请求需要用户的身份认证
402Payment Required该状态码是为了将来可能的需求而预留的
403Forbidden服务器理解客户端的请求,但是拒绝执行此请求
404Not Found请求失败,服务器无法找到客户端所请求的资源
405Method Not Allowed客户端请求行中使用的请求方法被服务器禁用
406Not Acceptable服务端响应的资源类型与客户端请求头中要求的资源类型不符,客户端无法解析,简单来讲就是,服务器返回的数据客户端解析不了
407Proxy Authentication Required与 401 响应类似,只不过客户端必须在代理服务器上进行身份验证
408Request Time-out请求超时,服务器无法在规定时间内对客户端进行响应
409Conflict由于客户端请求中要执行的操作与服务器中被请求资源的当前状态存在冲突,导致请求无法完成,通常发生在 PUT 请求中
410Gone客户端请求的资源已经不存在,不同于 404,当资源以前有,但现在被永久删除的情况下可以使用 410 状态码
411Length Required服务器无法处理客户端发送的不带 Content-Length 的请求信息
412Precondition Failed服务器在验证客户端请求头中的字段时,有一个或多个不能满足
413Request Entity Too Large客户端请求中,提交的数据大小超过了服务器允许的范围,服务器拒绝处理当前请求
414Request-URI Too Large请求的 URI 长度超过了服务器能够处理的长度,因此服务器拒绝处理该请求
415Unsupported Media Type服务器无法处理客户端请求中附带的媒体格式
416Requested range not satisfiable如果请求中包含了 Range 头部字段,并且 Range 中指定的数据范围与当前资源的可用范围不符,同时请求中又没有定义 If-Range 头部字段,那么服务器就会返回 416 状态码
417Expectation Failed服务器无法满足请求头中 Expect 头部字段的信息
418I’m a teapot状态码 418 是 IETF 在 1998 年愚人节发布的一个玩笑 RFC
421Misdirected Request当客户端的请求过多,超过了服务器能过处理的范围时,返回此状态码
422Unprocessable Entity请求格式正确,但是由于含有语义错误,所以服务器无法响应
423Locked当前资源被锁定
424Failed Dependency由于之前的某个请求发生的错误,导致当前请求失败
425Too Early该请求可能会被“重放”,从而造成潜在的重放攻击,服务器不愿冒险,所以拒绝处理该请求
426Upgrade Required客户端应当切换到 TLS/1.0 协议
449Retry With由微软扩展,代表请求应当在执行完某些操作后进行重试
451Unavailable For Legal Reasons该请求因法律原因不可用

5. 服务器错误:5xx

5xx 类型的状态码代表了服务器在处理请求的过程中出现错误或者发生异常(这些错误或异常是服务器本身造成的,与请求无关),也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理,此时服务器会在响应体中返回一个描述当前错误的解释信息,客户端会直接向用户展示这个响应体。5xx 类型的状态码适用于任何 HTTP 方法。

5xx 类型状态码的具体说明如下表所示:

状态码状态码英文名称中文描述
500Internal Server Error服务器内部错误,无法完成请求
501Not Implemented服务器不支持请求所需要的某个功能,无法完成请求
502Bad Gateway网关或者代理服务器在尝试执行请求时,从远程服务器接收到了一个无效的响应
503Service Unavailable由于服务器维护或者过载,导致当前请求无法处理
504Gateway Time-out充当网关或代理服务器时,未能及时收到远程服务器的响应
505HTTP Version not supported服务器不支持请求中 HTTP 协议的版本,无法完成处理
506Variant Also Negotiates服务器存在内部配置错误
507Insufficient Storage服务器无法存储完成请求所必须的内容
509Bandwidth Limit Exceeded服务器达到带宽限制
510Not Extended不能满足获取资源所需要的要求,还需要进一步扩展

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/67969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Database] 关系型数据库中的MVCC是什么?怎么理解?原理是什么?MySQL是如何实现的?

文章目录前言并发控制并发控制的实现与锁的本质MVCC是什么?MVCC的多版本(Multi-Version)指的是什么?MVCC的实现方式?MySQL的实现PostgreSQL的实现结语前言 在并发场景下,如果我们不对数据做保护&#xff0c…

分布式文件存储系统FastDFS[1]-介绍以及安装

一、分布式文件存储 1.分布式文件存储的由来 在我们的项目中有很多需要存储的内容出现,比如图片,视频,文件等等,在早期的时候用户量不大,产生的文件也不是很多,这时我们可以把文件和服务程序放在一个服务器…

STAAD.Pro CONNECT Edition

STAAD.Pro CONNECT Edition Bentley STAAD或STAAD Pro软件是分析和设计世界第三世界的第一款最佳工程软件,对于金属、混凝土、木材、铝和冷金属的专业选择,设计几乎所有类型的塑料、石化、隧道、桥梁、蜡烛等结构专业的功能和软件中任何数据大小的使用。…

Java课程案例学习(3)

2.1 学生管理系统实现步骤 案例需求 针对目前我们的所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下: 添加学生:通过键盘录入学生信息,添加到集合中 删除学生:通过键盘录入要删…

Jcmd 虚拟机诊断利器

Jcmd 虚拟机诊断利器 Java虚拟机(JVM)是运行Java程序的抽象化的计算器。今天,来学习下如何轻松诊断正在运行的JVM。 JDK本身中提供了许多可用的工具,可以用于各种开发、监视和故障排除活动。推荐使用jcmd,简单易懂&a…

[附源码]计算机毕业设计南通大学福利发放管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

ThinkPHP6综合业务管理系统

有需要请私信或看评论链接哦 可远程调试 ThinkPHP6综合业务管理系统一 介绍 综合业务管理系统基于ThinkPHP6开发,数据库mysql,前端Layui,后台模板ok-admin。管理员登录系统后可对场所,分类,用户,运营商&am…

图片扫描仪第一弹,我实现了一个办公位简笔画

来一波对比 其实我工位还有点手办,一个植物,实在不会画,于是画了个基础版的。 办公位简笔画 虽然,这个工位上没有一个动画,但是图形和实物神似,所以可以用另一个动总结这个简笔画,那就是生动…

量子计算(十一):常见逻辑门以及含义

文章目录 常见逻辑门以及含义 一、Hadamard(H)门 二、Pauli-X 门 三、Pauli-Y 门 四、Pauli-Z 门 五、旋转门(rotation operators) 1、RX(θ)门 2、RY(θ)门 3、RZ&#xf…

深入理解计算机系统

hi,大家好,我是大师兄,让我们一起复习了一遍计算机系统核心知识,希望大家早日掌握这些核心知识,打造自己坚实的基础,为自己目标慢慢积累,等到自己春天的到来。详细点击查看-> 极客星球。计算…

PDF解除密码怎么操作?教你一键解除密码

我们在处理工作文件时,经常会有一些文件是加密状态的,这种文件必须要输入密码才可以打开,这时候就造成了很多不便,如果文件需要打印,我们就必须先输入密码,而且在每次查看文件前,都必须输入密码…

记录一次 在linux 搭建的mysql迁移到docker容器中

上篇文章写道,我腾讯云被攻击了,然后我各种删除木马文件,但在这个过程中,有些系统文件没认到,以为是木马文件,就删除了,各种处理无果,打开腾讯云的救援模式,备份了些重要…

【数据库】mysql索引

DB索引: 如果表创建了索引,那么DB会维护一张关于索引和主键关系的表 好处:快速查找数据 缺点:要额外维护一张表,会额外占用空间,对于表数据的更新操作都涉及更新索引 索引的操作 创建索引:…

LeetCode 74. 搜索二维矩阵

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 74. 搜索二维矩阵,做好准备了么,那么开始吧。 🌲🌲🐴🐴 一、题目名称 LeetCode 74.…

[Android] [ROOT] Magisk(魔术师/面具) 设置以及必装模块的安装

🍁简介 当我们给手机刷入Magisk(面具)后,等于获得了安卓系统的最高管理员权限,也就是root权限。获取root权限后的设备相对于未root的设备,安全性会有一定的降低。也许是基于这个原因,现在大部分应用都会检测你的设备是…

xcode常用功能与操作

查看target是静态还是动态库 选中target,点击Build Settings tag,然后再右上角搜索框输入 mach,查看Mach-O type的值即可 mach-o文件类型分为: Executable:应用的主要二进制 Dylib Library:动态链接库&am…

栈与队列5:逆波兰表达式求值

主要是我自己刷题的一些记录过程。如果有错可以指出哦,大家一起进步。 转载代码随想录 原文链接: 代码随想录 leetcode链接:150. 逆波兰表达式求值 题目: 根据 逆波兰表示法,求表达式的值。 有效的算符包括 、-、*、…

安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】

💕💕💕💕💕💕💕💕💕💕💕提取手机分区方法列举💕💕💕💕💕💕💕&a…

mybatis-plus,sgg,杨bochao,p49完成

MyBatis-Plus (baomidou.com) 一 MyBatis-Plus简介 增强工具。只做增强不做改。 可以直接在mybatis的基础上整合mybatis-plus。此时并不会影响mybatis的功能,即mybatis原来的功能都在,该怎么用还怎么用。锦上添花的是还能使用mybatis-plus提供的&#…

修改node_modules中安装的依赖(如第三方ui组件样式)并在下次安装时保留

场景:需要修改安装的某个ui库的样式或者其他依赖,直接去node_modules中修改后,重新安装,或者其他小伙伴的电脑上并不能同时修改 方案:用patch-package 可以保留修改 步骤一 安装 patch-package —> npm i patch-…