>[success] # HTTP -- 相关的协议 ~~~ 1.弄清楚' TCP/IP、DNS、URI、HTTPS ' 和 'HTTP' 关系 ~~~ >[danger] ##### TCP/IP ~~~ 1.TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议) 是指能够在多个不同网络间实现信息传 2.TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议 3.'TCP'是一种面向连接的、可靠的、基于字节流的'传输层通信协议' 4.'IP' 协议是解决寻址和路由问题,以及如何在两点间传送数据包,IP 协议使用“IP 地址”的概念来定位互联网 上的每一台计算机,可以理解成打电话时候电话号码,唯一地址可以找到要访问的位置 ~~~ * HTTP 和 TCP/IP ~~~ 1.HTTP 是一个"传输协议",但它不关心寻址、路由、数据完整性等传输细节,而要求这些工作都由下层来处理。 因为互联网上最流行的是 TCP/IP 协议,而它刚好满足 HTTP 的要求,所以互联网上的 HTTP 协议就运行在了 TCP/IP 上 ~~~ >[danger] ##### DNS -- 域名系统 ~~~ 1.现在有了'IP',为让数字变得容易记这时候就有了域名,在 DNS 中,'域名'(Domain Name)又称为'主机名'(Host) 2.域名用'.'分隔成多个单词,级别从左到右逐级升高,最右边的被称为'顶级域名',常见的'顶级域名','com','cn' 3.想要让'ip' 和域名相互转换映射需要'域名解析' ~~~ * DNS 和 HTTP ~~~ HTTP 协议中并没有明确要求必须使用 DNS,但实际上为了方便访问互联网上的 Web 服务器, 通常都会使用 DNS 来定位或标记主机名,间接地把 DNS 与 HTTP 绑在了一起。 ~~~ >[danger] ##### URI/URL ~~~ 1.DNS 和 IP 地址只是标记了互联网上的主机,那要想获取主机上的更多资源例如'多文本、图片、页面' 就需要 URI(Uniform Resource Identifier),中文名称是 统一资源标识符,使用它就能够唯一地标记互联网上资源 2.URI 另一个更常用的表现形式是 URL(Uniform Resource Locator), 统一资源定位符,也就是我们俗称的'网址', 它实际上是 URI 的一个子集,不过因为这两者几乎是相同的,差异不大,所以通常不会做严格的区分。 ~~~ * 举个例子 ~~~ http://nginx.org/en/download.html 1.协议名:即访问该资源应当使用的协议,在这里是'http' 2.主机名:即互联网上主机的标记,可以是域名或 IP 地址,在这里是'nginx.org'; 3.路径:即资源在主机上的位置,使用'/'分隔多级目录,在这里是'/en/download.html'。 ~~~ >[danger] ##### HTTPS ~~~ 1.全称是'HTTP over SSL/TLS',也就是运行在 SSL/TLS 协议上的 HTTP。 2.这里是 SSL/TLS,而不是 TCP/IP,它是一个负责加密通信的安全协议,建立在 TCP/IP 之上, 因此HTTPS 相当于'HTTP+SSL/TLS+TCP/IP' 3.SSL 的全称是'Secure Socket Layer',发展到 3.0 时被标准化,改名为 TLS,即'Transport Layer Security', ,但由于历史的原因还是有很多人称之为 SSL/TLS,或者直接简称为 SSL 4.SSL 使用了许多密码学最先进的研究成果,综合了对称加密、非对称加密、摘要算法、数字签名、数字证书等技术 5.够在不安全的环境中为通信的双方创建出一个秘密的、安全的传输通道,为 HTTP 套上一层加密 ~~~ >[danger] ##### 代理 ~~~ 1.代理(Proxy)是 HTTP 协议中请求方和应答方中间的一个环节,作为'中转站',既可以转发客户端的请求, 也可以转发服务器的应答 2.可以实现缓存加速、负载均衡等功能。 3.常见的代理种类: 3.1.匿名代理:完全“隐匿”了被代理的机器,外界看到的只是代理服务器; 3.2.透明代理:顾名思义,它在传输过程中是“透明开放”的,外界既知道代理,也知道客户端; 3.3.正向代理:靠近客户端,代表客户端向服务器发送请求;反向代理:靠近服务器端,代表服务器响应 客户端的请求; 注:CDN属于'透明代理和反向代理' 4.代理在传输过程中插入了一个'中间层'能做什么: 4.1.负载均衡:把访问请求均匀分散到多台机器,实现访问集群化; 4.2.内容缓存:暂存上下行的数据,减轻后端的压力; 4.3.安全防护:隐匿 IP, 使用 WAF 等工具抵御网络攻击,保护被代理的机器; 4.4.数据处理:提供压缩、加密等额外的功能。 ~~~