什么是 HTTP 状态代码?
HTTP 状态代码是服务器响应客户端(例如浏览器)请求时生成的三位数字。它们指示请求是否已成功完成。
例如,404 错误是您可能见过的常见 HTTP 状态代码。
如果您是网站所有者,HTTP 状态代码可以为您提供重要信息,帮助您改善网站功能和用户体验。它们还会影响您的 SEO。
HTTP 状态代码的类别
HTTP 状态代码分为五类:
- 1XX(信息代码):服务器已收到请求并正在处理
- 2XX(成功代码):服务器成功接收并处理请求
- 3XX(重定向代码):服务器已收到请求,但重定向到另一个目的地(常见为 301 或 302)
- 4XX(客户端错误代码):由于客户端错误,无法找到或访问请求的资源
- 5XX(服务器错误代码):服务器在处理请求时遇到错误
HTTP 状态代码完整列表
代码 | 意义 |
1XX:信息响应 | |
100:继续 | 服务器已收到初始请求,并准备好让客户端发送其余请求(如果尚未发送) |
101:切换协议 | 服务器同意接受客户端更改为不同协议的请求 |
102:处理 | 服务器已收到请求,但尚未完成。此代码已被弃用。 |
103:早期提示 | 当响应仍在处理时,服务器发送有关预期最终响应的提示 |
2XX:成功代码 | |
200:好的 | 请求成功。具体响应取决于请求方法(GET、PUT 等)。 |
201:已创建 | 请求成功,因此创建了新资源 |
202:已接受 | 请求已被接受但尚未处理 |
203:非权威信息 | 返回的数据来自第三方,而不是原始服务器 |
204:无内容 | 请求成功,但没有内容 |
205:重置内容 | 请求成功,用户代理(例如浏览器)应该重置文档 |
206:部分内容 | 服务器仅发送部分请求的资源 |
207:多状态 | 在单个响应中提供多个操作的状态 |
208:已报告 | 告诉客户端资源的信息已经包含在响应中,不会重复 |
226:使用 IM(HTTP 增量编码) | 服务器成功处理了请求,并返回了仅包含更改的资源版本,而不是完整的资源 |
3XX:重定向代码 | |
300:多项选择 | 表示有多个可能的响应,用户或客户端需要选择其中一个 |
301:永久移动 | 资源已永久移至新的网址。服务器将提供新的 URL。 |
302:找到 | 该资源已暂时移至其他网址。但它可能会再次移动。 |
303:查看其他 | 服务器告诉客户端使用标准 GET 请求从另一个位置获取资源 |
304:未修改 | 响应没有改变,因此客户端可以继续使用缓存的版本 |
305:使用代理 | 指示客户端应使用代理访问资源。此代码已被弃用。 |
307:临时重定向 | 资源已临时移动,客户端应使用与上一次请求相同的 HTTP 方法(例如 POST) |
308:永久重定向 | 资源已永久移动,客户端必须使用与上一次请求相同的 HTTP 方法 |
4XX:客户端错误代码 | |
400:错误请求 | 由于客户端错误,服务器无法处理请求 |
401:未经授权 | 客户端没有访问资源的正确凭据 |
402:需要付款 | 原本是想表明所请求的资源需要付费,但很少使用,也没有标准用途 |
403:禁止访问 | 即使服务器知道客户端的身份,客户端也无权访问该资源 |
404:未找到 | 服务器找不到资源。通常是因为浏览器请求的 URL 不正确,或者内容不再存在。 |
405:方法不允许 | 请求方法(例如 GET)不适用于指定的资源 |
406:不可接受 | 服务器无法以客户端指定的任何格式提供响应 |
407:需要代理身份验证 | 代理服务器需要先对客户端进行身份验证,然后才能处理请求 |
408:请求超时 | 由于客户端没有足够快地完成请求,服务器放弃等待 |
409:冲突 | 该请求与服务器上已有的内容冲突(例如,两个人同时编辑相同的内容) |
410:消失了 | 请求的资源已被永久删除。并且没有转发地址。 |
411:所需长度 | 服务器未接受请求,因为它未指定要发送的数据量 |
412:先决条件失败 | 请求中设置的条件未得到满足,因此服务器未处理该请求 |
413:内容太大 | 客户端发送的数据量太大,服务器无法处理 |
414:URI 太长 | 请求的网址太长,服务器无法管理 |
415:不支持的媒体类型 | 服务器不支持请求使用的格式 |
416:范围不满足 | 所请求的资源部分不在服务器的可用范围内 |
417:期望失败 | 服务器无法满足请求中指定的要求 |
421:错误请求 | 请求发到了错误的服务器——该服务器没有设置处理该请求 |
422:无法处理的内容 | 服务器理解请求格式,但由于实际数据存在问题(例如,错误的值)而无法处理它 |
423:已锁定 | 请求的资源已被锁定,无法访问 |
424:依赖失败 | 由于相关请求也失败,因此请求失败 |
425:太早了 | 服务器未处理该请求,因为时间太早,可能会被重放 |
426:需要升级 | 除非客户端切换到更新或不同的协议(如 HTTPS),否则服务器不会处理该请求 |
428:需要先决条件 | 服务器要求请求包含某些条件以确保安全更新 |
429:请求过多 | 用户发送了太多请求,速度太快 |
431:请求标头字段太大 | 请求标头包含的信息太多,服务器无法处理 |
451:由于法律原因不可用 | 由于法律原因,请求的资源被阻止 |
5XX:服务器错误代码 | |
500:内部服务器错误 | 服务器遇到错误,无法完成请求 |
501:未实现 | 服务器不支持该请求方法 |
502错误的网关 | 网关服务器从另一台服务器收到无效响应或未收到响应 |
503:服务不可用 | 服务器暂时不可用——通常是因为服务器维护或超载 |
504:网关超时 | 网关服务器未及时收到其他服务器的响应 |
505:不支持 HTTP 版本 | 服务器不支持请求中使用的 HTTP 版本 |
506:变体也进行谈判 | 配置错误导致服务器在尝试选择不同版本的资源时陷入循环 |
507:存储空间不足 | 服务器没有足够的空间来保存或处理请求 |
508:检测到循环 | 服务器在尝试处理请求时检测到无限循环 |
510:未扩展 | 该请求缺少服务器处理所需的扩展 |
511:需要网络身份验证 | 客户端需要进行身份验证才能获得网络访问权限 |
如何检查网页的 HTTP 状态代码
您可以使用 Google Chrome 轻松检查页面的 HTTP 状态代码。
前往您想要检查的网页。
右键单击页面上的任意位置,然后选择“检查”以打开开发人员工具。或者按“Ctrl + Shift + I”(Windows / Linux)或“Cmd + Option + I”(Mac)。
单击开发人员工具面板中的“网络”选项卡。
刷新页面(选择“F5”或“Ctrl + R”)。
查看网络请求列表。
“状态”列显示该页面的 HTTP 状态代码列表。列表中的第一个代码是该页面的 HTML 文档。
审核你的网站是否存在 HTTP 状态代码错误也是一个好主意。你可以使用 Semrush 的网站审核工具轻松完成此操作。
只需运行爬网并单击“爬网页面”即可。
“状态”列将显示每个页面的状态代码,以便您查看是否有任何需要修复的错误。
常见 HTTP 状态代码对 SEO 的影响
以下是一些最常见的状态代码对您的 SEO 的意义:
200(正常)
您希望大多数网页返回 200 响应代码。
它表明网页可以正常运行,并且可供人们和搜索引擎访问。
301(永久移动)
301 代码表示您已将页面永久移动到新网址。同时,它还会向 Google 发出信号,要求其索引中的旧网址应替换为新网址。
重要的是,301 重定向还会将旧页面的链接权益转移到新页面,从而保持您的可见性。
302(找到/临时重定向)
302 重定向是一种临时重定向。它可以在网页暂时不可用时保留链接和排名。
例如,如果您正在进行网站维护,并希望将用户引导至临时页面。或者您正在进行 A/B 测试。
如果 302 重定向已存在很长时间,Google 可能会将其视为 301 重定向。这意味着 Google 索引中的旧 URL 将被新 URL 取代。
404(未找到)和 410(消失)
404 和 410 状态代码都告诉搜索引擎某个页面不再存在,这通常会导致该页面从索引中删除。
虽然这两种错误最终都会导致页面被取消索引,但 410 错误更清楚地表明该页面已永久消失。这可以加快页面从搜索引擎索引中删除的速度。
5XX(服务器错误)
搜索引擎难以访问存在 5XX 错误的页面,这会导致抓取、索引和用户体验出现问题。
随着时间的推移,这可能会对搜索结果的可见性产生负面影响。因此,及时监控和解决 5XX 错误至关重要。
HTTP 状态代码对 LLM 的影响
务必确保您的内容能够被基于大型语言模型 (LLM) 构建的工具访问,例如 Google 的 AI Overviews、ChatGPT、Perplexity 和 Claude。因为这将有助于您在这些 AI 响应中获得更高的可见性。
表示错误的状态代码(例如 404 和 500)可能会阻止 LLM 查看您的内容。因为 LLM 查找和理解网站内容的方式与传统搜索引擎类似。
Web 开发人员和 AI 工程师 Vincent Schmalbach 指出:
“频繁出现 HTTP 状态代码错误的网站可能会发现其内容在搜索结果和 AI 生成的响应中都没有得到充分体现,因为这两个系统都需要可靠的访问才能索引并有效地利用内容。”
Vincent 在具体谈论 4XX 和 5XX 状态代码时补充了以下内容:
404 和 410 响应都意味着没有可用内容,因此这些页面不会对训练数据做出贡献。500 等服务器错误会导致爬虫程序稍后重试,但持续存在的错误会导致内容被完全跳过。
数据分析咨询公司 Synthelize 的创始人兼首席数据顾问 Toby Basalla 警告称,如果一次性抓取所有带有非故意重定向状态代码的网站数据,可能会影响用于训练实际模型的数据。因为在如此庞大的数据中,这些错误很难被发现。
他回顾了运行依赖于抓取数据集的定制训练法学硕士课程的一次值得注意的经历:
在一个案例中,一位客户有 180 个着陆页被错误标记为临时重定向,而这些页面都没有被录入我们的抓取数据集。这意味着,实际上,这些页面对于模型来说并不存在。
检查您的网站是否存在 HTTP 状态代码错误
您应该定期检查您网站的 HTTP 状态代码,以了解任何错误。
Semrush 的网站审核工具可以轻松识别这些问题。这样您就可以快速解决问题并提升 SEO 效果。