与HTTP相关的各种概念

说明

《透视HTTP协议》罗剑锋 (奇虎360技术专家)在极客时间开的一门专栏课,笔者记录一下学习笔记,仅供参考。

网络世界

1、通常所说的“上网”实际*问的只是互联网的一个子集“万维网”(World Wide Web)

World Wide Web 它基于 HTTP 协议,传输 HTML 等超文本资源,能力也就被限制在 HTTP 协议之内。

2、互联网上还有许多万维网之外的资源

例如常用的电子邮件、BT 和 Magnet 点对点下载、FTP 文件下载、SSH 安全登录、各种即时通信服务等等,它们需要用各自的专有协议来访问。

浏览器

浏览器的正式名字叫“Web Browser”,顾名思义,就是检索、查看互联网上网页资源的应用程序

与HTTP相关的各种概念

Chrome、Firefox、Safari、IE、Edge、Opera。。。

浏览器本质上是一个 HTTP 协议中的请求方,使用 HTTP 协议获取网络上的各种资源。集成了很多额外的功能

比如:HTML 排版引擎用来展示页面,JavaScript 引擎用来实现动态化效果,甚至还有开发者工具用来调试网页,等等插件和扩展。

在 HTTP 协议里,浏览器的角色被称为“User Agent”即“用户代理”,作为访问者的“代理”来发起 HTTP 请求。

Web 服务器

浏览器是 HTTP 里的请求方,另一端的应答方(响应方)就是服务器Web Server

Web 服务器两个层面的含义:

硬件含义:物理形式或“云”形式的机器

软件含义:提供 Web 服务的应用程序

ApacheNginx、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 协议传输 XMLSOAP 消息,也就是说,它是一个基于 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,是自动访问网络资源的程序