03-与HTTP相关的各种概念

        与HTTP相关的各种应用,互联网、浏览器、Web服务器常见的重要概念。

        网络世界

        我们已经习惯了现在的网络生活,甚至可能会下意识地认为网络世界就应该是这个样子的:“一张平坦而且一望无际的的巨大网络,每一台电脑就是网络上的一个节点,均匀的点缀在这张网上”。这样的理解既对,又不对。从抽象的、虚拟的层面来看,网络世界确实是这样的,我们可以从一个节点毫无障碍的访问到另一个节点。但是现实的网络世界却比这个抽象的模型要复杂的多。实际的互联网是由许许多多个规模略小的网络连接而成的,这些“小网络”可能是只有几百台电脑的局域网,可能是有几万、几十万台电脑的广域网,可能是用电缆、光纤构成的固定网络,也可能是用基站、热点构成的移动网络......

        互联网世界更像是由数不清大小的岛屿组成的“千岛之国”。

        互联网的正式名称是Internet,里面存储着无穷无尽的信息资源,我们通常所说的“上网”实际上访问的知识互联网的一个子集“万维网”,它基于HTTP协议,传输HTML等超文本资源,能力也就被限制在HTTP协议之内。

        互联网上还有许多万维网之外的资源,例如常用的电子邮件、BT和Magent点对点下载、FTP文件下载、SSH安全登录、各种即时通信服务等等,它们需要用格子的专有协议来访问。

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

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

        浏览器

        上网就要用到浏览器,常见的浏览器Chrome、FireFox、Safari、IE、Edge以及国内各种的极速浏览器。那么浏览器到底是什么东西呢?

        浏览器的正式名字叫做Web Browser,顾名思义,就是检索、查看互联网上网页资源的应用程序,名字里的Web,实际上指的是World Wide Web,也就是万维网。

        浏览器本质是是一个HTTP的请求方,使用HTTP协议获取网络上的各种资源。当然,为了让我们能够更好的检索查看网页,它还集成了很多额外的功能。

        例如,HTML排版引擎用来展示页面,JavaScript引擎来实现动态化效果,甚至还有开发者工具来调试网页,以及五花八门的各种插件和扩展。

        在HTTP协议里,浏览器的角色被称为User Agent即用户代理,意思是作为访问者的代理来发起HTTP请求,不过在不引起混淆的情况下,我们通常简单的称之为“客户端”。

        Web服务器

        浏览器是HTTP里的请求方,那么协议的另一端的应答方就是服务器,Web Server。

        Web服务器是一个很大也很重要的概念,它是HTTP协议里响应请求的主体,通常把控着绝大多数的网络资源,在网络世界里处于强势地位。

        Web服务器有两层含义:硬件和软件。

        硬件含义就是物理形式或“云”形式的机器,在大多数情况下它可能不是一台服务器,而是利用反向代理、负载均衡等技术组成的庞大集群。但从外界来看,它仍然表现为一台机器,但这个形象是“虚拟的”。

        软件含义的Web服务器我们可能更为关心,它就是提供Web服务的应用程序,通常会运行在硬件含义的服务器上,它利用强大的硬件能力响应海量的客户端HTTP请求,处理磁盘上的网页、图片等静态文件,或者把请求转发给后面的Tomact、Node.js等业务应用,返回动态的信息。

        比起层出不穷的各种Web浏览器,Web服务器就要少很多了,APache、Nginx、IIS、Jetty、Tomact等。

        CDN

        浏览器和服务器是HTTP协议的两个端点,在这两者之间还有CDN。浏览器通常不会直接连到服务器,中间会经过重重关卡,其中一个重要角色就是CDN。

        CDN全称是Content Delivery Network,翻译过来就是内容分发网络。它应用了HTTP协议里的缓存和代理技术,代替了源站响应客户端的请求。

        CDN有什么好处呢?简单的说,它可以缓存源站的数据,让浏览器请求不用千里迢迢地到达源站服务器,直接在半路就可以获取响应。如果CDN的调度算法很优秀,更可以找到离用户更近的节点,大幅度缩短响应的时间。

        CDN也是现在互联网中的一项重要基础设施,除了基本的网络加速以外,还提供了负载均衡、安全防护、边缘计算、跨运营商网络等功能,能够成倍的放大源网站的服务器能力,很多云服务商都把CDN作为产品的一部分。

        爬虫

        浏览器是一种用户代理,代替人们访问网络。但HTTP协议并没有规定用户代理后面必须是人类,它也完全可以是机器人,这些机器人的真正名字叫做爬虫,实际上是一种可以自动访问Web资源的应用程序。

        爬虫这个名字非常形象,它们就像是一只只不知疲倦的、辛勤的蚂蚁,在无边无际的网络上爬来爬去,不停地在网站间奔走,搜集抓取各种信息。

        爬虫是怎么来的呢?绝大多数是由各大搜索引擎放出来的,抓取网页存入庞大的数据库,再建立关键字索引,这样我们才能够在搜索引擎中快速地搜索到互联网角落里的页面。

        爬虫也有不好的一面,它会过度消耗网络资源,占用服务器和带宽,影响网站对真实数据的分析,甚至导致敏感信息泄露。所以,又出现了反爬虫技术,通过各种手段来限制爬虫。其中一项就是robots.txt,约定了哪些该爬,哪些不该爬。

        无论是爬虫还是反爬虫,用到的基本技术都是两个,一个是HTTP,另一个就是HTML。

        HTML/WebService/WAF

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

        HTML目前有两个主要的标准,HTML4和HTML5。广义上的HTML通常是指HTML、JavaScript、CSS等前端技术的组合,能够实现比传统静态页面面更丰富的动态页面。

        Web Service和Web Server很像,但不是一个东西。Web Service是一种由W3C定义的应用服务开发规范,使用client-server主从架构,通常使用WSDL定义服务接口,使用HTTP协议传输XML或SOAP消息,也就是说,它是一个基于Web(HTTP)的服务架构技术,既可以运行在内网,也可以适当保护后台运行在外网。

        因为采用了HTTP协议传输数据,所以在Web Service架构里服务器和客户端可以采用不同的操作系统或编程语言开发。

        WAF意思是网络应用防火墙,与硬件的防火墙类似,它是应用层的防火墙,专门检测HTTP流量,是防护Web应用的安全技术。

        WAF通常位于Web服务器之前,可以阻止SQL注入、跨站脚本等攻击,目前应用较多的一个开源项目是ModeSecurity,它能够完全集成Apache和Nginx。

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值