- 有没有了解过http2.0?3.0(QUIC)呢?你觉得2.0有什么缺陷吗?1.1有什么缺陷?
HTML:超文本标记语言
HTTP:超文本传输协议,为了将HTML文档从服务器传送到客户端。
1.0、2.0、3.0:随着css、javascript的出现,以及移动互联时代的到来,需要不断优化
【底层】TCP/IP
1.1用的还是很多
多路复用:多个请求流共享一个TCP连接,实现多流并行,而不是依赖建立多个TCP连接
-
http和https有什么区别??click
HTTP为超文本传输协议,HTTPS为安全超文本传输协议,后者是前者的升级,相对比较安全,通过数据加密传输的方式,安全系数比较高,HTTPS也会作为网站的搜索权重指标,所以HTTPS的网站在排名中也更有优势。
【HTTP特点】:80端口
1、无状态,协议对客户端没有状态存储,
2、无连接:HTTP/1.1前,由于无状态特点,每次请求都需要通过TCP三次握手和服务器重新建立连接
4、基于请求和响应
5、简单、快速、灵活
6、通信使用明文,请求和响应不会对通信进行确认,无法保证数据的完整性
【HTTPS特点】:443端口
1、内容加密,采用混合加密技术,中间者无法查看明文内容
2、验证身份,通过证书认证客户端访问的是自己的服务器
3、保护数据完整性:防止传输的内容被中间人冒充或篡改 -
了解过quic(HTTP3.0)吗?
谷歌制定的一种基于UDP的低时延的互联网传输层协议,主要目标就是减少连接延迟;第一次连接服务器时,QUIC只需要1RTT(Round-Trip Time)的延迟就可以建立可靠安全的连接,相对于TCP+TLS的1-3次RTT要更加快捷。之后客户端可以在本地缓存加密的认证信息,在再次与服务器建立连接时可以实现0-RTT的连接建立延迟。QUIC同时复用了HTTP/2协议的多路复用功能(Multiplexing),但由于QUIC基于UDP所以避免了HTTP/2的线头阻塞(Head-of-Line Blocking)问题。因为QUIC基于UDP,运行在用户域而不是系统内核,使得QUIC协议可以快速的更新和部署,从而很好地解决了TCP协议部署及更新的困难 。 -
HTTPS加密技术
其最终目的是得到一个用户唯一的k(会话密钥)。
以下来源于:click
1、client向server发送请求https://baidu.com,然后连接到server的443端口,发送的信息主要是随机值1和客户端支持的加密算法。(获取CA认证的证书)
2、server接收到信息之后给予client响应握手信息,包括随机值2和匹配好的协商加密算法,这个加密算法一定是client发送给server加密算法的子集。
3、随即server给client发送第二个响应报文是数字证书。服务端必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面,这套证书其实就是一对公钥和私钥。传送证书,这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间、服务端的公钥,第三方证书认证机构(CA)的签名,服务端的域名信息等内容。
4、客户端解析证书,这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随即值(预主秘钥)。
5、客户端认证证书通过之后,接下来是通过随机值1、随机值2和预主秘钥组装 会话秘钥。然后通过证书的公钥加密会话秘钥。
6、传送加密信息,这部分传送的是用证书加密后的会话秘钥(click视频说不传送会话密钥),目的就是让服务端使用秘钥解密得到随机值1、随机值2和预主秘钥。
7、服务端解密得到随机值1、随机值2和预主秘钥,然后组装会话秘钥,跟客户端会话秘钥相同。
8、客户端通过会话秘钥加密一条消息发送给服务端,主要验证服务端是否正常接受客户端加密的消息。
9、同样服务端也会通过会话秘钥加密一条消息回传给客户端,如果客户端能够正常接受的话表明SSL层连接建立完成了。
下面图片来源:click