HTTP/HTTPS ③-HTTP状态码

这里是Themberfue

❤️在上一节中,我们讲了HTTP报头的一些键值对的含义:Host、Content-Length、Content-Type、Referer、User-Agent、Cookie、Session;不知道你是否还记得呢?

✨这节我们了解到HTTP响应状态码的具体含义~~~


HTTP状态码

  • ✨相信大家在这么些年的上网经验以来,肯定见过404这个数字吗,什么?你没见过,得,那我没辙了。
  • 404便是HTTP状态码的一种,其通常还跟着Not Found,表示该页面未找到,可能你输入的 URL 所指向的资源路径根本不存在服务器里。
  • HTTP状态码 是服务器用来表示响应客户端请求的状态的标准编码。通过不同的状态码来表示不同的含义,可以便于用户和开发人员快速找到出现问题的原因。
  • HTTP状态码有非常多,但并不需要我们每一个都知道其含义,知道一些常见的就行。

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提示信息太丑了,大多数网站都会重写它的样式,使其更好看点~~

这是默认的样式:

这是其他网站的样式:

❤️一个好的提示样式,可以给予用户更多的反馈哦~~~

  • 403 Forbidden 通常表示服务器拒绝你访问,可能你访问的这个资源它是私人的,只能某个或某些用户特定浏览的。好比你访问了 Github 或 Gitee 上的私人仓库,这些仓库不是公开的,那么你和别人就不能查看,只有特定的用户才能查看。
  • 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

  • 网站域名从 http://example.com 更换到 https://example.com

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 Unauthorized403 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加密的那些事儿~~

毕竟不知后事如何,且听下回分解

❤️❤️❤️❤️❤️❤️❤️

相关推荐
路星辞*1 小时前
基于访问表的安全防范策略
运维·网络·安全·智能路由器·acl
kaixin_啊啊1 小时前
静态路由配置与调试——计算机网络实训day1
网络·计算机网络
玖石书2 小时前
[IoT]物联网(IoT)网络的安全性
网络·物联网·智能路由器
DataDynamos数动实验室2 小时前
【计算机网络】IPSec的安全协议和封装模式
网络·计算机网络·网络安全
feiyangqingyun3 小时前
Qt监控系统远程网络登录/请求设备列表/服务器查看实时流/回放视频/验证码请求
服务器·网络·qt
JermeryBesian3 小时前
Flink系列知识讲解之:网络监控、指标与反压
大数据·网络·flink
xianwu5433 小时前
反向代理模块开发,
linux·开发语言·网络·c++·git
ybq195133454314 小时前
javaEE-网络原理-5.进阶 传输层UDP.TCP
网络·tcp/ip·udp
探索未来 航行现在4 小时前
网络基础知识--11
网络·tcp/ip·智能路由器
噠噠噠@4 小时前
HCIE-day10-ISIS
网络·网络协议·计算机网络