《图解 HTTP》笔记——第5章 与 HTTP 协作的 Web 服务器

【课程设计】TCP/IP 应用环境中服务器的部署与实现 本项目旨在通过搭建一个虚拟网络环境,实现软路由系统的配置和服务器的搭建与测试。具体包括安装虚拟机 VMWare Workstation,安装 Windows Server 2003 操作系统,配置软路由系统(包括双网卡安装、协议配置和测试),以及搭建并测试 DHCP 服务、DNS 服务、WWW 服务、FTP 服务和 SMTP/POP3 服务。 阅读详情

声明:

本博客是本人在学习《图解 HTTP》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。

本博客已标明出处,如有侵权请告知,马上删除。

5.1 用单台虚拟主机实现多个域名

HTTP/1.1 规范允许一台 HTTP 服务器搭建多个 Web 站点。比如,提供 Web 托管服务(Web Hosting Service)的供应商,可以用一台服务器为多位客户服务,也可以以每位客户持有的域名运行各自不同的网站。这是因为利用了虚拟主机(Virtual Host,又称虚拟服务器)的功能。

即使物理层面只有一台服务器,但只要使用虚拟主机的功能,则可以假想已具有多台服务器。

在这里插入图片描述

客户端使用 HTTP 协议访问服务器时,会经常采用类似 www.hackr.jp 这样的主机名和域名。

在互联网上,域名通过 DNS 服务映射到 IP 地址(域名解析)之后访问目标网站。可见,当请求发送到服务器时,已经是以 IP 地址形式访问了。

所以,如果一台服务器内托管了 www.tricorder.jp 和 www.hackr.jp 这两个域名,当收到请求时就需要弄清楚究竟要访问哪个域名。

在这里插入图片描述

在相同的 IP 地址下,由于虚拟主机可以寄存多个不同主机名和域名的 Web 网站,因此在发送 HTTP 请求时,必须在 Host 首部内完整指定主机名或域名的 URI。

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

HTTP 通信时,除客户端和服务器以外,还有一些用于通信数据转发的应用程序,例如代理、网关和隧道。它们可以配合服务器工作。

这些应用程序和服务器可以将请求转发给通信线路上的下一站服务器,并且能接收从那台服务器发送的响应再转发给客户端。

  • 代理

    代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端“中间人”的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。

  • 网关

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

  • 隧道

    隧道是在相隔甚远的客户端和服务器两者之间进行中转,并保持双方 通信连接的应用程序。

5.2.1 代理

在这里插入图片描述

代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器。代理不改变请求 URI,会直接发送给前方持有资源的目标服务器。

持有资源实体的服务器被称为源服务器。从源服务器返回的响应经过代理服务器后再传给客户端。

在这里插入图片描述

在 HTTP 通信过程中,可级联多台代理服务器。请求和响应的转发会经过数台类似锁链一样连接起来的代理服务器。转发时,需要附加 Via 首部字段以标记出经过的主机信息。

使用代理服务器的理由有:

  • 利用缓存技术减少网络带宽的流量
  • 组织内部针对特定网站的访问控制
  • 以获取访问日志为主要目的

代理有多种使用方法,按两种基准分类。一种是是否使用缓存,另一种是是否会修改报文。

  • 缓存代理

    代理转发响应时,缓存代理(Caching Proxy)会预先将资源的副本(缓存)保存在代理服务器上。

    当代理再次接收到对相同资源的请求时,就可以不从源服务器那里获取资源,而是将之前缓存的资源作为响应返回。

  • 透明代理

    转发请求或响应时,不对报文做任何加工的代理类型被称为透明代理(Transparent Proxy)。反之,对报文内容进行加工的代理被称为非透明代理。

5.2.2 网关

在这里插入图片描述

网关的工作机制和代理十分相似。而网关能使通信线路上的服务器提供非 HTTP 协议服务。

利用网关能提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全。比如,网关可以连接数据库,使用 SQL语句查询数据。另外,在 Web 购物网站上进行信用卡结算时,网关可以和信用卡结算系统联动。

5.2.3 隧道

隧道可按要求建立起一条与其他服务器的通信线路,届时使用 SSL 等加密手段进行通信。隧道的目的是确保客户端能与服务器进行安全的通信。

隧道本身不会去解析 HTTP 请求。也就是说,请求保持原样中转给之后的服务器。隧道会在通信双方断开连接时结束。

在这里插入图片描述

5.3 保存资源的缓存

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

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

在这里插入图片描述

缓存服务器的优势在于利用缓存可避免多次从源服务器转发资源。因此客户端可就近从缓存服务器上获取资源,而源服务器也不必多次处理相同的请求了。

5.3.1 缓存的有效期限

即便缓存服务器内有缓存,也不能保证每次都会返回对同资源的请求。因为这关系到被缓存资源的有效性问题。

当遇上源服务器上的资源更新时,如果还是使用不变的缓存,那就会 演变成返回更新前的“旧”资源了。

即使存在缓存,也会因为客户端的要求、缓存的有效期等因素,向源服务器确认资源的有效性。若判断缓存失效,缓存服务器将会再次从源服务器上获取“新”资源。

在这里插入图片描述

5.3.2 客户端的缓存

缓存不仅可以存在于缓存服务器内,还可以存在客户端浏览器中。以 Internet Explorer 程序为例,把客户端缓存称为临时网络文件(Temporary Internet File)。

浏览器缓存如果有效,就不必再向服务器请求相同的资源了,可以直接从本地磁盘内读取。

另外,和缓存服务器相同的一点是,当判定缓存过期后,会向源服务器确认资源的有效性。若判断浏览器缓存失效,浏览器会再次请求新资源。

在这里插入图片描述

《AI Coding手册:Claude Code、OpenAI Codex、OpenClaw深度解析与实战指南》 AI编码技术经历了从简单规则匹配到深度神经网络,再到当前智能体(Agent)架构的范式转变。第一阶段:静态代码补全(2010-2018)早期工具如IntelliSense、Emmet基于语法分析和固定模板提供代码提示。这类系统依赖预定义规则,缺乏语义理解能力,仅能处理局部代码片段。第二阶段:统计语言模型(2018-2020)以GPT-2、TabNine为代表,引入基于大规模代码训练的神经语言模型。 阅读详情

相关推荐

工业视觉开发者的福音:用C#玩转VisionMaster算子(非方案版完整教程)

本文为工业视觉开发者提供了一份完整的C#与VisionMaster算子二次开发教程,详细介绍了环境配置、算子调用原理、性能优化技巧及实战案例。通过模板匹配和二维码识别等实例,展示了如何高效集成VisionMaster算子到现有框架中,提升工业自动化视觉检测系统的灵活性和性能。

weixin_29280657的博客 270

《图解HTTP》——web服务器

前言 一台服务器可以搭建多个独立域名的web网站,也可以作为通信路径上的中转 服务器的提升传输效率 虚拟主机 HTTP/1.1规范允许一台HTTP服务器搭建多个web站点。比如,提供web托管服务的供应商,可以用一台服务器为多个客户服务,也可以以每位客户持有的域名运行各自不同的网站。这里使用了虚拟主机的功能。 即使物理层只有一台服务器,但只要使用虚拟主机的功能,则可以假想自己具有多台的服务器。...

weixin_33885676的博客 150

FPGA新手必看:Quartus生成jic文件全流程详解(附AS/JTAG模式选择指南)

本文详细解析了在Quartus中生成JIC文件以固化FPGA程序到Flash的全流程。核心在于理解JIC文件作为连接JTAG调试与AS固化的桥梁作用,并重点阐述了Convert Programming Files工具的关键配置步骤、AS与JTAG模式的选择逻辑,以及烧录过程中的常见问题排查指南,帮助开发者实现程序断电不丢失。

weixin_29271053的博客 273

C#实现HTTP服务器:(9)在一个Socket连接内处理多个HTTP请求

前面的文章,我们处理请求都是在一个连接上的,请求处理完,就关闭Stream,同时关闭了底层的Socket。如果一个网页包含的资源比较多,总共可能会需要发起几十上百个Socket连接,造成不必要的网络消耗(TCP的握手、挥手)。同时,浏览器都一个网站发起的连接数是有限制的,所以会导致页面资源加载缓慢的问题。我们来一步步解决这个问问,使一个连接可以处理多个请求。......

艾恩 3118

stackelberg博弈_博弈论、多智能体、强化学习(随便记点东西)

多智能体应用场景:已实现:游戏AI。正在努力:UAV,物资运输,快递分发,交通系统。未来:社会学,预测群体行为,城市区域合作,国际关系。博弈论基本定义:玩家集合: 策略集合: 收益函数: 囚徒困境:两智能体矩阵博弈坦白抵赖坦白1,13,0抵赖0,32,2占优策略与最佳应对:上表中两者均具有占优策略,即无论如何都应该选坦白。那么构造下表。坦白抵赖坦白1,13,0抵赖0,12,2对于玩家一来说,坦白...

weixin_39611722的博客 2995

MPU6050模块DIY翻车实录:ID能读但数据全为零?原来是这个10uF电容惹的祸

本文详细记录了MPU6050模块调试过程中遇到的ID能读但数据全为零的问题排查过程。通过对比不同参考设计,发现CPOUT引脚10uF电容选择不当是导致数据异常的根源,更换为官方推荐的2.2nF电容后问题解决。文章为硬件开发者提供了宝贵的电路设计经验。

weixin_29158047的博客 319

在一台服务器上搭建多个网站的方法(Apache版)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34112030的博客 1125

语音识别:PyAudio、SoundDevice、Vosk、openai-whisper、Argos-Translate、FunASR(Python)

本文介绍了Python中常用的音频处理库PyAudio,详细解析了其核心功能、核心概念和典型工作流程。PyAudio是一个跨平台的音频I/O库,支持音频录制、播放、实时流处理和低延迟操作。核心概念包括PyAudio类(管理音频设备和流)和Stream类(代表音频流)。文章重点讲解了open()方法的关键参数、回调函数的使用方式以及典型的工作流程,包括设备查询、流配置和资源释放。PyAudio适用于需要实时音频处理的场景,如语音识别和音频效果处理。

算法工程师 705

面试题

1.请描述一下cookies,sessionStorage和localStorage的区别 sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。 web storage和cookie的区别 Web Storage的概念和cookie相似,区别是

universe的博客 6万+

YOLOv11改进 | 上采样篇 | YOLOv11引入CARAFE上采样

在本文中,我们提出了一个通用、轻量级、高效的特征重组算子CARAFE来实现这一目标.CARAFE有几个吸引人的特性:(1)大视场。(2)内容感知处理。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~大视场:不同于以往的方法(如双线性插值),CARAFE能够在更大的感受野内聚合上下文信息,从而捕获更丰富的语义信息。

tsg6698的博客 920

Calibre DRC

calibre DRC的运行方法,包括merge gds和加用dummy rule加dummy的方法

m0_61544122的博客 1万+

图解HTTP阅读笔记:第5章 与HTTP协作的Web服务器

与HTTP协议的Web服务器

qq_43751200的博客 906

Access查询中的Dlookup函数的妙用

在Microsoft Access中,处理和分析数据的过程中,常常会遇到需要根据条件从其他记录中提取特定数据的情况。这时候,Dlookup函数就成了开发者和数据分析师的得力助手。今天我们将通过一个具体的实例,详细探讨如何利用Dlookup函数来解决复杂的查询问题。

m0_62153576的博客 294

《图解HTTP》读书笔记--第5章与HTTP协作的Web服务器

记录知识,形成体系

阿正的梦工坊 595

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

《图解HTTP》第5章与HTTP协作的Web服务器 读书笔记

  第五章:与HTTP协作的Web服务器 1.一台物理层面的主机,通过虚拟主机的功能,可以搭建多台虚拟服务器,即搭建多个web站点。 2.当多个域名部署在同一个服务器上时(相同的ip地址),客户端发送请求报文时,必须在Host首部内指定主机域名或域名的URI。 3.代理是一种应用程序,将客户端的请求报文转发给下一站服务器,将服务器端的响应报文转发给客户端。 4.使用代理的理由: ...

WWW54111392的博客 252

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

《图解HTTP》读书笔记(5)第5章与HTTP协作的Web服务器(关键词:HTTP/)

第5章 与HTTP协作的Web服务器一台Web服务器可搭建多个独立域名的Web网站,也可作为通信路径上的中转服务器提升传输效率。5.1 用单台虚拟主机实现多个域名5.2 通信数据转发程序 : 代理、网关、隧道5.2.1 代理5.2.2 网关5.2.3 隧道5.3 保存资源的缓存5.3.1 缓存的有效期限5.3.2 客户端的缓存参考文献: 1.《图解HTTP》。

Henry1991back的博客 353

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

《图解HTTP》笔记——与HTTP协作的Web服务器(第5章)

一台Web服务器可搭建多个独立域名的Web网站,也可作为通信路径上的中转服务器提升传输效率

qq_34289537的博客 477

图解HTTP协议 第5章 与HTTP协作的Web服务器学习笔记

5.1 用单台虚拟主机实现多个域名 HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点。比如,提供Web托管服务(Web Hosting Service)的供应商,可以用一台服务器为多位客户服务,也可以以每位客户持有的域名运行各自不同的网站。这是因为利用了虚拟主机(Virtual Host,又称虚拟服务器)的功能。 即使物理层面只有一台服务器,但只要使用虚拟主机的功能,则可以假想已具

Frank的技术小栈 679

【笔记】【HTTP】《图解HTTP》第2章 简单的HTTP协议

虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了[Cookie技术](# 2.8 使用Cookie的状态管理)。在两台计算机之间使用 HTTP 协议通信时, 在一条通信线路上必定有一端是客户端, 另一端则是服务器。在大量资源加载请求时,每次的请求都会造成无所谓的TCP连接建立和断开,【通信出现的问题】——每进行一次HTTP通信就要断开一次TCP连接。实现:建立1次TCP连接后进行多次请求和响应的交互。多个请求,而不需要一个接一个地等待响应了。,则保持TCP连接状态。来控制客户端的状态。

Code for fun !!! 【博客主要为本人服务】 587

【笔记】【HTTP】《图解HTTP》第5章 与HTTP协做的Web服务器

(即待代理转发从服务器返回响应时,代理服务器将会保存一份资源副本。不改变请求 URI, 会直接发送给前方持有资源的目标服务器。代理服务器或客户端本地磁盘内保存的资源副本。(服务器和浏览器的“中间人”)转发其他服务器通信数据的。能使通信线路上的服务器。好处:提高通信的安全性。

Code for fun !!! 【博客主要为本人服务】 212

《图解HTTP》笔记

图解HTTP [日]上野 宣 著 于均良 译 由于导入md格式会丢大量图片,我上传了pdf版本的。 文章目录图解HTTP第1章 了解web及网络基础1.1 使用http协议访问web1.2 HTTP的诞生1.3 网络基础TCP/IP1.4 与HTTP关系密切的协议:IP、TCP和DNS1.5 负责域名解析的DNS服务1.6 各种协议与http协议的关系1.7 URI和URL第2章 简单的H...

AlanRedsheep 1899

《图解HTTP》读书笔记(二)——HTTP状态码及Web服务器

前言        本文是本系列的第二篇,主要记录了HTTP报文响应的状态码和Web服务器的相关知识,如果有错误烦请大家指出。 返回结果的HTTP状态码 1.状态码告知从服务器端返回的请求结果        状态码的职责是当客户端向服务端发送请求时,描述返回的...

五撸超人的博客 354

《图解HTTP》读书笔记

1. 了解Web以及网络基础 使用HTTP协议访问网页: 根据Web浏览器地址栏中指定的URL,Web浏览器从Web服务器端获取文件资源(resource)等信息,从而显示在Web页面。 向这种通过发送给请求获取服务器资源的Web浏览器等,都可被称为客户端(client) web使用一种HTTP的协议(hypertext transfer protocol,超文本传输协议)作为规范,完成从客户端到...

AaronCao 1519

HTTP权威指南与图解HTTP读书笔记

目录  第1章HTTP概述   1.1 Web客户端和服务器   1.2 资源    1.2.1 URI    1.2.2 URL    1.2.3 URN   1.3 事务    1.3.1 方法    1.3.2 状态码    1.3.3 Web页面可以包含多个对象   1.4 报文   1.5 连接    1.5.1TCP/IP    1.5.2 连...

windy杨树的博客 861

图解HTTP读书笔记

图解HTTP前言第一章 Web及网络基础1.1 使用HTTP协议访问Web1.2 HTTP的诞生 前言 用到HTTP协议的各方面知识:网络爬虫程序、分析抓包数据、实现HTTP服务器、提供网站REST API、修改后端定制框架等方面。本书前半部分由HTTP的成长发展史娓娓道来,基于HTTP 1.1标准讲解通信过程,包括HTTP方法、协议格式、报文结构、首部字段、状态码等的具体含义,还分别讲解HTTP通信过程中代理、网关、隧道等的作用。接着介绍SPDY、WebSocket、WebDAV等HTTP的扩展功能。作者

thezapple的博客 6508
上一篇: 《图解 HTTP》笔记——第4章 返回结果的 HTTP 状态码
下一篇: 《SQL 实战》题解(1-16题)
bm1998
博客等级 码龄9年 4214粉丝 287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bm1998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值