HTTP协议_HTTP如何传输_HTTP代理
HTTP,浏览器,服务器,CDN,爬虫,TCP/IP,DNS,URI/URL,HTTPS,代理
HTTP协议_HTTP如何传输_HTTP代理-MakerLi

1.HTTP 是超文本传输协议,也就是HyperText Transfer Protocol

它可以拆成三个部分,分别是:“超文本”“传输”和“协议”。

  • 协议:HTTP 是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。
  • 传输:双向的数据传输。
  • 超文本:包括但不仅限于文本、图片、音频、视频等
HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范

它不存在单独的实体,但是与各种实体密切相关。它不是互联网,但是确是互联网不可或缺的一部分。

2.浏览器是什么

浏览器的正式名字叫“Web Browser”,本质上是一个 HTTP 协议中的请求方,使用 HTTP 协议获取网络上的各种资源。

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

3.服务器是什么

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

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

软件:提供 Web 服务的应用程序,通常会运行在硬件含义的服务器上,有Apache、Nginx、IIS、Tomcat

4.CDN是什么

CDN,全称是“Content Delivery Network”,翻译过来就是“内容分发网络”。它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。它可以缓存源站的数据,让浏览器的请求不用“千里迢迢”地到达源站服务器,直接在“半路”就可以获取响应。 好的CDN可以找到离用户最近的节点,大幅度缩短响应时间。

5.爬虫是什么

爬虫指的是一种可以自动访问 Web 资源的应用程序。互联网上至少有 50% 的流量都是由爬虫产生的。robots.txt,约定哪些该爬,哪些不该爬。主要用到的技术就是http与html

6.TCP/IP是什么

它是目前网络世界“事实上”的标准通信协议,TCP 属于“传输层”,IP 属于“网际层”。

IP协议是“Internet Protocol”的缩写,主要目的是解决寻址和路由问题,以及如何在两点间传送数据包。IP 协议使用“IP 地址”的概念来定位互联网上的每一台计算机。

IPv4 版,地址是四个用“.”分隔的数字,例如“192.168.0.1”,总共有 2^32,大约 42 亿个可以分配的地址.

IPv6 版,使用 8 组“:”分隔的数字作为地址,容量扩大了很多,有 2^128 个。

TCP 协议是“Transmission Control Protocol”的缩写,意思是“传输控制协议”,它位于 IP 协议之上,基于 IP 协议提供可靠的、字节流形式的通信,是 HTTP 协议得以实现的基础。

“可靠”是指保证数据不丢失,“字节流”是指保证数据完整,所以在 TCP 协议的两端可以如同操作文件一样访问传输的数据,就像是读写在一个密闭的管道里“流动”的字节。

7.DNS是什么

域名系统”(Domain Name System)用有意义的名字来作为 IP 地址的等价替代。域名用“.”分隔成多个单词,级别从左到右逐级升高,最右边的被称为“顶级域名”。

使用 TCP/IP 协议来通信仍然要使用 IP 地址,所以需要把域名做一个转换,“映射”到它的真实 IP,这就是所谓的“域名解析”。目前全世界有 13 组根 DNS 服务器,下面再有许多的顶级 DNS、权威 DNS 和更小的本地 DNS,逐层递归地实现域名查询。

8.URI/URL是什么

URI(Uniform Resource Identifier),中文名称是 统一资源标识符,它能够唯一地标记互联网上资源。另一个更常用的表现形式是 URL(Uniform Resource Locator), 统一资源定位符,也就是我们俗称的“网址”,它实际上是 URI 的一个子集,

举个例子:

http://nginx.org/en/download.html

协议名:即访问该资源应当使用的协议,在这里是“http”;
主机名:即互联网上主机的标记,可以是域名或 IP 地址,在这里是“nginx.org”;
路径:即资源在主机上的位置,使用“/”分隔多级目录,在这里是“/en/download.html”。

9.HTTPS是什么

它的全称是“HTTP over SSL/TLS”,也就是运行在 SSL/TLS 协议上的 HTTP。它是一个负责加密通信的安全协议,建立在 TCP/IP 之上,所以也是个可靠的传输协议,可以被用作 HTTP 的下层。

SSL 的全称是“Secure Socket Layer”,由网景公司发明,当发展到 3.0 时被标准化,改名为 TLS,即“Transport Layer Security”,但由于历史的原因还是有很多人称之为 SSL/TLS,或者直接简称为 SSL。

SSL 使用了许多密码学最先进的研究成果,综合了对称加密、非对称加密、摘要算法、数字签名、数字证书等技术,能够在不安全的环境中为通信的双方创建出一个秘密的、安全的传输通道,为 HTTP 套上一副坚固的盔甲。

10.代理是什么

代理(Proxy)是 HTTP 协议中请求方和应答方中间的一个环节,作为“中转站”,既可以转发客户端的请求,也可以转发服务器的应答。

代理有很多的种类,常见的有:

  1. 匿名代理:完全“隐匿”了被代理的机器,外界看到的只是代理服务器;
  2. 透明代理:顾名思义,它在传输过程中是“透明开放”的,外界既知道代理,也知道客户端;
  3. 正向代理:靠近客户端,代表客户端向服务器发送请求;
  4. 反向代理:靠近服务器端,代表服务器响应客户端的请求;

由于代理在传输过程中插入了一个“中间层”,所以可以在这个环节做很多有意思的事情,比如:

  1. 负载均衡:把访问请求均匀分散到多台机器,实现访问集群化;
  2. 内容缓存:暂存上下行的数据,减轻后端的压力;
  3. 安全防护:隐匿 IP, 使用 WAF 等工具抵御网络攻击,保护被代理的机器;
  4. 数据处理:提供压缩、加密等额外的功能。
引用2019年罗剑峰的透视HTTP协议