【图解HTTP】Web服务器与HTTP的协作

news/2024/5/6 6:34:20/文章来源:https://blog.csdn.net/liuwanqing233333/article/details/127162771

顺心的人大抵一样,坎坷的人各有各的坎坷。也只能坚持自我修行,等待自己的机遇。

文章目录

  • 1. Web服务器与HTTP的协作
    • 1.1 单台虚拟主机实现多域名
    • 1.2 通信数据转发程序:代理、网关、隧道
      • 1.2.1 代理
      • 1.2.2 网关
      • 1.2.3 隧道
    • 1.3 缓存
    • 1.4 扩展:HTTP出现之前的协议

1. Web服务器与HTTP的协作

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

1.1 单台虚拟主机实现多域名

1. 虚拟主机/服务器(Virtual Host): 即使物理层面上只有一台服务器,使用虚拟主机功能也可实现一台 HTTP 服务器搭建多个 Web 站点
2. 域名解析:

客户端采用主机名和域名访问服务器,域名通过 DNS 服务映射到 IP 地址,再通过 IP 地址找到要访问的服务器。

当两个域名被解析成同一个 IP 地址时(即两个域名部署在同一台服务器上),在发送 HTTP 请求时,需要在 Host 首部内完整地指定主机名或域名的 URI

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

HTTP 通信时,除了客户端和服务器之外,还存在一些用于配合服务器工作的负责通信数据转发的应用程序,如代理、网关和隧道。它们可以将请求转发给通信链路上的下一站服务器,并且能接收该服务器的响应,并转发给客户端。

术语 ——
源服务器: 持有资源实体的服务器称为源服务器

1.2.1 代理

在这里插入图片描述

**1. 定义:**具有转发功能的应用程序,扮演客户端与服务器之间的中间人角色,负责接收由客户端发出的请求并且转发给服务器,也能接收服务器返回的响应并且转发给客户端
2. 基本行为: 接收客户端发来的请求后转发给其他服务器。代理不能改变请求 URI,之间把请求发送给前方持有资源的目标服务器。
3. 代理服务器的级联: 转发时,通过附加 Via 首部字段标记出经过的主机信息

在这里插入图片描述
4. 优点:

  1. 利用缓存技术减少网络带宽的流量
  2. 组织内部针对特定网站的访问控制
  3. 获取访问日志

5. 分类:

  • 缓存代理(Caching Proxy)
    代理转发响应时,预先将响应资源的副本缓存在代理服务器上,当代理再收到对相同资源的请求时,可以之间返回之前缓存的资源
  • 透明代理(Transparent Proxy)
    代理转发请求或响应时,不对报文作任何加工。(相应的还有非透明代理)

1.2.2 网关

在这里插入图片描述

1. 定义: 网关与代理工作机制类似,但是网关可以使通信线路上的服务器提供非 HTTP 协议服务
2. 优点: 提高通信安全性,可在客户端和网关的通信线路上加密

1.2.3 隧道

1. 定义: 可建立一条与其他服务器间的通信线路,以使用 SSL 等加密手段加密通信,隧道的目的就是确保客户端与服务器间进行安全的通信。隧道不会解析 HTTP 请求,请求保持原样中转给之后的服务器,隧道在通信双方断开连接后结束
2. 优点: 实现远距离的安全通信

1.3 缓存

缓存是指代理服务器或客户端本地磁盘内保持的资源副本。通过缓存可减少对源服务器的访问,从而节省通信流量和通信时间。
1. 缓存服务器: 代理服务器的一种(缓存代理),可以缓存源服务器资源。但是要注意,即使存在缓存,也会因客户端要求、缓存有效期限等问题,向源服务器确认资源有效性。判断缓存失效,缓存服务器要再次从源服务器上获取新资源。
2. 客户端缓存: 将缓存存在客户端浏览器中,如IE浏览器的临时网络文件(Temporary Internet File),若浏览器缓存有效,之间从本地磁盘读取

1.4 扩展:HTTP出现之前的协议

  1. FTP(File Transfer Protocol): 传输文件时使用的协议,1973年出现,至今仍在广泛延用

  2. NNIP(Network News Transfer Protocol): 用于电子会议室传输消息的协议,1986年出现,现在已经不怎么使用了

  3. Archie: 搜索 FTP 公开文件信息的协议,1990年出现,现在也不怎么使用了。

  4. WAIS(Wide Area Information Servers): 以关键词检索多个数据库使用的协议,1991年出现,不怎么使用了

  5. Gopher: 查找互联网连接的计算机信息的协议,1991年出现,现在也不怎么使用了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_18341.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【程序语言】-- 编程语言分类和应用

系列文章目录 文章目录系列文章目录前言一、编程语言有哪些二、应用概况1.Python2.Java3.C/C4.JavaScript5.Golang6.R7.Swift8.PHP9.C#9.MATLAB总结前言 一、编程语言有哪些 JavaScriptHTML/CSSPythonSQLJavaNode.jsTypeScriptC#Bash/ShellCPHPCPowerShellGoKotlinRustRubyPe…

Linux:进程

0.前言:冯诺依曼体系结构 冯诺依曼体系结构 电脑中涉及两种类型信号:控制信号、数据信号 计算机硬件构成: 输入设备:显卡、 输出设备:显示器、 存储器(内存):磁盘不算,磁盘算外部设…

LLC谐振电路增益公式推导

LLC谐振电路增益公式推导 图 由图可知 GVoutVinsLm//Rac1sCrsLrsLm//RacG\frac{V_{out}}{V_{in}}\frac{sLm//Rac}{\frac{1}{sCr}sLrsLm//Rac} GVin​Vout​​sCr1​sLrsLm//RacsLm//Rac​ 其中 sLm//RacsLm∗RacsLmRacsLm//Rac\frac{sLm*Rac}{sLmRac} sLm//RacsLmRacsLm∗Rac​…

Java 多线程编程(入门)

目录 一、简单介绍 Thread类 【1】Thread类中一些常用的方法 【2】编写一个简单多线程程序(入门) 二、Java中创建多线程的方法(重点面试题) 1.继承 Thread 类 2.实现 Runnable 接口,重写 run 3.使用匿名内部类&…

(决策树中的)信息熵和样本分类的信息熵计算源代码

目录 一、信息熵 ① 基本概念 ② 计算公式 二、决策树中的信息熵 三、计算数据集样本分类的香农熵的源代码 说明:由于对这部分的知识有所遗忘,因此翻阅资料进行温习,写下本文。 需要注意的是,在本文中,所有中括号…

WPF 控件专题 ContentControl 控件详解

1、ContentControl 介绍 ContentControl 表示包含一段任意类型内容的控件;也叫作内容控件。只包含一个子元素。 ************************************************************************************************************** 2、常用属性介绍 FontFamily&a…

《代码随想录》一刷记录之回溯算法

文章目录前言第9章:回溯法回溯算法理论基础什么是回溯算法回溯法的性能回溯法可以解决的问题理解回溯法回溯法模板组合问题回溯算法剪枝优化组合总和(一)回溯算法剪枝优化电话号码的字母组合回溯算法组合总和(二)回溯算法剪枝优化组合总和&am…

flask数字图像处理系统开发全流程记录(基于OpenCV)

目录一、环境安装1.1 安装虚拟环境1.2 安装Flask二、搭建flask项目框架2.1 创建一个简单项目2.2 渲染html页面2.3 使用Bootstrap美化页面2.4 前后端逻辑交互2.4.1 前端实现2.4.2 后端实现三、部署3.1 Waitress工业级部署3.2 项目打包一、环境安装 1.1 安装虚拟环境 虚拟环境是…

以太网交换机(计算机网络)

目录 一、以太网交换机与网桥 二、交换机与集线器 三、交换式以太网 四、以太网交换机的要点 一、以太网交换机与网桥 1、交换式集线器又称为以太网交换机(switch)或二层交换 机(表明此交换机工作在数据链路层),或直接简称 为交换机。 2…

2022/10/4——基于stm32mp157a的A7核按键中断实验

分析电路图可知三个按键对应的管脚为:KEY1----->PF9 KEY2----->PF7 KEY3----->PF8 本次实验采用延时函数来解决按键按下时的电平抖动问题 功能分析如下 如上图所示 1.需要分析GPIOF章节:设置引脚为输入模式 2.需要分析EXTI章节&#xff1…

人工智能算法一无监督学习(Kmeas聚类)

简介 在前面介绍的线性回归还有逻辑回归它们都是知道x,y然后开始训练模型,这也就是有监督学习的情况,还有如果只是知道x不知道y的情况那么这种就是无监督学习。 描述 需求引入,如果有一千万用户,我们要对用户进行分类。这里由于…

Pytorch深度学习笔记之三(构建一个完整的神经网络)

本篇笔记是基于一个印度人写的《Pytorch深度学习》一书的第二章,主要用来描述一个麻雀虽小五脏俱全的完整的神经网络,包含了建模、训练等。原书的代码基于较老版本的Pytorch,有多处编译不过,笔者都做了调整,并在文末给…

几种常见的概率分布表

参考:《概率论与数理统计 第四版》

Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署

一、环境需求 本帖针对的是Linux环境,Windows或其他系统也可借鉴。具体只讲述Jenkins配置以及整个流程的实现。 1.JDK(或JRE)及Java环境变量配置,我用的是JDK1.8。 2.Jenkins 持续集成和持续交付项目。 3.现有项目及gitlab&#…

Redis实战 - 03 RedisTemplate 的 hash 结构

文章目录1. put(H var1, HK var2, HV var3)2. get(H var1, Object var2)3. entries(H key)4. keys(H key)5. values(H key)6. hasKey(H key, Object var2)7. size(H key)8. putAll(H key, Map<? extends HK, ? extends HV> map)1. put(H var1, HK var2, HV var3) 新增…

机器学习之验证曲线绘制-调参可视化-sklearn

验证曲线是什么&#xff1f; 验证曲线和学习曲线的区别是&#xff0c;横轴为某个超参数的一系列值&#xff0c;由此来看不同参数设置下模型的准确率(评价标准)&#xff0c;而不是不同训练集大小下的准确率。 从验证曲线上可以看到随着超参数设置的改变&#xff0c;模型可能从…

Java Web 12.1 Filter 12.1.2 Filter 快速入门

Java Web 【黑马程序员新版JavaWeb基础教程&#xff0c;Java web从入门到企业实战完整版】 12 Filter & Listener & Ajax 文章目录Java Web12 Filter & Listener & Ajax12.1 Filter12.1.2 Filter 快速入门12.1 Filter 12.1.2 Filter 快速入门 【开发步骤】…

论如何参与一个开源项目(上)

写在前面的一些话 说起开源项目&#xff0c;好像人人都懂&#xff1a;不过就是一群人一起写了些东西&#xff0c;并且这些东西是公开的&#xff0c;大家都能看。但要细说&#xff0c;可能大多数的开发者都说不出个所以然&#xff0c;甚至不知道怎么提issue。 所以我就想写这样…

这,这,是个神人,我喜欢

国庆的第三天&#xff0c;跟一个好友聊天&#xff0c;他本来是准备回老家的&#xff0c;但是因为疫情搁浅在原地了。上来就直接给我搞一个有难度的代码如果没有人跟你说这个是输出helloworld的&#xff0c;鬼知道这个代码。然后&#xff0c;我就说我想对他进行一个采访&#xf…

QX-A51智能小车实现-物联网应用系统设计项目开发

目录介绍说明展示介绍 STC89C52系列单片机是STC推出的新一代高速/低功耗/超强抗干扰/超低价的单片机&#xff0c;指令代码完全兼容传统8051单片机&#xff0c;12时钟每机器周期和6时钟每机器周期可以任意选择 QX-A51智能小车原理图 QX-A51智能小车配置 硬件组成&#xff1a;电…