网络世界
1、通常所说的“上网”实际上访问的只是互联网的一个子集“万维网
”(World Wide Web)
World Wide Web 它基于 HTTP 协议,传输 HTML 等超文本资源,能力也就被限制在 HTTP 协议之内。
2、互联网上还有许多万维网之外的资源
例如常用的电子邮件、BT 和 Magnet 点对点下载、FTP 文件下载、SSH 安全登录、各种即时通信服务等等,它们需要用各自的专有协议来访问。
浏览器
浏览器的正式名字叫“
Web Browser
”,顾名思义,就是检索、查看互联网上网页资源的应用程序
Chrome、Firefox、Safari、IE、Edge、Opera。。。
浏览器本质上是一个 HTTP 协议中的请求方
,使用 HTTP 协议获取网络上的各种资源。集成了很多额外的功能
比如:HTML 排版引擎用来展示页面,JavaScript 引擎用来实现动态化效果,甚至还有开发者工具用来调试网页,等等插件和扩展。
在 HTTP 协议里,浏览器的角色被称为“User Agent
”即“用户代理
”,作为访问者的“代理
”来发起 HTTP 请求。
Web 服务器
浏览器是 HTTP 里的请求方
,另一端的应答方(响应方)
就是服务器
,Web Server
。
Web 服务器两个层面的含义:
硬件含义:物理形式或“云”形式的机器
软件含义:提供 Web 服务的应用程序
Apache
、Nginx
、Windows 上的 IIS、Java 的 Jetty/Tomcat 等
CDN
CDN,全称
Content Delivery Network
(内容分发网络
)。应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。
好处:它可以缓存源站的数据。如果 CDN 的调度算法很优秀,更可以找到离用户最近的节点,大幅度缩短响应时间。
其他:CDN 除了基本的网络加速
外,还提供负载均衡
、安全防护
、边缘计算
、跨运营商网络
等功能
爬虫
“
爬虫
”(Crawler),实际上是一种可以自动访问 Web 资源
的应用程序。
1、来源:绝大多数爬虫
是由各大搜索引擎“放”出来的,抓取网页存入庞大的数据库,再建立关键字索引,这样我们才能够在搜索引擎中快速地搜索到互联网角落里的页面。
2、爬虫坏处:它会过度消耗网络资源,占用服务器和带宽,影响网站对真实数据的分析,甚至导致敏感信息泄漏。
3、“君子协定”:robots.txt
约定哪些该爬,哪些不该爬。
4、基本技术:无论是“爬虫
”还是“反爬虫
”,用到的基本技术都是两个,一个是 HTTP
,另一个就是 HTML
。
HTML/WebService/WAF
1、HTML 是 HTTP 协议传输的主要内容之一,它描述了超文本页面,用各种“标签”定义文字、图片等资源和排版布局,最终由浏览器“渲染”出可视化页面。
2、Web Service:是一种由 W3C
定义的应用服务开发规范,使用 client-server
主从架构,通常使用 WSDL
定义服务接口,使用 HTTP
协议传输 XML
或 SOAP
消息,也就是说,它是一个基于 Web(HTTP)的服务架构技术
,既可以运行在内网,也可以在适当保护后运行在外网。
3、WAF:是“网络应用防火墙
”。与硬件“防火墙
”类似,它是应用层面的“防火墙”,专门检测 HTTP 流量
,是防护 Web 应用的安全技术。
WAF 通常位于 Web 服务器之前,可以阻止如 SQL 注入
、跨站脚本
等攻击,目前应用较多的一个开源项目是 ModSecurity
,它能够完全集成进 Apache 或 Nginx。
要点小结
1、互联网上绝大部分资源都使用 HTTP 协议传输
2、浏览器是 HTTP 协议里的请求方,即 User Agent
3、服务器是 HTTP 协议里的应答方,常用的有 Apache 和 Nginx
4、CDN 位于浏览器和服务器之间,主要起到缓存加速的作用
5、爬虫是另一类 User Agent,是自动访问网络资源的程序