Open sakila1012 opened 6 years ago
在之前的工作中和面试的过程中,都会或多或少地涉及到这三方面的知识,但在遇到这些问题的时候,脑子确实一片空白,没有对这三个方面的内容有一个清晰的认识,仅仅停留在知道这三个字母而已。
需要对这三个方面的内容背景,功能,优势,不足深入的探究。
影响一个 HTTP 网络请求的因素主要有两个:带宽和延迟
带宽:如果说我们还停留在拨号上网的阶段,带宽可能会成为一个比较严重影响请求的问题,但是现在网络基础设施建设已经使得带宽得到极大的提升,我们不用担心由带宽而影响网速,那么只剩下延迟了。
延迟:
浏览器阻塞:浏览器会因为一些原因阻塞请求。浏览器对于同一个域名,同时只能有 4 个连接(这个根据浏览器内核不同可能会有所差异),超过浏览器最大连接限制,后续请求就会被阻塞。
DNS 查询:浏览器需要知道目标服务器的 IP 才能建立连接。将域名解析为 IP 的这个系统时 DNS。这个通常可以利用 DNS 缓存结果来达到减少这个时间的目的。
建立连接:HTTP是基于 TCP 协议的,浏览器最快也要在第三次握手时才能捎带 HTTP 请求报文,达到真正的建立连接,但是这些连接无法复用会导致每次请求都经历三次握手和慢启动。三次握手在高延迟的场景下影响较明显,慢启动则对文件类大请求影响较大。
为了解决以上问题,网景公司在 1994 年创建了 HTTPS,并应用在网景导航者浏览器中,最初,HTTPS 是与 SSL 一起使用的,在 SSL 逐渐演变成 TLS 时(其实两个是一个东西,只是名字不同而已),最新的 HTTPS 也由 2000 年 5 月公布的 RFC 2018 正式确定下来。简单地说,HTTPS 就是安全版的 HTTP,并且由于当代对安全性要求更高,Chrome 和 Firefox 都大力支持网站使用 HTTPS,苹果也在 iOS 10 系统中强制 app 使用 HTTPS 来传输数据。
如果一个网站要由 HTTP 换成 HTTPS,可能需要关注一下几点:
2012 年 Google 提出了 SPDY 的方案,它综合了 HTTPS 和 HTTP 两者优点于一体的传输协议,主要解决:
SPDY 位于 HTTP 之下,TCP 和 SSL之上,这样可以轻松兼容老版本的 HTTP 协议,同时可以使用已有的 SSL 功能。
HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事
随着网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS。免费提供证书服务的 Let's Encrypt 项目也开房了,HTTPS 成为 WEB 的必选项。HTTPS 通过 TLS 层和证书机制提供了内容加密、身份认证和数据完整性三大功能,可以有效防止数据被查看或篡改,以及防止中间人冒充。
写在前面
在之前的工作中和面试的过程中,都会或多或少地涉及到这三方面的知识,但在遇到这些问题的时候,脑子确实一片空白,没有对这三个方面的内容有一个清晰的认识,仅仅停留在知道这三个字母而已。
需要对这三个方面的内容背景,功能,优势,不足深入的探究。
HTTP的基本优化
影响一个 HTTP 网络请求的因素主要有两个:带宽和延迟
带宽:如果说我们还停留在拨号上网的阶段,带宽可能会成为一个比较严重影响请求的问题,但是现在网络基础设施建设已经使得带宽得到极大的提升,我们不用担心由带宽而影响网速,那么只剩下延迟了。
延迟:
浏览器阻塞:浏览器会因为一些原因阻塞请求。浏览器对于同一个域名,同时只能有 4 个连接(这个根据浏览器内核不同可能会有所差异),超过浏览器最大连接限制,后续请求就会被阻塞。
DNS 查询:浏览器需要知道目标服务器的 IP 才能建立连接。将域名解析为 IP 的这个系统时 DNS。这个通常可以利用 DNS 缓存结果来达到减少这个时间的目的。
建立连接:HTTP是基于 TCP 协议的,浏览器最快也要在第三次握手时才能捎带 HTTP 请求报文,达到真正的建立连接,但是这些连接无法复用会导致每次请求都经历三次握手和慢启动。三次握手在高延迟的场景下影响较明显,慢启动则对文件类大请求影响较大。
HTTP1.0 和 HTTP1.1 现存的一些问题
HTTPS
为了解决以上问题,网景公司在 1994 年创建了 HTTPS,并应用在网景导航者浏览器中,最初,HTTPS 是与 SSL 一起使用的,在 SSL 逐渐演变成 TLS 时(其实两个是一个东西,只是名字不同而已),最新的 HTTPS 也由 2000 年 5 月公布的 RFC 2018 正式确定下来。简单地说,HTTPS 就是安全版的 HTTP,并且由于当代对安全性要求更高,Chrome 和 Firefox 都大力支持网站使用 HTTPS,苹果也在 iOS 10 系统中强制 app 使用 HTTPS 来传输数据。
HTTPS 与 HTTP 的一些区别:
改造成 HTTPS
如果一个网站要由 HTTP 换成 HTTPS,可能需要关注一下几点:
使用 SPDY 加快你的网站速度
2012 年 Google 提出了 SPDY 的方案,它综合了 HTTPS 和 HTTP 两者优点于一体的传输协议,主要解决:
SPDY 位于 HTTP 之下,TCP 和 SSL之上,这样可以轻松兼容老版本的 HTTP 协议,同时可以使用已有的 SSL 功能。
HTTP 2.0 的新特性
参考资料:
HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事