美文网首页
「1分钟--前端05」HTTP那些事(下)

「1分钟--前端05」HTTP那些事(下)

作者: 悬笔e绝 | 来源:发表于2018-05-16 22:04 被阅读0次

    HTTPS

    一.HTTP的问题

    1.明文传输可能被窃听;

    2.认证问题,服务器和客户端都可能是伪装的,用户的权限无法验证;

    3.可能被篡改,中间人攻击;

    二.HTTPS介绍

    1.超文本传输安全协议;

    2.基于TLS/SSL 传输层安全协议,可以防止窃听和篡改;

    3.TLS和SSL的关系:SSL是TLS的前身;TLS是SSL的标准化;

    4.TLS/SSL协议的三个基本算法:

    非对称加密,对称加密,散列函数

    三个基本算法

    5.信鸽例子,理解对称和非对称加密

    (1)对称加密:收发双方规定密钥,字母偏移5位加密;

    A.加密的人也能解密,这就是对称;

    B.问题:密钥需要传递,传递的过程中,可能被窃听和篡改

    (2)非对称加密:

    A.发送人留着钥匙,把带锁(开启状态)的盒子传过去,加密的人锁上;加密的人自己解不开,就是非对称;

    B.问题:可能被窃听更换掉盒子

    C.认证机构来给盒子做签名,也就是我们HTTPS需要的网站证书;

    6.总结:

    非对称可靠但慢,对称的高效性但不可靠;配合使用

    非对称加密进行身份验证和密钥交换,对称加密进行数据的加密;


    三次握手四次挥手

    三次握手

    1.为什么要三次握手:

    确保客户端和服务端都能确认双方收发正常;

    (1)第一次握手:客户端--什么都不能确认;服务端--确认对方发送正常;

    (2)第二次:客户端--自己发和收正常,对方收和发正常;服务端--对方发,自己收;

    (3)第三次:客户端--自己发和收,对方收和发;服务端--对方收发,自己收发;

    2.为什么要发送特定的数据包?

    三次握手的另一个目的是确认双方都支持TCP协议;

    (1)第一次,客户端发seq=x

    (2)第二次server猜测client要建立TCP,但不能确定,发送ack为x+1,seq = y;

    (3)第三次,客户端知道服务端支持TCP,知道自己要建立TCP,发送ack = y+1, seq = x+1;

    最后,服务端知道客户端支持TCP,确定双方要建立TCP连接;

    3.seq,ack,SYN和ACK是什么意思?

    (1)seq: 数据包本身的序列号;

    (2)ack: 期望对方继续发送的那个数据包的序列号;

    (3)SYN标志位,1表示请求连接;

    (4)ACK就是ack后面加上的数字

    四次挥手

    4.为什么要四次挥手

    (1)根本原因,客户端发送FIN表示自己发完了数据,但是还允许对方继续发送剩下的数据。

    (2)比如打电话:A:我没啥说的了;B:知道了;可能还会说些;B:我也说完了;A:知道了;

    5.数据包的格式

    和握手同理,+1表示确认。

    以上:http最常见的问题都总结好了

    相关文章

      网友评论

          本文标题:「1分钟--前端05」HTTP那些事(下)

          本文链接:https://www.haomeiwen.com/subject/gggmdftx.html