工作学习笔记(二十)常见的http状态码
最近在调试页面的时候,经常会见到一些例如404,201,304等。虽然认识一部分,但真要研究是什么情况导致的,还真不好说清楚。所以查了一些,大致分为以下五种情况。
- 一、1xx 信息类状态码
这类状态码相对少见,它们表示服务器已经收到请求的初始部分,客户端需要继续操作。
100 Continue
当客户端向服务器发送一个较大的请求,比如包含大量数据的 POST 请求时,为了避免不必要的数据传输,如果客户端在请求头中设置了Expect: 100 - continue,服务器若认为可以继续接收请求,就会返回 100 Continue。
-
二、2xx 成功类状态码
这是我最希望看到的一类状态码,意味着请求已成功被服务器接收、理解并处理。
200 OK
这是最常见的成功状态码,当我们请求一个网页、图片或者获取某个数据时,如果服务器正常返回我们所需的内容,就会带上 200 OK 状态码。比如,当你在浏览器中输入一个网址,页面正常加载显示,这背后大概率就是服务器返回了 200 了。
201 Created
这个状态码常用于创建资源的场景。当我们通过 POST 请求创建新用户、上传新文件等操作成功后,服务器会返回 201 Created。同时,响应头中通常会包含Location字段,它指向新创建资源的具体 URL,方便我们后续访问这个新资源。
204 No Content
它表示请求成功处理,但服务器没有新的内容返回给客户端。常见于只需要服务器执行某些操作,而不需要返回数据的情况。例如,我们向服务器发送 DELETE 请求删除某个资源,当删除操作成功后,服务器可能返回 204 No Content,告诉我们删除操作完成了,但不需要额外返回数据。
- 三、3xx 重定向类状态码
这类状态码告诉客户端,需要采取进一步的操作来完成请求,通常是重定向到其他 URL。
301 Moved Permanently
它代表请求的资源已经被永久移动到了新的 URL。这对于搜索引擎优化(SEO)非常重要,因为搜索引擎会根据这个状态码更新索引,将对旧 URL 的访问自动转到新 URL。
302 Found(临时重定向)
与 301 不同,302 表示请求的资源只是临时位于不同的 URL。客户端在后续请求中仍应使用原 URL。例如,网站进行临时维护时,可能会将所有请求重定向到一个维护页面,并返回 302 状态码。这样,当维护结束后,用户仍能通过原 URL 正常访问网站,而搜索引擎也不会因为临时的重定向而更新索引。
304 Not Modified
当客户端发送一个带条件的 GET 请求时,比如请求头中包含If - Modified - Since(指定一个时间,询问服务器资源在这个时间之后是否有修改)或If - None - Match(通过 ETag 值,询问服务器资源是否与客户端缓存的一致),如果服务器判断资源未修改,就会返回 304 Not Modified。客户端接收到 304 后,会使用本地缓存的资源,这样大大减少了数据传输,提高了访问速度。
- 四、4xx 客户端错误类状态码
这类状态码提示我们,客户端发送的请求存在问题。
400 Bad Request
这表明客户端发送的请求存在语法错误,服务器无法理解。比如,URL 格式错误,少了某个关键参数,或者参数格式不正确。
401 Unauthorized
这个状态码意味着客户端需要进行身份验证,但没有提供有效的认证信息,或者认证失败。常见于需要登录才能访问的页面,当用户未登录就尝试访问时,服务器会返回 401 Unauthorized,提示用户需要先登录。
403 Forbidden
即使客户端已经通过身份验证,但服务器拒绝执行请求,因为用户没有足够的权限访问资源。
404 Not Found
这是大家最熟悉的错误之一,它说明服务器无法找到请求的资源。可能是资源被删除了,或者被移动到了其他地方且没有设置正确的重定向,又或者是用户输入了错误的 URL。想象一下,你在浏览器中输入了一个不存在的网页地址,服务器就会返回 404 Not Found,告诉你这个页面找不到。
405 Method Not Allowed
当客户端使用的 HTTP 方法(如 GET、POST、PUT、DELETE 等)不被服务器允许用于请求的资源时,就会出现这个状态码。比如,服务器规定某个资源只允许使用 GET 方法获取数据,而客户端却发送了 POST 请求,那么服务器就会返回 405 Method Not Allowed。
-
五、5xx 服务器错误类状态码
这类状态码表示服务器在处理请求时遇到了错误。
500 Internal Server Error
这是一个通用的服务器端错误,无法完成请求。通常是由于服务器代码出现错误,比如程序逻辑错误、数据库连接问题等。
502 Bad Gateway
当服务器作为网关或代理,从上游服务器接收到无效的响应时,就会返回 502 Bad Gateway。
503 Service Unavailable
这个状态码表示服务器当前无法处理请求,可能是因为服务器超载,处理不过来大量的请求,或者正在进行维护,相关服务暂时不可用。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~