3 与HTTP相关的各种协议
1 TCP/IP
TCP/IP是网络世界最常用协议,HTTP通常运行在TCP/IP提供的可靠传输基础上
IP 协议是“Internet Protocol”的缩写,主要目的是解决寻址和路由问题,以及如何在两点间传送数据包。
- IP 协议V4版本:地址是四个用“.”分隔的数字,容量2^32。
- IP 协议V6版本:地址是用八组“:”分隔的数字,容量2^128。
TCP协议是“Transmission Control Protocol”的缩写,意思是“传输控制协议”,它位于 IP 协议之上,基于 IP 协议提供可靠的、字节流形式的通信,是 HTTP 协议得以实现的基础。
- “可靠”是指保证数据不丢失
- “字节流”是指保证数据完整
所以在 TCP 协议的两端可以如同操作文件一样访问传输的数据,就像是读写在一个密闭的管道里“流动”的字节。
2 DNS
DNS域名是IP地址的等价替代,需要用域名解析实现到IP地址的映射
DNS:“域名系统”(Domain Name System)
- “域名”(Domain Name)也称为“主机名”(Host),用“.”分割多个单词,级别从左到右逐层提高。
- 最右边称为顶级域名,如 com 表示商业公司,edu 表示教育机构,cn ck 表示国家。
域名解析:把域名做转换,“映射”到它的真实IP。
3 URI/URL
URI是用来标记互联网上资源的一个名字,由“协议名+主机名+路径”构成,俗称 URL
URI(Uniform Resource Identifier),中文名称是 统一资源标识符,使用它就能够唯一地标记互联网上资源。
URL(Uniform Resource Locator), 统一资源定位符,也就是我们俗称的“网址”,它实际上是 URI 的一个子集,不过因为这两者几乎是相同的,差异不大,所以通常不会做严格的区分。
URI的三个基本的部分:
- 协议名:即访问该资源应当使用的协议,在这里是“http”;
- 主机名:即互联网上主机的标记,可以是域名或 IP 地址,如“nginx.org”;
- 路径:即资源在主机上的位置,使用“/”分隔多级目录,在如“/en/download.html”。
4 HTTPS
HTTPS相当于“HTTP+SSL/TLS+TCP/IP”,为HTTP套上一个安全的外壳
HTTPS 全称:“HTTP over SSL/TLS”,运行在SSL/TLS协议上的HTTP。
SSL 全称:“Secure Socket Layer”,是一个负责加密通信的安全协议,建立在 TCP/IP 之上,所以也是个可靠的传输协议,可以被用作 HTTP 的下层。
SSL发展到 3.0 时被标准化,改名为 TLS,即“Transport Layer Security”,但由于历史的原因还是有很多人称之为 SSL/TLS,或者直接简称为 SSL。
SSL 使用了许多密码学最先进的研究成果,综合了 对称加密、非对称加密、摘要算法、数字签名、数字证书 等技术,能够在不安全的环境中为通信双方创建出一个秘密的,安全的传输通道,为HTTP 套上一个盔甲。
5 代理
代理是HTTP传输过程中的“中转站”,可以实现缓存加速,负载均衡等功能。
代理(Proxy)是 HTTP 协议中请求方和应答方中间的一个环节,作为“中转站”,既可以转发客户端的请求,也可以转发服务器的应答。
代理有很多的种类,常见的有:
- 匿名代理:完全“隐匿”了被代理的机器,外界看到的只是代理服务器;
- 透明代理:顾名思义,它在传输过程中是“透明开放”的,外界既知道代理,也知道客户端;
- 正向代理:靠近客户端,代表客户端向服务器发送请求;
- 反向代理:靠近服务器端,代表服务器响应客户端的请求。
由于代理在传输过程中插入了一个“中间层”,所以可以在这个环节做很多有意思的事情,如:
- 负载均衡:把访问请求均匀分散到多台机器,实现访问集群化。
- 内容缓存:暂存上下行的数据,减轻后端的压力。
- 安全防护:隐匿IP 使用WAF 等工具抵御网络工具,保护被代理的机器。
- 数据处理:提供压缩、加密等额外的功能。