小科普 | https://是啥意思?
我们打开一个网页,如今只需要点一下图标就可以了,哪怕输入网页,也只要“xxx.com”其他都会自动补全,过去咱们知道了www是万维网的意思(戳这里),那再前面的https://是个啥呢?
了解HTTPS之前,得先了解HTTP,全称Hyper Text Transfer Protocol超文本传输协议,挺好理解,毕竟网页里不可能只有字儿,还有图片视频。与之相对应的,如果传输的是文件,则有FTP协议。
这个协议用于从WEB服务器上下载HTML超文本标记语言到本体浏览器展示,基于TCP/IP通信协议。当你输入一个网址,其实并不是真正的网址,比方说“张三”只是一个名字不是一个人,它所指代的人才是完整的某个人。那么网络上精确的位置就是IP,
输入网址后我们通过本地host、以及DNS域名解析服务,比方说pixiv以前登不上去了,就可以通过修改本地host实现正常访问。
这里你可以理解成查“新华字典”给你翻译翻译,转换成确切的那个IP,然后是TCP的3次握手,才发送HTTP请求,服务器再给你返还一个HTTP响应,到了本地,给你的这串代码,经过浏览器渲染,这个字在哪,那个图插哪儿,最终加载出一个完整的网页。
这时候我们可以发现,网页和软件的差异就在,软件已经存在你硬盘里了,你开开关关都是设定好的、固定的,但是网页他不是完整存在的,你每点一个东西、一次提交,他都要重新加载一遍,都是一个全新的链接,甚至要重新登录一遍。
所以我们上比较老的网页、或者很多年前你上网的时候,打开网页就特别慢,这和你的网速、运营商没太大关系,只是说本身协议老、效率低。
你可以到http2.akamai.com/demo跑个对比测试,这玩意跑起来就跟跑Cinebench一样,类似单核和多核的区别。
HTTP经过了四个版本,1991年只有一次性GET命令的0.9版本。1996年正式标准化的1.0版本,增加了对图像、视频、二进制文件的支持,且有了cache缓存特性,再次访问同一个网站只要重新加载本地缓存即可,1.0对现代互联网体验是有里程碑意义的。
1997年的1.1终于支持了持久长连接了,并优化了带宽,速度变快了,还能断点续传,但依然得一条条处理回应,速度依然不快,当年就出现了很多网页优化技巧,可以分为两种,第一类是通过合并的方式减少请求次数,第二类是同时多开持久连接。
到了2015年的HTTP/2,终于有了质的飞跃,新增多路复用机制,相当于网页从多核走向了多核时代,过去你一次只能收发一份快递,如今你一次可以收发一堆快递。由于(在应用层和传输层之间)加入了二进制分帧,也就是这代开始传输的是二进制的协议,让延迟更低、占用更小、吞吐量更大。
类似于原本单行道上开了一堆小轿车载货,如今用更少的大卡车,每辆车载货量更多,而且还是多车道同时运输。
至于重新登录,后来用咱们熟悉的Cookie记录你的登录状态,这是一直保存在你电脑本地的,或者存在服务器上的Session,更安全,但浏览器一关掉就失效了。
但HTTP有一个问题,因为信息都是一起打包的,快递盒里有啥都写在上面,容易被半路截道,甚至被掉包,或者被修改了收货地址,不够安全。
于是请了一个专业镖师团队,HTTPS来了,这个S是Secure安全的意思,用的是SSL协议(SecureSocket Layer安全套接层),1997年由喜闻乐见的Netscape网景公司开发,没错,就是Mozilla项目组后来出的网景浏览器的那家,它最早支持HTML框架显示,让网页有了更先进的视觉体验(浏览器历史戳这里)。
后来出现了继任者TLS(TransportLayer Security传输层安全),如今已到了1.3版本。混合加密,还有校验机制,非常安全加密很必要,但加密解密也是吃资源的,工作效率比不加密慢的多。
你和服务器握一次手,一个来回算一次RTT(Round TripTime),每层协议的连接、握手,都会增加RTT。比方说你上一个外网,距离很远,那么一次RTT时间要70ms,那么四次就是280ms,如果多一个TLS环节,自然会变得更慢了。
参考&引用:
HTTP和
HTTPSzhuanlan.zhihu.com/p/72616216
HTTP版本
cnblogs.com/NetPig/p/10917269.html
加密区别
blog.csdn.net/enweitech/article/details/81781405
加密方式
zhihu.com/question/20391668/answer/915889286
上网流程
zhihu.com/question/34873227/answer/518086565