本文基于《计算机网络——自顶向下方法》一书
Web缓存/代理服务器
Web缓存器又称为代理服务器他是能够代表源Web服务器来满足HTTP请求的网络实体。代理服务器有自己的磁盘存储空间,并在存储空间中保存最近请求过的对象的副本。
可以为浏览器配置代理服务器,则该浏览器访问该网站的时候,会优先在其代理服务器中寻找是否有被请求的请求的对象。如果有则直接从代理服务器中返回该对象;如果没有,代理服务器会打开一个与该对象的初始服务器的TCP连接,并且向源服务器请求这个没有的对象,当代理服务器收到响应报文后,代理服务器会在本地空间储存一份副本,然后并且发送该对象给请求源。
部署代理服务器有两个原因:
- 代理服务器能够大大减少对客户要求的响应时间。比如我们直接下载Github上的内容会比较缓慢,而如果配置了清华大学的代理服务器的话,下载速度会快很多。道理是简单的,我们直连Github海外服务器在物理距离和网络距离上都要比连接清华大学的服务器要远,因此从清华大学代理服务器上获取副本要比直接连接Github服务器下载快得多。即便清华大学代理服务器上没有该对象的副本,代理服务器也可以通过服务器间的高速链路快速请求从Github服务器上下载对应对象。
- 代理服务器也可以减少访问源服务器的流量。假设《星际穿越》片源只有广州有,那全广东的人都要去广州看《星际穿越》,势必人满为患,而通过将影片副本下发到地级市,则人们可以去地级市看电影,而不必直接去广州看。代理服务器也同理。通过构建多个代理服务器来分摊源服务器的请求,可以减少访问源服务器流量。