Python第九天
有哪些常用的网页状态码
网页状态码(或称 HTTP 状态码)是 Web 服务器在响应浏览器或其他客户端请求时返回的三位数字代码。这些代码提供了关于请求结果的信息,告诉客户端请求是否成功、是否需要额外操作,或者是否存在错误。
它们分为五大类,每一类都有特定的含义:
1xx 信息响应 (Informational Responses)
这类状态码表示服务器已接收到请求,正在继续处理。客户端应继续其请求或忽略此响应。
100 Continue (继续): 客户端应继续发送请求的其余部分,或者如果请求已完成,则忽略此响应。
101 Switching Protocols (切换协议): 服务器已理解并同意客户端的请求,将协议切换到不同的协议。
2xx 成功响应 (Successful Responses)
这类状态码表示请求已成功被服务器接收、理解、并接受。
200 OK (成功): 最常见的成功状态码。表示请求成功,服务器已返回客户端所请求的数据。
201 Created (已创建): 请求已成功,并在服务器上创建了新的资源。通常用于 POST 请求后。
202 Accepted (已接受): 请求已被服务器接受,但尚未处理完成。这通常用于异步操作。
204 No Content (无内容): 服务器成功处理了请求,但没有返回任何内容。通常用于 PUT、DELETE 等操作,表示操作成功但无需更新页面。
3xx 重定向 (Redirection)
这类状态码表示客户端需要采取进一步的操作才能完成请求,通常是重定向到另一个 URL。
301 Moved Permanently (永久移动): 请求的资源已被永久移动到新的 URL。客户端应该使用新的 URL 进行未来的请求。这对 SEO(搜索引擎优化)非常重要。
302 Found (临时移动): 请求的资源暂时位于不同的 URL。客户端应该继续使用原始的 URL 进行未来的请求。
303 See Other (查看其他): 服务器告知客户端应该使用 GET 方法请求另一个 URL 以查看响应。通常在 POST 请求后用于防止表单重复提交。
304 Not Modified (未修改): 客户端发送了条件请求(例如,使用 If-Modified-Since 头),而资源自上次请求以来未被修改。服务器不返回内容,客户端可以使用缓存的副本。
307 Temporary Redirect (临时重定向): 与 302 类似,表示资源暂时移动,但要求客户端使用原始请求方法(GET/POST 等)进行重定向。
308 Permanent Redirect (永久重定向): 与 301 类似,表示资源永久移动,并要求客户端使用原始请求方法进行重定向。
4xx 客户端错误 (Client Errors)
这类状态码表示客户端似乎发出了一个错误请求。
400 Bad Request (错误请求): 服务器无法理解客户端发送的请求,通常是因为请求语法错误、参数无效等。
401 Unauthorized (未授权): 客户端请求需要进行身份验证。这通常意味着客户端尚未提供有效的认证凭据。
403 Forbidden (禁止): 服务器理解了请求,但拒绝执行。这通常是因为客户端没有访问该资源的权限,即使提供了认证凭据。
404 Not Found (未找到): 最常见的错误状态码。服务器无法找到请求的资源。这意味着请求的 URL 是错误的或者资源已不存在。
405 Method Not Allowed (方法不允许): 请求中指定的方法(例如 GET、POST)不允许用于请求的资源。
408 Request Timeout (请求超时): 服务器等待客户端发送请求的时间过长。
409 Conflict (冲突): 请求与服务器上的当前资源状态冲突。例如,尝试修改一个已过时的资源。
410 Gone (已失效): 请求的资源已被永久删除,并且没有可用的转发地址。比 404 更强烈,表明资源曾经存在但现在明确没了。
429 Too Many Requests (请求过多): 客户端在给定时间内发送了过多的请求(即“限流”)。
5xx 服务器错误 (Server Errors)
这类状态码表示服务器在尝试处理请求时遇到了错误。
500 Internal Server Error (内部服务器错误): 最常见的服务器错误。服务器遇到了一个意外情况,阻止了其完成请求。这是一个通用的错误消息,表明服务器端出现了问题,但没有更具体的错误代码可用。
501 Not Implemented (未实现): 服务器不支持完成请求所需的请求方法或功能。
502 Bad Gateway (错误的网关): 作为网关或代理的服务器从上游服务器接收到无效响应。这通常意味着后端服务器有问题。
503 Service Unavailable (服务不可用): 服务器目前无法处理请求,通常是因为服务器过载或正在进行维护。这通常是临时性的。
504 Gateway Timeout (网关超时): 作为网关或代理的服务器没有及时从上游服务器接收到响应。这通常发生在代理链中,一个服务器没有及时收到另一个服务器的响应。
了解这些常用的 HTTP 状态码对于网站开发、故障排查和 SEO 优化都非常重要。它们是客户端和服务器之间沟通的重要语言。