(认知扫盲)HTTP相关的各种概念(上)

214 阅读3分钟

关键词:

User Agent(用户代理)、Web Server、CDN、爬虫、Web Service、WAF

释义:

- User Agent:
    即用户代理。在HTTP协议里,作为访问者“代理”角色来发起请求,通常称为浏览器,为了避免混淆,也称为
    客户端。(别人吹牛:你知道HTTP协议中的用户代理嘛?我:客户端就客户端,莫装!)
- Web Server:
    即服务器。在HTTP协议里,作为另一端(应答放)来接收请求并作出响应。(可恶,又被装到了,不就是服务器嘛?)
- Web Service:
    一种跨变成语言和跨操作系统平台的远程调用技术。
- CDN:
    即内容分发网络。他应用了HTTP中的缓存和代理技术,代替源站响应客户端的请求。
- 爬虫:
    一种自动访问Web资源的应用程序,是浏览器以外另一类用户代理。
- WAF:
    网站应用级入侵防御系统。

User Agent

在HTTP协议里,浏览器的角色被称为“User Agent”,即“用户代理”。意思就是作为访问者的代理来发起HTTP请求。不过为了避免混淆,通常称为“客户端”。

Web Server

HTTP协议里的“应答方”,其实就是我们所熟悉的“服务器”。谈到Web服务器,有两个层面。 一个层面是硬件,就是以物理形式或者“云”形式存在的机器;但是很多情况下,它都不是一台简单的服务器,而是利用负载均衡、反向代理集成的庞大集群。

另一个层面是软件,就是提供Web服务的应用程序。它利用强大的硬件能力,响应客户端的HTTP请求,处理磁盘上的文件,或者把请求转给后面的NodeJs、Tomcat等业务应用,返回数据库存储的动态信息。

Web Service

Web Service看起来和Web Server很像,但两者完全不是一个东西。Web Service是W3C定义的一个应用服务开发规范,通常用WSDL定义服务开发接口,使用HTTP协议传输XML或SOAP消息。总的来说,他是一种基于Web的服务架构技术。

由于采用了HTTP协议,在Web Service服务架构里服务器和客户端可以使用不同的操作系统或变成语言开发,例如:服务端使用Linux + Java,客户端用Windows + C#。具有在跨平台跨语言的优点。博主在刚毕业从事.NET开发的一段时间里,接触过Web Service,但是之后的应用环境特别少。

CDN

CDN全称,内容分发网络,它应用了HTTP里面的缓存和代理技术(代替源站响应客户端请求)。CDN在互联网中的应用可能你只听说过网络加速,其实它在负载均衡、安全防护、边缘计算和跨运营商网络等方面也有杰出的贡献。

爬虫

前面我们说,浏览器在互联网里,是用户代理。但是HTTP并没有规定用户代理的背后必须是真正的人类,它也完全可以是机器人。这些机器人的真正名称就是“爬虫”。他其实就是一种可以自动发起Web资源访问的应用程序。

爬虫的由来多数都是来自各大搜索引擎厂商,抓取页面存入庞大的数据库,再建立关键字索引,这便于我们可以在搜索一引擎里查阅各类资源。但爬虫也有不好的一面,它占用服务器带宽,误导网站对真实数据的分析,隐私安全信息泄露等,所以也相对出现了“反爬虫”技术。归根结底,无论是“爬虫”还是“反爬虫”,他们的基础技术只有两个:“HTTP”和“HTML”。

冷知识: 据估计,网络中50%的流量都是由爬虫发起的。

WAF

WAF又称“网络应用防火墙”。与计算机“防火墙”类似,它是应用层面的防火墙,专门监测HTTP流量,是防护Web应用的安全技术。