说明
《透视HTTP协议》是
罗剑锋
(奇虎360技术专家)在极客时间开的一门专栏课,笔者记录一下学习笔记,仅供参考。
思维导图
TCP/IP
TCP/IP
协议是一系列网络通信协议的统称,核心: TCP 和 IP,其他: UDP、ICMP、ARP 等等。
IP
IP 协议是
Internet Protocol
的缩写,主要目的是解决寻址和路由问题,以及如何在两点间传送数据包。
TCP
TCP 协议是
Transmission Control Protocol
的缩写,即传输控制协议
,它位于 IP 协议之上,基于 IP 协议提供可靠的、字节流形式的通信。
DNS
域名系统(Domain Name System),用有意义的名字来作为 IP 地址的等价替代。
- 1、在 DNS 中,
域名
(Domain Name)又称为主机名
(Host) - 2、域名用
.
分隔成多个单词,级别从左到右逐级升高,最右边的被称为顶级域名
- 3、表示商业公司的
com
,表示教育机构的edu
,表示国家的cn,uk
- 4、把域名做一个转换,
映射
到它的真实 IP,这就是所谓的域名解析
。
URI/URL
DNS 和 IP 地址只是标记了互联网上的主机,要访问网络上的资源就需要用到 URI。
URI(Uniform Resource Identifier),即统一资源标识符,使用它就能够唯一地标记互联网上资源。
URL(Uniform Resource Locator), 即统一资源定位符,也就是俗称的网址,它实际上是 URI 的一个子集,两者几乎是相同的,差异不大,通常不会做严格的区分。
用Nginx网站为例了解一下 URI:
http://nginx.org/en/download.html
URI 主要有三个基本的部分构成:
协议名
:即访问该资源应当使用的协议,在这里是http
主机名
:即互联网上主机的标记,可以是域名或 IP 地址,在这里是nginx.org
路径
:即资源在主机上的位置,使用/
分隔多级目录,在这里是/en/download.html
HTTPS
HTTP over SSL/TLS
,也就是运行在SSL/TLS
协议上的 HTTP。
SSL:全称是Secure Socket Layer,由网景公司发明,当发展到 3.0 时被标准化,改名为 TLS,即Transport Layer Security,但由于历史的原因还是有很多人称之为 SSL/TLS,或者直接简称为 SSL。
SSL使用了许多密码学最先进的研究成果
对称加密
非对称加密
摘要算法
数字签名
数字证书…
代理
代理(Proxy)是 HTTP 协议中请求方和应答方中间的一个环节,作为
中转站
,既可以转发客户端的请求,也可以转发服务器的应答。
代理的种类:
匿名代理
:完全“隐匿”了被代理的机器,外界看到的只是代理服务器透明代理
:顾名思义,它在传输过程中是“透明开放”的,外界既知道代理,也知道客户端正向代理
:靠近客户端,代表客户端向服务器发送请求反向代理
:靠近服务器端,代表服务器响应客户端的请求
CDN,实际上就是一种代理,它代替源站服务器响应客户端的请求,通常扮演着透明代理和反向代理的角色。
代理是 HTTP 传输过程中的中转站,可以实现:
负载均衡:把访问请求均匀分散到多台机器,实现访问集群化
内容缓存:暂存上下行的数据,减轻后端的压力
安全防护:隐匿 IP, 使用 WAF 等工具抵御网络攻击,保护被代理的机器
数据处理:提供压缩、加密等额外的功能