HTTP状态码的心理入围名单,每个开发者都保留着我的以前是200,404,500,很长一段时间足以伪造能力,然后我花了一个星期构建一个支付集成,API为一张拒绝卡返回402,重试已经经历的收费时返回409,测试太快时返回429,突然代码之间的区别是工作功能和支持票证之间的区别,我构建了很多网页工具 Toolz.dev并且可搜索的状态代码引用是我不断接触到的东西之一,因此我在站点中构建了一个并编写了本指南以配合它。
TL;博士: HTTP状态码是服务器发回的一个三位数数字来描述请求的结果,第一个数字设置类:1xx信息,2xx成功,3xx重定向,4xx客户端错误,5xx服务器错误,用它立即查找它们中的任何一个 HTTP 状态代码工具的,它可以让你按数字、名称或关键字搜索,并引用定义每个的 RFC。
本指南贯穿了什么状态码、每个类意味着什么、值得记住的具体代码以及人们最常出错的代码,针对的是前端开发人员调试API调用、后端开发人员决定返回什么以及任何需要重定向才能表现的技术SEO。
HTTP 状态代码是什么?
Web 上每次你的浏览器或应用程序请求某件事时,服务器都会用响应来回答。该响应的第一行包含一个状态代码:一个三位数的数字,搭配一个短的理由短语,如 "OK" 或 "未找到"。代码是机器可读的所发生事件的摘要,理由短语是人性化的标签。客户端对数字采取行动;该短语是给人们读日志的。
状态代码由互联网工程任务组定义,主要是在 RFC 9110 中,该任务组在 2022 年整合了旧的 HTTP 规范。IANA 维护的中央注册表列出了每个官方认可的代码。这种标准化使一家公司编写的浏览器与另一家公司编写的服务器对话并就 404 的含义达成一致 HTTP 状态代码工具 镜像该注册表,列出每个标准代码及其含义以及定义它的 RFC。
关键的心理模型是,第一位数字告诉你类别,类别告诉你谁负责。4xx 代码意味着客户端发送了错误。5xx 代码意味着服务器在请求失败时失败,该请求很好。单一区别解决了大多数关于是谁的错误的调试争论。
5个状态码类是什么意思?
5个类,按前导数字分组,理解类比记忆个别代码更有价值,因为它告诉你去哪里看。
1xx类是信息性的,这些代码信号显示服务器接收到请求,处理继续进行,在日常工作中很少见,最著名的是100继续,最有用的现代是103早期提示,它让服务器告诉浏览器在完全响应准备就绪之前开始预加载资源。
2xx类意味着成功,请求被接收、理解、接受,200 OK是日常的成功代码,201 Created确认一个新资源被制作,204 No Content说"完成,没有什么可以发回"的,这对于删除操作来说是很常见的。
3xx类是重定向,资源住在别的地方,或者自从客户端上次看到之后就没有变过,这个类是SEO居住的地方,因为301和302告诉搜索引擎一个动作是否是永久性的,304 Not Modified是节省巨大带宽的缓存主力。
4xx类是客户端错误,请求格式错误,未经授权,或者指向不存在的东西,400,401,403,404,429都住在这里,看到4xx的时候,先检查你的代码发了什么,再怪服务器。
5xx类是服务器错误,请求有效但服务器无法满足,500、502、503、504是你在生产事件中会遇到的,通常指向崩溃、服务超载或上游依赖断裂。
HTTP状态码应该每个开发者都知道哪些?
你不需要脑海中所有的六十多个代码,你可能需要十五个,剩下的你抬头看看,这是我认为在内存中赢得永久地位的工作集,其中有触发它们的情况。
| 代码 | 意义 | 当你看到它时 |
|---|---|---|
| 200 | 行 | 正常的成功请求 |
| 201 | 创建 | POST 或 PUT 创建了新资源 |
| 204绔 涔诲芥澶澧 | 没有内容 | 空体成功,删除后常见 |
| 301 | 永久移动 | 一个永久移动的 URL; SEO排名转移 |
| 302 | 发现 | 临时重定向;继续使用旧 URL |
| 304 | 未修改 | 缓存副本仍然有效;没有发送任何尸体 |
| 400 | 错误请求 | 格式错误的语法或无效的请求框架 |
| 401 | 未经授权 | 身份验证丢失或失败 |
| 403 | 禁止 | 已验证但不允许 |
| 404 | 未找到 | 该资源不存在 |
| 409 | 冲突 | 该请求与当前状态发生冲突 |
| 第422章 | 不可处理的内容 | 有效的语法,失败的验证规则 |
| 第429章 | 请求太多 | 费率有限;退后重试 |
| 500 | 内部服务器错误 | 服务器意外故障 |
| 第503章 | 服务不可用 | 服务器超载或正在维护 |
注册表的其余部分,从 226 IM 使用到 451 由于法律原因不可用,值得认可但不值得记住。这正是查找工具的目的。
401和403有什么区别?
这对几乎会绊倒所有人,因此它值得拥有自己的部分。两者均表示访问被拒绝,但原因不同,而且差异改变了您的应用程序应如何响应。
A 401 未经授权意味着请求缺乏有效的身份验证,服务器不知道你是谁,要么你没有发送凭据,要么你发送的错误或过期,你这边的正确响应是登录或刷新令牌,按规格,401 响应应该包括一个 WWW-Authenticate 标头,告诉客户端如何进行身份验证。
403 Forbidden 意味着服务器确切地知道你是谁,反正拒绝了,你已经被认证,但未授权使用此特定资源,再次登录无济于事,因为问题是权限,而不是身份,普通用户打到仅限管理员的端点应该得到 403。
我使用的快速规则:401 是 "你是谁?",403 是 "我知道你是谁,而不是 "如果你正在构建 API 并想要生成授权标头来测试这些流程 基本的 Auth 生成器 生成您需要的编码凭据。
为什么 301 与 302 重定向对于 SEO 很重要?
Redirects是状态码不再是内部实现细节,开始影响你的搜索排名的地方,当你移动一个页面时,你返回的状态码告诉搜索引擎如何处理旧的URL's累积的权限。
A 301 Moved Permanently 信号表明该移动是最终的 搜索引擎随着时间的推移从索引中删除旧 URL,将排名信号传递到新 URL,并更新其链接 这是您重命名页面、迁移到 HTTPS 或合并重复 URL 时想要的代码,正确使用它是技术 SEO 审核中最常见的修复方法之一。
302 Found 信号是临时移动,搜索引擎会将原始 URL 保持索引,因为您已经告诉他们更改不是永久性的,如果您使用 302 进行永久性的移动,则可以将排名搁浅在不再使用的 URL 上。我已经看到网站几个月失去可见性,因为在 HTTPS 迁移过程中默认为 302 重定向的框架。
307 临时重定向和 308 永久重定向,其行为类似于 302 和 301,但保证 HTTP 方法和主体得以保留,使用 307 和 308 处理非 GET 请求,其中更改方法会破坏内容,如果您正在审核爬虫如何看到您的网站,请将此知识与 robots.txt 生成器 和 元标记生成器 确保整个抓取和重定向图片一致。 web开发人员工具包 导将这些部件绑在一起。
最常见的服务器错误代码是什么?如何调试它们?
5xx 类是生产事件所在的地方,每个代码都将您指向堆栈的不同层,知道哪一个在中断期间可以实时节省。
500内部服务器错误是通用的包罗万象,它意味着你的应用程序代码抛出了一个未处理的异常或命中了一个它无法处理的条件,修复几乎总是在你自己的日志中,500是服务器说"有东西坏了,我没有更好的词来形容它",所以代码告诉你在哪里看,但没有什么问题。
502 Bad Gateway 和 504 Gateway Timeout 都来自充当网关或代理的服务器,例如您的应用程序前面的负载均衡器或反向代理。A 502 表示上游发回无效的东西,通常是因为您的应用程序崩溃或未运行。A 504 表示上游响应时间太长,网关放弃等待。如果您在 Nginx、CDN 或云负载均衡器后面运行,这些是代理后面的东西不健康时您将看到的代码。
503 服务不可用意味着服务器暂时无法处理请求,通常是因为它超载或处于维护中。行为良好的 503 响应包括 Retry-After 标头告诉客户端何时回来。在计划维护期间发送 503 是简单地关闭站点的正确、SEO 安全的方法,因为它告诉搜索引擎稍后回来,而不是假设页面消失。为了更广泛地了解诊断 Web 问题, 开发人员生产力工具 指南涵盖了更广泛的工具包。
不太常见的状态代码怎么样?
除了工作集之外,注册表还包含一长尾代码,您偶尔会遇到这些代码,识别它们可以节省混乱的半小时。其中一些值得快速游览。
2xx家族中,206部分内容为恢复下载和视频流提供支持,当客户端发送一个Range头,要求提供文件的字节500到999时,服务器仅用该切片回答206。这就是暂停下载恢复而不是重新开始的方式,以及浏览器如何寻求视频的中间而不首先获取整个内容。
4xx家族中,410 Gone是404更强大,更刻意的版本,404说"我找不到它",410说"它在这里,它永久消失了,停止询问"使用410来表示你故意删除的内容有助于搜索引擎比404更快地丢弃它。另一个有用的451因法律原因不可用,其编号是对小说华氏451的致敬,当内容被删除或法院禁令等法律命令阻止时返回。
还有 418 I'm a Teapot,这是 1998 年 April Fools 规范中的一款真正的注册代码,当被要求冲泡咖啡时,茶壶会返回。它不用于正常流量,但在某些 API 中显示为彩蛋,它是一个小提醒,写这些标准的人有幽默感。该工具列出了所有这些,这样您就可以查找任何偶然发现的东西,而无需猜测。
HTTP 状态代码工具有何帮助?
该工具故意简单,因为工作很简单:您有一个代码或一个症状,并且您想要快速的含义。您可以按数字、按原因短语 " 未找到 " 或按描述中的关键字 " redirect" 或 " 速率限制" 进行搜索。您可以过滤到单个类,仅浏览重定向或仅浏览服务器错误。每个条目都显示原因短语、代码应用时间的简单解释以及定义它的 RFC,以便您可以确认针对主要来源的行为。
因为整个注册表加载到您的浏览器中,所以搜索是即时进行的,一旦页面打开就离线工作。您搜索的任何内容都不会发送到任何地方。这是我在构建 API 时一直固定在选项卡中的参考,就在 API 旁边 用户代理解析器 用于检查请求标头。
常见问题
HTTP状态码的五类是什么?
HTTP状态码按第一位数字分组:1xx信息,2xx成功,3xx重定向,4xx客户端错误,5xx服务器错误,类一眼就告诉你一个请求在客户端或服务器端是否成功,是否被重定向,或者失败,这通常足以知道从哪里开始调试。
404状态码是什么意思?
404 Not Found,就是服务器找不到请求的资源,URL可能拼错,页面可能被删除,链接可能被破坏,是客户端错误代码,所以请求到达服务器,却指向那里不存在的东西。
301和302重定向有什么区别?
A 301 Moved Permanently告诉客户端和搜索引擎资源已经永久移动,因此他们更新了链接并将排名信号传输到新的URL。A 302 Found是一个临时重定向,因此原始URL应该继续用于未来的请求,搜索引擎保持其索引。
500内部服务器错误是什么意思?
500内部服务器错误是一个通用消息,意味着服务器遇到了它无法处理的意外情况,它向服务器发出问题信号,而不是请求,因此修复通常在应用程序代码或配置中,并且您自己的服务器日志是查看的地方。
API 何时应该返回 400 与 422?
Return 400 Bad Request 当请求本身格式错误时,例如无效的 JSON 或缺少所需的标头 当语法有效但数据失败的业务或验证规则时,返回 422 不可处理的内容,例如已经被取的电子邮件或超出范围的值。
什么是 429 Too Many Requests 代码?
429 Too Many Requests 意味着客户端在短时间内发送了太多请求,并且速率受到限制。响应通常包括 Retry-After 标头告诉客户端等待多长时间才能再次尝试,以及表现良好的客户端以指数级表示尊重退避。
HTTP状态码引用免费使用吗?
Yes。tool完全免费,没有注册,没有限制,一旦页面加载了,它就会离线工作,因为整个列表都在你的浏览器中运行。你搜索的任何东西都不会发送到服务器,所以在调试时使用安全快速。



