http与https
HTTPS=http+SSL,即在http传输上加入了SSL协议的加密能力。
在进行https连接后,所有的信息发送都是通过对称加密的方式进行的,又因为对称加密的密钥在第一次传输时需要确保足够安全,所以我们使用非对称加密对密钥进行加密后再传输。因为非对称加密和解密的耗时长,所以我们只选择密钥传输时进行非对称加密。
有一个老生常谈的问题:在浏览器中输入url,后发生了什么?
1.在输入了url后,浏览器会自动补全输入的url,默认使用的是http协议。
2.浏览器会向本地DNS 服务器请求对应的IP地址,DNS会首先查看自己的DNS缓存,未找到再去本地硬盘的host文件中寻找(就像我们访问github.com时修改host是同样的原理,我们DNS查找对应IP超时,我们可以直接在host里指定github.com的映射IP,从而能暂时进入github),如果还没找到,本地域名服务器就以DNS客户的身份去查询根域名服务器,根域名服务器向其回应域名对应的IP或下一次查询的顶级域名服务器的IP地址。以这样迭代查询的方式,终于得到域名所对应的IP地址,就立马回应给本地主机。
3.在得到具体IP后,浏览器会与目的主机进行TCP三次握手连接。
4.之后会进行http或https传输,如果是http,就是简单的则发送http请求,然后接收请求数据。
如果是https的话,在TCP三次握手成功之后,不是直接交给TCP发送,而是使用SSL进行加密,使传输过程中的内容不被篡改、替换。
http与https
原文:https://www.cnblogs.com/xxsdbk/p/15310057.html