HTTP相关概念

101 阅读3分钟

1.HTTP是什么?

HTTP即超文本传输协议。它是计网体系中一个应用层的协议,它确立了计算机与计算机之间进行通信的规范以及相关控制和错误处理方式;遵循它的规范,就可以进行端到端的数据传输,传输的数据类型不仅仅可以是文本,还可以是HTML文档、图片、音视频等超文本类型的网络资源。HTTP 是构建互联网的重要基础技术,它没有实体,依赖许多其他的技术来实现,但同时许多技术也都依赖于它。

2.与HTTP相关的各种概念:

浏览器:

上网就要用到浏览器,常见的浏览器有 Google 的 Chrome、Mozilla 的 Firefox、Apple 的 Safari、Microsoft 的 IE 和 Edge,还有小众的 Opera。

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

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

Web服务器:

它是** HTTP 协议里响应请求的主体,**通常也把控着绝大多数的网络资源,在网络世界里处于强势地位。

CDN:

浏览器和服务器是 HTTP 协议的两个端点,那么,在这两者之间还有别的什么东西吗?当然有了。浏览器通常不会直接连到服务器,中间会经过“重重关卡”,其中的一个重要角色就叫做 CDN。CDN,全称是“Content Delivery Network”,翻译过来就是“内容分发网络”。它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。

使用CDN的好处:

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

  • CDN 也是现在互联网中的一项重要基础设施,除了基本的网络加速外,还提供负载均衡、安全防护、边缘计算、跨运营商网络等功能,能够成倍地“放大”源站服务器的服务能力,减轻源服务器的压力。

爬虫:

前面说到过浏览器,它是一种用户代理,代替我们访问互联网。但 HTTP 协议并没有规定用户代理后面必须是“真正的人类”,它也完全可以是“机器人”,这些“机器人”的正式名称就叫做“爬虫”(Crawler),实际上是一种可以自动访问 Web 资源的应用程序。 爬虫是另一类 User Agent,是自动访问网络资源的程序。

爬虫是怎么来的呢?

绝大多数是由各大搜索引擎“放”出来的,抓取网页存入庞大的数据库,再建立关键字索引,这样我们才能够在搜索引擎中快速地搜索到互联网角落里的页面。爬虫也有不好的一面,它会过度消耗网络资源,占用服务器和带宽,影响网站对真实数据的分析,甚至导致敏感信息泄漏。所以,又出现了“反爬虫”技术,通过各种手段来限制爬虫。其中一项就是“君子协定”robots.txt,约定哪些该爬,哪些不该爬。无论是“爬虫”还是“反爬虫”,用到的基本技术都是两个,一个是 HTTP,另一个就是 HTML。

HTML:

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