美文网首页
小马哥网络课笔记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