https://i-blog.csdnimg.cn/direct/963c174afa6f497e8739cd905bf0ceab.png" width="1200" />
这里是Themberfue
❤️在上一节中,我们讲了HTTP报头的一些键值对的含义:Host、Content-Length、Content-Type、Referer、User-Agent、Cookie、Session;不知道你是否还记得呢?
✨这节我们了解到HTTP响应状态码的具体含义~~~
HTTP状态码
- ✨相信大家在这么些年的上网经验以来,肯定见过404这个数字吗,什么?你没见过,得,那我没辙了。
- 404便是HTTP状态码的一种,其通常还跟着Not Found,表示该页面未找到,可能你输入的 URL 所指向的资源路径根本不存在服务器里。
- HTTP状态码 是服务器用来表示响应客户端请求的状态的标准编码。通过不同的状态码来表示不同的含义,可以便于用户和开发人员快速找到出现问题的原因。
- HTTP状态码有非常多,但并不需要我们每一个都知道其含义,知道一些常见的就行。
https://i-blog.csdnimg.cn/direct/8bc88514bb1848f1b27d42a17a2dce63.png" width="954" />
2XX:成功
- ✨表示客户端的请求已被成功处理
- 没什么好说的了,最喜欢的一集,但也不一定,有时候代码跑起来了,但是逻辑错了也是很难受的😭
- 200 OK:请求成功,常用于 GET 和 POST。
- 201 Created:资源已成功创建,常用于 POST 或 PUT。
- 204 No Content:请求成功,但没有返回任何内容,常用于删除操作。
4xx:客户端错误
- ✨表示客户端可能存在问题,导致服务器无法处理请求
- 相信这里最经典的就是 404 Not Found 了,表示请求的资源不存在;在第一节我们知道,我们都是 URL 来定位到访问的内容的,触发 404 说明你输入的 Host 没错,通常是 Path 错了,Path表示资源在服务器的具体位置,触发 404 大概率是你输入的 Path的在这个服务器上不存在或者输错了。
- 有时候HTTP默认给的404提示信息太丑了,大多数网站都会重写它的样式,使其更好看点~~
这是默认的样式:https://i-blog.csdnimg.cn/direct/b54fd18d80034617970b469c1154f24c.png" width="1200" />
这是其他网站的样式:https://i-blog.csdnimg.cn/direct/4d237010c65c461bb0b2e18da2644413.png" width="1200" />https://i-blog.csdnimg.cn/direct/89f2858bbc4d44ceb6d92cd951b4cc15.png" width="1200" />https://i-blog.csdnimg.cn/direct/ca0312e94cf2400d9296c90831bf94ed.png" width="1200" />
❤️一个好的提示样式,可以给予用户更多的反馈哦~~~
- ✨403 Forbidden 通常表示服务器拒绝你访问,可能你访问的这个资源它是私人的,只能某个或某些用户特定浏览的。好比你访问了 Github 或 Gitee 上的私人仓库,这些仓库不是公开的,那么你和别人就不能查看,只有特定的用户才能查看。
https://i-blog.csdnimg.cn/direct/f5c43f1c11ff4668b7a6e1f728b29fec.png" width="1126" />
- 400 Bad Request:请求语法错误或参数不正确。
- 401 Unauthorized:需要身份验证(如登录),未通过时返回。
- 403 Forbidden:服务器拒绝访问,通常与权限有关。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:HTTP 方法不被允许(如用 GET 操作需要 POST 的接口)。
- 408 Request Timeout:请求超时,客户端没有及时发送请求。
- 429 Too Many Requests:客户端发送的请求过多,被限制。
5xx:服务器错误
- ✨表示服务器遇到了问题,无法完成请求。
- 出现这个错误,就是服务器那边出问题了,和你没啥关系,可能是服务器宕机了,服务器炸了,这个网站跑路了........
- 504 Gateway Timeout 通常在服务器资源紧张时容易出现,比如学校的抢课网站;尽管每年春运的人数这么多,12306也依然坚挺,这得益于其服务器在这种高压环境下依然能够应对,这里面所涉及的学问就多了。
- 500 Internal Server Error:服务器内部错误,无法完成请求。
- 501 Not Implemented:服务器不支持请求的方法。
- 502 Bad Gateway:服务器作为网关或代理时,从上游服务器接收到无效响应。
- 503 Service Unavailable:服务器暂时不可用,可能是过载或维护中。
- 504 Gateway Timeout:服务器作为网关或代理时,上游服务器没有及时响应。
3xx:重定向
- ✨表示需要进一步操作才能完成请求。
- 某些网站的域名不可能是一成不变的,是会更改的,当更改域名,用户再通过旧域名访问就会访问失败了,这时候重定向就非常重要了,将通过旧域名访问的用户重定向到新域名,这样,用户就不会出现访问失败了,从而减少了用户的流失。
- 301 Moved Permanently:资源已永久移动到新位置,URL 更新。
- 302 Found:资源临时移动到新位置。
- 304 Not Modified:资源未修改,客户端可以使用缓存版本。
- 307 Temporary Redirect:临时重定向,但必须使用原有的 HTTP 方法。
1xx:信息响应
✨表示请求已被接收,需要继续处理。
- 100 Continue:客户端可以继续请求,表示服务器已收到请求头,等待正文。
- 101 Switching Protocols:服务器同意切换协议,比如切换到 WebSocket。
常见的状态码
1. 200 OK
- 客户端发送一个 GET 请求,服务器返回资源。
- 提交表单后返回操作成功信息。
2. 301 Moved Permanently
3. 404 Not Found
- 用户请求了一个不存在的页面或资源。
4. 500 Internal Server Error
- 服务器代码出现问题,未能正确处理请求。
非标准状态码
- 418 I'm a teapot:一个愚人节彩蛋,用于表明服务器拒绝冲泡咖啡,因为它是一个茶壶(RFC 2324)。
- 451 Unavailable For Legal Reasons:因法律原因不可用。
作用
1. 快速反馈请求状态
- 状态码直接告诉客户端当前请求的结果。
- 2xx 表示成功,客户端可以放心处理响应的数据。
- 3xx 提示资源已被重定向,客户端需要发起新的请求。
- 4xx 指出客户端的请求存在问题,需要修正后重试。
- 5xx 说明服务器出现问题,可能需要稍后再试或联系运维人员。
2. 提高用户体验
- 通过适当的状态码,可以快速调整用户的操作或显示友好的提示信息。
- 403 Forbidden:告知用户没有权限访问某些内容,可能需要登录或获取权限。
- 503 Service Unavailable:提示用户服务暂不可用,可以稍后再试,而不是直接无响应。
3. 辅助调试与开发
- 状态码为开发者和运维提供了重要信息,可以快速定位问题来源。
- 是请求本身的格式有问题(4xx),还是服务器资源或程序出错(5xx)。
- 常见的 500 Internal Server Error 提醒开发者检查代码或服务逻辑。
4. 控制客户端行为
- 某些状态码引导客户端执行特定操作。
- 301 Moved Permanently:强制客户端更新资源 URL,避免请求旧地址。
- 304 Not Modified:告诉客户端资源未修改,可以使用缓存,从而减少带宽消耗。
5. 促进分布式系统通信
- 在微服务和分布式系统中,状态码用于不同服务之间的沟通,确保系统运行稳定
- 502 Bad Gateway 提醒网关服务器无法获取上游服务的正确响应。
- 504 Gateway Timeout 提示上游服务响应超时,可能需要重新配置或优化。
6. 安全性增强
- 状态码也能间接提升系统的安全性
- 返回 401 Unauthorized 或 403 Forbidden,避免对非授权用户泄露过多信息。
- 遇到错误时返回通用的 500 Internal Server Error,隐藏具体的服务器实现细节,防止攻击者获取敏感信息。
✨有个速记这些状态码大概含义的小技巧(站在开发人员的角度)
- 1xx:Hold on
- 2xx:Here you go
- 3xx:Go away
- 4xx:You fucked up
- 5xx:I fucked up
HTTP状态码是互联网通信中的“信号灯”,它快速传递信息、优化交互体验、辅助开发调试,还能提高资源利用效率。在前后端开发、运维排错中都发挥着至关重要的作用。
今天的内容到这就结束了,下节我们将讲解HTTPS加密的那些事儿~~
毕竟不知后事如何,且听下回分解
❤️❤️❤️❤️❤️❤️❤️
https://i-blog.csdnimg.cn/direct/554ab77953364388bcae7ae29009cbab.png" width="932" />