HTTP/HTTPS ③-HTTP状态码

news/2025/1/10 14:27:46 标签: http, 网络协议, 网络, 计算机网络

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

  • 网站域名从 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加密的那些事儿~~

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

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

https://i-blog.csdnimg.cn/direct/554ab77953364388bcae7ae29009cbab.png" width="932" />


http://www.niftyadmin.cn/n/5818804.html

相关文章

Mysql快速列出来所有列信息

文章目录 需求描述实现思路1、如何查表信息2、如何取字段描述信息3、如何将列信息一行展示4、拼接最终结果 需求描述 如何将MySQL数据库中指定表【tb_order】的所有字段都展示出来,以备注中的中文名为列名。 实现思路 最终展示效果,即拼接出可执行执行…

mysql的mvcc理解

人阅读 一、说到mvcc就少不了事务隔离级别(大白话解释) 序列化(SERIALIZABLE):事务之间完全隔离,当成一个序列,一个一个执行。 1 可重复读(REPEATABLE READ)&#xff…

Matlab APP Designer

我想给聚类的代码加一个图形化界面,需要输入一些数据和一些参数并输出聚类后的图像和一些评价指标的值。 gpt说 可以用 app designer 界面元素设计 在 设计视图 中直接拖动即可 如图1,我拖进去一个 按钮 ,图2 红色部分 出现一行 Button 图…

python批量删除redis key

生产环境中要禁止使用keys *查询key, 因为redis低版本是单线程,如果key非常多的话,直接使用keys *会导致阻塞,所以应当使用scan命令,scan命令介绍请参考其他文档。 # -*- coding: utf-8 -*- # Time : 2025/01/09 # Author : 养…

postgis和地理围栏

postgis postgis是pg数据库的一个插件,除原数据类型外(int varchar)、新增了空间数据类型(geography和geometry)。比如我们新建一张道路表road(字段有名称varchar、建设时间timestamp、地理位置geometry),可以将道路名字、建设时间存进去,同…

Linux 系统下磁盘相关指令:df、du、fdisk、lsblk

文章目录 I df、du、fdisk、lsblk指令df命令用于显示文件系统的磁盘空间使用情况du命令用于估算目录或文件的磁盘空间使用情况fdisk命令用于对磁盘进行分区操作lsblk指令查看设备信息II 应用du估算目录或文件的磁盘空间使用情况lsblk查看服务器上查看硬盘个数III 知识扩展磁盘阵…

Elasticsearch:使用 Playground 与你的 PDF 聊天

LLMs作者:来自 Elastic Toms Mura 了解如何将 PDF 文件上传到 Kibana 并使用 Elastic Playground 与它们交互。本博客展示了在 Playground 中与 PDF 聊天的实用示例。 Elasticsearch 8.16 具有一项新功能,可让你将 PDF 文件直接上传到 Kibana 并使用 Pla…

linux-rpm定制化(fpm)

一. 引文: 关于rpm定制化的描述,可参考:linux-定制化rpm(rpmbuild)-CSDN博客 这里介绍fpm的方式。 二. fpm: fpm在rpmbuild基础上使用ruby做了封装,相比rpmbuild来说,更简单。 1. 安装: gem …