美文网首页一日一练(极客时间+C4D)
03_透视HTTP协议_HTTP世界全览(上):与HTTP相关的

03_透视HTTP协议_HTTP世界全览(上):与HTTP相关的

作者: alphonseLin | 来源:发表于2019-06-07 18:47 被阅读0次

    框架图

    HTTP主要框架-实际应用

    细分

    网络世界

    首先我们从最开始的地方去观察,现在的网络情况,“它其实像是一段平坦而又一望无际的巨大网络,每一台电脑就是网络上的一个节点,均匀地点缀在这个网络上。”
    但其实现实中的网络肯定比这个会更复杂,实际中的互联网是由许许多多个规模略小的网络连接而成,这些小网络中,可能有几百台电脑的局域网也有可能是几万几十万台的广域网,可能是用电脑光纤构成的固定网络,也可能是用基站热点构成的移动网络。

    所以互联网世界它更像是数不清的大小岛屿组成的千岛之国。
    所以互联网的正式名称为internet里面存储着无穷无尽的信息资源,我们通常所说的上网,实际上访问的只是互联网的一个子集,万维网,是基于HTTP协议传输HTML等超文本协议能力,也就被限制在HTTP协议之内。

    所以这么来看的话,互联网上面还有很多万维网之外的资源,例如电子邮件,BT和magnet点对点下载,FTP文件下载,SSH安全登录,各种即时通信服务等等, 他们需要用各自的专有协议来访问。

    不过由于HTTP协议非常灵活,易于扩展,且超文本的表述能力极强,所以很多原本不属于HTTP的资源也可以包装成HTTP来访问,这就是为什么我们总能看到各种网页端应用的原因。比如说微信网页版+邮箱网页版。

    所以综合来看,现在的互联网90%以上的部分都被往往也就是HTTP所覆盖,所以把互联网约等于万维网或HTTP,也不算错。

    浏览器

    浏览器的正式名字叫做web browser,顾名思义就是检索查看互联网上网页资源的应用程序,名字里面的web,其实就是指的万维网。浏览器本质上是HTTP协议中的一个请求方,使用HTTP协议获取网络上的各种资源。当然,为了让我们更好的检索,查看网页,它还集成了很多额外的功能。

    1. 比如HTML排版引擎来展示页面
    2. JavaScript来使用动态化效果
    3. 还有开发者工具来调试网页,
      ...
      所以说,在HTTP协议里面浏览器的角色被叫为User Agent,即用户代理。意思就是作为访问者的代理来发起HTTP请求,但是我们一般还是都叫作为客户端。

    web服务器

    我们刚才说浏览器它是HTTP里面的一个请求方,那应答方是什么?
    其实就是服务器,web server。
    服务器,是HTTP协议里面响应请求的主体,把控着绝大多数的网络资源,在网络世界里面处于强势地位。所以当我们在谈到web服务器时有两个层面的含义,一个是硬件,一个是软件。

    硬件

    就是物理型是货运形式的机器,在大多数情况下可能不是一台机器,而是利用反向代理负载均衡等技术组成的庞大集群,但从外界来看,它可能仍然是一台机器,但这个形象它是虚拟的。

    软件

    那这个服务器,它就是提供web服务的应用程序,通常会运行在硬件含义上的服务器上。利用强大的硬件能力,响应海量的客户端需求,处理磁盘上网页图片等静态文件或者把请求发送给后面的Tomcat, Node.js等业务应用,返回动态的信息。
    所以这其中有三个主要的服务器,

    1. Apache,是老牌的服务器,已经有25年了,功能相当完善,相关的资料很多,新门槛低,是许多创业者建站的入门产品。
    2. Nginx,是web服务器里面的后起之秀,特点就是高性能,高稳定,易于扩展。和Apache在竞争市场。
    3. Windows上的IIS+java的Jetty/Tomcat,但因为性能不高,所以在互联网应用上就比较少。

    CDN

    我们上面说到浏览器和服务器,它是HTTP里面的两个端点,那么这两个端点之间还有什么别的东西吗?
    中间有个重要的东西就叫cdn,content delivery network,内容分发网络,可以用的HTTP协议里面的缓存和代理技术,代替源站响应客户端的请求。

    好处

    它可以缓存源站的数据,让浏览器的请求不用到达源站,服务器直接在半路上就可以获取响应。如果cdn调度算法很优秀,更可以找到离用户最近的节点,大幅度的缩短响应时间。
    所以呢,cdn也是现在互联网中一个重要的基础设施,除了基本的网络加速外还提供负载均衡、安全防护、边缘计算、跨运营商网络等功能,能够成倍地放大源站服务器的服务能力。

    爬虫

    我们刚才提到浏览器,它是一种用户代理,代替我们去访问互联网。
    但是HTTP协议里面并没有规定用户代理就必须是真正的人类,它也完全可以是机器人,这些机器人的名字就叫爬虫,是一种可以自动访问web资源的应用程序。
    爬虫的来源
    一般都是由各大搜索引擎放出来的,抓取网页,存入庞大的数据库,在建立关键字,所以这样我们才能够在搜索引擎中,快速的搜索到互联网的角落。
    不好的一面
    被过度的消耗网络资源,占用服务器和带宽,影响网站对真实数据的分析,甚至导致敏感数据泄漏。所以这时候就有了各种反爬虫技术。但不管他们是爬虫或者爬虫用到的基本技术就只有两个,一个是HTTP,一个就是HTML

    HTML

    HTML是HTTP协议里传输的主要内容之一,它描述了超文本页面,用各种标签定义文字图片等资源和排版布局,最终由浏览器渲染得出,可视化界面

    WebService

    是一种W3C定义的应用服务开发规范,使用Client-Server主从架构,通常使用WSDL定义服务接口,使用HTTP协议传输XML或SOAP消息,也就是说它是一个基于web(HTTP)的服务架构技术,可以运行在内网,也可以运行在外网。

    WAF

    他是网络应用防火墙,是属于应用层面的防火墙,专门检测HTTP流量,是防护Web应用的安全技术。
    waf,通常位于web服务器之前,可以组织如SQL注入、跨站脚本等攻击,目前应用较多的一个开源项目是,ModSecurity, 他能够完全集成进Apache或Nginx。

    小结

    1. 互联网上绝大部分资源都是HTTP协议传输
    2. 浏览器是HTTP协议里面的请求方,即User Agent
    3. 服务器是HTTP协议里面的应答方,常用的有Apache和Nginx
    4. CDN,位于浏览器和服务器之间,主要起到缓存加速的作用
    5. 爬虫,是另一类User agent,是自动访问网络资源的程序

    相关文章

      网友评论

        本文标题:03_透视HTTP协议_HTTP世界全览(上):与HTTP相关的

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