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

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 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.mzph.cn/news/122376.shtml

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

相关文章

【2021集创赛】Robei杯一等奖:基于Robei EDA工具的隔离病房看护机器人设计

本作品参与极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动。 团队介绍 参赛单位&#xff1a;重庆交通大学 队伍名称&#xff1a;一丘之貉 指导老师&#xff1a;毕波 李艾星 参赛队员&#xff1a;郁航 张坤 秦衡 总决赛奖项&#xff1a;Robei杯一等奖…

内网穿透工具之NATAPP(一)

使用工具前&#xff0c;有必要了解一下什么是内网穿透吧&#xff01; 内网穿透简单来说就是将内网外网通过natapp隧道打通,让内网的数据让外网可以获取。比如常用的办公室软件等&#xff0c;一般在办公室或家里&#xff0c;通过拨号上网&#xff0c;这样办公软件只有在本地的局…

SpringCloud 微服务全栈体系(六)

第八章 Gateway 服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目&#xff0c;该项目是基于 Spring 5.0&#xff0c;Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关&#xff0c;它旨在为微服务架构提供一种简单有效的统一的 API 路由管…

【Selenium】提高测试爬虫效率:Selenium与多线程的完美结合

前言 使用Selenium 创建多个浏览器&#xff0c;这在自动化操作中非常常见。 而在Python中&#xff0c;使用 Selenium threading 或 Selenium ThreadPoolExecutor 都是很好的实现方法。 应用场景&#xff1a; 创建多个浏览器用于测试或者数据采集&#xff1b;使用Selenium 控…

JVM虚拟机详解

目录 01JVM由哪些部分组成/运行流程 什么是程序计数器 详细介绍堆 介绍方法区&#xff08;Method Area&#xff09; 直接内存 虚拟机栈(Java Virtual machine Stacks) 垃圾回收是否涉及栈内存 栈内存分配越大越好吗 方法内的局部变量是否线程安全 什么情况下会导致栈…

WSL——ubuntu中anaconda换源(conda、pip)

1、conda 打开Ubuntu&#xff0c;输入下列命令。 conda config --set show_channel_urls yes 在文件管理器地址栏&#xff0c;输入&#xff1a;\\wsl$。打开Ubuntu根路径&#xff0c;其中显示了.condarc文件。 以文本形式打开&#xff0c;并输入要换的源&#xff0c;保存即可。…

【QT】信号和槽能自动传递参数

一、前置示例代码 main.cpp #include "widget.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv); // 应用程序对象a&#xff0c;在Qt中&#xff0c;应用程序对象&#xff0c;有且仅有一个。Widget w; // 窗口对…

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

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

【AD9361 数字接口CMOS LVDSSPI】B 并行数据之CMOS

##接上一篇&#xff1b; 本节介绍 AD9361 数字接口CMOS &LVDS&SPI最后一张表中四种工作模式的具体配置及时序波形图。 目录 1、单端口半双工模式 &#xff08;CMOS&#xff09; *代称 SHC*换句话说&#xff0c;最大值是12‘b0111_1111_1111&#xff0c;即0x7FF&#xf…

Selenium自动测试框架

selenium3 selenium元素的定位css 选择器Xpath 操作测试对象 API添加等待浏览器的操作键盘操作鼠标操作定位一组元素下拉框弹窗上传文件 <dependencies><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><…

科大讯飞发布讯飞星火 3.0;开源AI的现状

&#x1f680; 科大讯飞发布讯飞星火 3.0&#xff0c;综合能力超越ChatGPT&#xff08;非GPT-4版&#xff09; 摘要&#xff1a;科大讯飞在2023全球1024开发者节上宣布讯飞星火 3.0正式发布&#xff0c;号称综合能力已超越ChatGPT。据介绍&#xff0c;星火认知大模型 V3.0在文…

Windows查看核心与线程数

文章目录 前言一、可视化界面1、任务管理器2、设备管理器3、CPU-Z 二、命令或程序1、cmd命令2、Java程序 前言 查询电脑硬件CPU信息命令的学习&#xff0c;予以记录&#xff01; 参考博客&#xff1a;https://blog.csdn.net/huazicomeon/article/details/53540852 一、可视化界…

Flutter报错RenderBox was not laid out: RenderRepaintBoundary的解决方法

文章目录 报错问题分析问题原因 解决办法RenderBox was not laid out错误的常见原因常见原因解决方法 RenderRepaintBoundaryRenderRepaintBoundary用途 报错 RenderBox was not laid out: RenderRepaintBoundary#d4abf relayoutBoundaryup1 NEEDS-PAINT NEEDS-COMPOSITING-BI…

LibreOffice编辑excel文档如何在单元格中输入手动换行符

用WPS编辑excel文档的时候&#xff0c;要在单元格中输入手动换行符&#xff0c;可以先按住Alt键&#xff0c;然后回车。 而用LibreOffice编辑excel文档&#xff0c;要在单元格中输入手动换行符&#xff0c;可以先按住Ctrl键&#xff0c;然后回车。例如&#xff1a;

记一次线程爆满导致服务器崩溃的问题排查

记一次线程爆满导致服务器崩溃的问题排查 重启服务器 重启后&#xff0c;ssh连接发现下面问题 fork faild:Cannot allocate memory 以为是内存满了 于是&#xff0c;free -h,查看内存情况&#xff0c;还有&#xff0c;观察一段时间后&#xff0c;内存没多大变化 修改…

鸡尾酒学习——环游世界

1、材料&#xff1a;白朗姆、龙舌兰、威士忌、金酒、伏特加、蓝橙力娇酒、柠檬汁、红石榴糖浆、橙汁、冰块&#xff1b; 2、口感&#xff1a;酸苦涩口味&#xff0c;下层感觉是在喝橙汁&#xff0c;上层在喝酒&#xff0c;适合喜欢喝橙汁以及酒的人&#xff0c;恰巧我不喜欢这两…

机器学习(五)如何理解机器学习三要素

1.8如何理解机器学习三要素 统计学习模型策略算法 模型&#xff1a;规律yaxb 策略&#xff1a;什么样的模型是好的模型&#xff1f;损失函数 算法&#xff1a;如何高效找到最优参数&#xff0c;模型中的参数a和b 1.8.1模型 机器学习中&#xff0c;首先要考虑学习什么样的…

锐捷EG易网关 phpinfo.view.php 信息泄露

致未经身份验证获取敏感信息 访问漏洞url&#xff1a; /tool/view/phpinfo.view.php漏洞证明&#xff1a; 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝赐教&#xff0c;万分感谢。 免责声明&#xff1a;由于传播或利用此文所提供的信息、技术或方法而造成的任何…

GZ035 5G组网与运维赛题第3套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项&#xff08;高职组&#xff09; 赛题第3套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通&#xff08;35分&#xff09; 子任务1&#xff1a;5G公共网络部署与调试&#xff08;15分&#xff09; 子…

前端 :用HTML ,JS写一个 双色球彩票中将机制,因为时间不够,加上本人懒没有用CSS美化界面,多包涵

1.HTML <body><div id"content"><div id "top"><div id "username">用户号码&#xff1a;</div><div id "qiu"><span id "red">红球&#xff1a;</span><input id…