美文网首页
小马哥网络课笔记26------代理、CDN

小马哥网络课笔记26------代理、CDN

作者: 夜凉听风雨 | 来源:发表于2022-03-02 22:22 被阅读0次

代理服务器(Proxy Server)

  • 特点:
    1、本身不生产内容
    2、处于中间位置转发上下游的请求和响应
    3、面向下游的客户端:它是服务器
    4、面向上游的服务器:它是客户端
代理示意图.png

图解:
客户端发送请求给代理,代理再将请求转发给服务器。服务器将数据发给代理,代理再将数据返回给客户端。

正向代理、反向代理

  • 正向代理:代理的对象是客户端,为客户端服务的
  • 反向代理:代理的对象是服务器,为服务器服务的
正向代理.png 反向代理.png

正向代理的作用

  • 隐藏客户端身份
    服务器只知道代理的设备信息,一些黑客就通过代理服务器做攻击,从而隐藏自己。

  • 绕过防火墙(突破访问限制)
    遇到无法直接访问的目标服务器,可以通过一台能够访问目标服务器的代理服务器,间接来访问目标服务器。

  • Internet访问控制
    路由器可以设置只允许一台主机可以上网,让这台主机作为代理。
    其他主机上网必须经过这台代理主机,来间接访问网络。
    因此这台代理主机可以判断允许哪些主机可以上网。

  • 数据过滤
    主机通过代理来访问目标服务器,代理就可以判断哪些数据可以返回给主机,从而达到数据过滤的作用。

  • 其他

绕过防火墙.png
  • 一些免费的正向代理
    使用下面的网页提供的ip地址和端口,设置网络代理,理论上可以通过代理服务器访问一些无法访问的网页。
    https://ip.jiangxianli.com/
    https://www.kuaidaili.com/free/inha/
    但是本人用mac电脑亲测无用!!!浏览器会阻止所有使用代理服务器的页面,如果有哪位朋友知道,可以评论区指点一下。

反向代理的作用

  • 隐藏服务器身份
    客户端只知道代理的身份,不知道服务器真实的身份。

  • 安全防护
    客户端无法直接访问到服务器,所以服务器要相对安全一些。

  • 负载均衡
    客户端访问量过大的时候,一台服务器会无法处理这么大的访问。这时候通过一台代理服务器,所有客户端访问代理服务器,代理服务器将消息转发给多台服务器,将压力分摊。虽然代理服务器也承受了很多访问,但是它不需要处理大量的逻辑,只需要转发,所以它能承受的住。

负载均衡.png

抓包工具的原理

  • Fiddler、Charles等抓包工具的原理:在客户端启动了正向代理服务
  • Wireshark的原理是:通过底层驱动,拦截网卡上流过的数据
图片.png

相关的头部信息

  • Via: 追加经过的每一 台代理服务器的主机名(或域名)
  • X-Forwarded-For: 追加请求方的IP地址
  • X-Real-IP: 客户端的真实IP地址
图片.png

CDN

  • CDN (Content Delivery Network或Content Distribution Network) ,译为:内容分发网络
    利用最靠近每位用户的服务器,更快更可靠地将音乐、图片、视频等资源文件(一般是静态资源)传递给用户

  • CDN运营商在全国、乃至全球的各个大枢纽城市都建立了机房
    1、部署了大量拥有高存储高带宽的节点,构建了一个跨运营商、跨地域的专用网络
    2、内容所有者向CDN运营商支付费用,CDN将其内容交付给最终用户
    3、有些大公司也会自己部署CDN

对比图右为CDN.png 使用CDN前后.png

使用CDN前

流程图.png

图解:
主机访问一个资源链接,会先到DNS服务器查询资源的服务器地址,拿到地址后就去该地址拿到资源。

使用CDN后

流程图.png

图解:
主机访问一个资源链接,会先到DNS服务器查询资源的服务器地址,DNS服务器发现这是个CDN资源就会转到CDN DNS服务器查询CDN全局负载均衡系统地址,查到CDN全局负载均衡系统地址后返回给主机。主机再去访问CDN全局负载均衡系统地址,CDN全局负载均衡系统会查找到CDN区域负载均衡系统,CDN区域负载均衡系统返回给主机一个最近的CDN缓存服务器的地址。主机最后访问CDN缓存服务器地址拿到最近的服务器资源。

图片.png
  • CDN可能有好多层父节点
  • 如果主机向分配的边缘节点请求资源,节点没有这个资源,会向父节点请求,如果父节点也没有,会一直向上层节点请求,最终向源站请求。源站再将该资源依次保存到下一层节点,最后一直到主机。

CDN的一些实际应用

cdn资源地址可以下载一些常用的js三方库,速度会比较快。当然一些框架的官网也会提供CDN的下载地址。

例如h5项目中下载jquery

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

相关文章

网友评论

      本文标题:小马哥网络课笔记26------代理、CDN

      本文链接:https://www.haomeiwen.com/subject/cymerrtx.html