计算机网络笔记再战——理解几个经典的协议HTTP章3

ops/2025/3/18 2:15:15/
http://www.w3.org/2000/svg" style="display: none;">

理解几个经典协议——HTTP章3

返回结果的HTTP状态码

​ 我们知道,ICMP可以传递IP通信时候的状态如何。HTTP虽然没有辅助的解析,但是它可以使用状态码来表达我们的HTTP请求的结果,标记服务器端的处理是否正常、通知出现的错误等工作。这就是状态码的职责。

​ 比如说,当我们的状态码是2xx的时候,就说明我们的请求不光到达了服务器,而且还得到了正确的处理。如果出现了4XX,则是说明我们的服务器无法请求处理(这个请求是你的请求出现的问题),如果出现了5XX,说明是服务器内部的错误,这是服务器的问题。所以,我们对状态码的第一位做一个分类,可以得到:

种类类别原因短语
1XX信息性状态码接收的请求正在处理
2XX成功状态码请求正常处理完毕
3XX重定向状态码需要进行附加操作以完成请求
4XX客户端错误码服务器无法处理请求,这是客户端的请求非法导致的
5XX服务端错误码服务端请求处理出错了,这是服务器内部的错误

​ 具体每一个号码的请求请参考附录。

与 HTTP 协作的 Web 服务器

​ 我们的HTTP/1.1 规范允许一台 HTTP 服务器搭建多个 Web 站点。这就是使用物理单台主机的虚拟多主机(也就是说,我们虚拟化了我们的主机,看起来有很多台主机在运作,但是实际上只有一台)

​ 客户端使用 HTTP 协议访问服务器时,会经常采用类似这样的主机名和域名。在互联网上,域名通过 DNS 服务映射到 IP 地址(域名解析)之后访问目标网站。可见,当请求发送到服务器时,已经是以 IP 地址形式访问了。

通信数据转发程序 :代理、网关、隧道

​ HTTP通信除了围绕我们的客户端和服务器之外,还会有一部分用来进行通信数据转发。比如说,我们的代理,网关和隧道,他们配合我们的服务器进行工作。

代理

​ 代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端“中间人”的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。这个时候,我们授权让我们的代理跟我们的服务器进行通话,而不是我们本人

网关

​ 网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关。

隧道

​ 隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方通信连接的应用程序。我们一般会用来进行安全加密,保证一个安全的HTTP通信

资源的缓存

​ 缓存是指代理服务器或客户端本地磁盘内保存的资源副本。利用缓存可减少对源服务器的访问,因此也就节省了通信流量和通信时间。

​ 缓存服务器是代理服务器的一种,并归类在缓存代理类型中。换句话说,当代理转发从服务器返回的响应时,代理服务器将会保存一份资源的副本。

​ 这个场景,是我们用在请求一部分资源的时候,我们的缓存服务器会咨询我们的源服务器对应的资源是否有效,如果有效,缓存服务器直接将缓存的副本传递回来,而不是再请求一次资源。毕竟,传递“这个资源有效,就用你原来的”的消耗远比直接不管不顾再发送资源来的快。

​ 当然,资源本身也是有期限的,不管是不是过期了,失能的资源需要再向服务器发起请求刷新。

附录

状态码大全

状态码含义出现状态码的原因
100Continue客户端应继续其请求,服务器已接收到请求的初始部分
101Switching Protocols服务器已理解请求,并将切换协议
102Processing服务器已收到并正在处理请求,但尚未完成
200OK请求成功
201Created请求成功并创建了新资源
202Accepted请求已被接受,但尚未处理
203Non-Authoritative Info返回的信息来自第三方而非原始服务器
204No Content请求成功,但无返回内容
205Reset Content请求成功,请重置文档视图
206Partial Content服务器成功处理了部分请求
207Multi-Status响应包含多个独立操作结果(WebDAV)
300Multiple Choices请求有多种可用响应
301Moved Permanently请求的资源已永久移动到新位置
302Found请求的资源临时从不同 URI 响应
303See Other请求应通过另一个 URI 获取资源
304Not Modified资源未修改,可使用缓存
305Use Proxy请求应使用代理访问
307Temporary Redirect请求的资源临时从不同 URI 响应(方法不变)
308Permanent Redirect请求的资源永久从不同 URI 响应(方法不变)
400Bad Request请求格式错误,服务器无法理解
401Unauthorized请求未经授权,需身份验证
402Payment Required保留状态码,预留用于将来支付机制
403Forbidden服务器理解请求但拒绝执行
404Not Found请求的资源不存在
405Method Not Allowed请求方法被禁止
406Not Acceptable请求的资源不满足客户端的 Accept 头要求
407Proxy Authentication Req需要代理身份验证
408Request Timeout请求超时
409Conflict请求冲突(例如资源状态冲突)
410Gone请求的资源已被永久删除
411Length Required请求未定义 Content-Length 头
412Precondition Failed请求头中指定的前提条件失败
413Payload Too Large请求实体过大
414URI Too Long请求的 URI 过长
415Unsupported Media Type请求格式不受支持
416Range Not Satisfiable请求的范围无效
417Expectation Failed请求头中的 Expect 无法满足
418I’m a teapot玩笑用的状态码,不支持冲泡咖啡
421Misdirected Request请求被发送到不能生产响应的服务器
422Unprocessable Entity请求格式正确但语义错误(WebDAV)
423Locked资源被锁定(WebDAV)
424Failed Dependency由于之前的请求失败,当前请求失败(WebDAV)
425Too Early服务器不愿意处理过早的请求
426Upgrade Required客户端需升级协议
428Precondition Required需指定请求条件以防止冲突
429Too Many Requests客户端发送请求过多,已被限流
431Request Header Fields Too Large请求头字段过大
451Unavailable For Legal Reasons请求内容因法律原因不可用
500Internal Server Error服务器内部错误
501Not Implemented服务器不支持请求方法
502Bad Gateway网关服务器收到无效响应
503Service Unavailable服务器暂时超载或维护中
504Gateway Timeout网关服务器请求超时
505HTTP Version Not Supported不支持的 HTTP 版本
506Variant Also Negotiates内容协商出现循环引用
507Insufficient Storage服务器无法存储请求所需内容(WebDAV)
508Loop Detected服务器检测到无限循环(WebDAV)
510Not Extended请求需进一步扩展
511Network Authentication Required需要进行网络认证

http://www.ppmy.cn/ops/166659.html

相关文章

微信小程序从右向左无限滚动组件封装(类似公告)

组件代码 wxml代码 <view class"container"><view class"text-wrapper"><!-- 这两个都不能删除,用来放无限滚动的,第一个滚完第二个接上,第二个滚完第一个又接上了 --><text class"scroll-text text1" style"left: …

Spring Boot 核心知识点:依赖注入 (Dependency Injection)

Spring Boot 核心知识点&#xff1a;依赖注入 (Dependency Injection) 一、引言 在软件开发中&#xff0c;对象之间的依赖关系是不可避免的。一个对象通常需要与其他对象协作才能完成其功能。传统的对象创建方式往往需要在对象内部显式地创建或查找其依赖的对象&#xff0c;这…

R 语言科研绘图 --- 密度图-汇总

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…

2025 香港 Web3 嘉年华:全球 Web3 生态的年度盛会

自 2023 年首届香港 Web3 嘉年华成功举办以来&#xff0c;这一盛会已成为全球 Web3 领域规模最大、影响力最深远的行业活动之一。2025 年 4 月 6 日至 9 日&#xff0c;第三届香港 Web3 嘉年华将在香港盛大举行。本届活动由万向区块链实验室与 HashKey Group 联合主办、W3ME 承…

数学建模 第二节

目录 前言 一 解题技巧 二 非线性规划问题 三 钻井布局问题 总结 前言 继续学习数学建模 一 解题技巧 题目分析 1 每次写题目时候&#xff0c;都要把题目进行可视化------很有必就是把题目转化为图谱 2 对应的约束条件是要用文字进行说明 3 优化后的模型是要满足…

Penguins“Collect to Earn”新标杆,开启Web3.0与AI融合未来

Penguins 项目宣布即将上线&#xff0c;这款基于 Base 链的“Collect to Earn”区块链游戏以 AI 驱动的 GameFi 体验、ERC-404 技术创新和蓬勃社区能量&#xff0c;开创 Web3.0 新纪元。项目计划发行 25,920 张独特企鹅主题 NFT&#xff0c;每张附带 1000 万 PGS 代币&#xff…

Pytorch 第十回:卷积神经网络——DenseNet模型

Pytorch 第十回&#xff1a;卷积神经网络——DenseNet模型 本次开启深度学习第十回&#xff0c;基于Pytorch的DenseNet卷积神经网络模型。这是分享的第五个卷积神经网络模型。在第九回当中&#xff0c;分享了ResNet模型&#xff0c;该模型解决了梯度消失和网络退化的问题。本回…

(性能测试)性能测试工具 2.jmeter的环境搭建 3jmeter元件和4使用实例 5jmeter元件和参数化

目录 性能测试工具 性能测试工具 jemeter环境搭建 jmeter的常用目录介绍 jmeter修改语言和主题--jmeter界面的汉化 jmeter元件 jmeter元件和组件的介绍 jmeter的作用域原则 jmeter的执行顺序 案例&#xff1a;执行顺序 jmeter使用案例 jmeter线程组的介绍 jmeter…