http与https
http
http状态码
|
|
|
|
什么是协议
两台计算机之间进行通信必须遵守的规则。
URL
统一资源定位符,标志网络上某一个资源的位置。
请求消息组成(request)
- 请求行
|
|
- 消息报头
|
|
- 空行
- 请求正文
get请求没有请求正文
响应消息组成(response)
- 响应行
|
|
- 响应头
|
|
- 空行
- 响应正文
https
加密算法
对称加密:加密和解密使用相同的加密算法,加密秘钥可以从解密秘钥中推算出来,解密秘钥也可以从加密秘钥中推算出来。在大多数堆成加密中,加密秘钥和解密密钥相同,所以也叫作单密钥算法。加密和解密使用同一个密钥。
非对称加密:需要两个密钥,一个是公开的,一个是私有的。加密解密使用不同的密钥。
摘要算法:数字摘要采用单项hash函数将需要加密的明文摘要成一串固定长度的密文。这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。“数字摘要“是https能确保数据完整性和防篡改的根本原因。
数字签名:是非对称密钥加解密和数字摘要算法的一种应用,发送者将明文通过hash函数来生成摘要信息,再用私钥进行加密生成数字签名,将这个数字签名和原文一起发送给服务器。服务器将接收到的数字签名利用发送者提供的公钥进行解密,得到一个摘要信息,再将收到的原文利用hash函数生成摘要,与前一个摘要进行比较。如果两个摘要相同,那么收到的信息是完整的,发送过程中没有被修改。
明文 -> hash函数 -> 摘要信息 -> 私钥加密 -> 数字签名
数字签名的作用:
1、能确定信息是由正确的发送者签名发送出来的,因为被人冒充不了发送者的签名。
2、确定消息的完整性。
SSL/TLS
SSL:用以保障数据在网络上安全传输。利用数据加密技术,可以保证数据在网络上传输不会被截取。
SSL/TLS作用:
1、认证用户和服务器,确保数据发送到正确的客户机和服务器;
2、加密数据以防止数据中途被窃取;
3、维护数据的完整性,确保数据在传输过程中不被修改。
https机制流程
(1)客户端请求建立连接;
(2)服务器将SSL证书发送给客户端。
(3)客户端首先对证书的所有者和有效期限等信息进行校验,浏览器在操作系统中查找内置的可信任的证书发布机构CA。与服务器证书的发布者CA进行比较,用于校验证书是否由合法机构发布。如果不合法,就报错。如果合法,就从操作系统中取出证书颁发者CA的公钥,然后对证书中的签名进行解密。浏览器再使用相同的hash算法对服务器发送的证书进行hash计算。与解密后的信息进行比较。如果一致,则SSL证书合法。
(4)然后客户端利用公钥对采用对称加密这一信息,以及对称加密算法和对称加密秘钥进行加密后传给服务器。
(5)服务器收到信息后采用私钥解密,提取出对称加密算法和对称秘钥后,回复客户端。
(6)然后它们就遵守指定的对称加密算法进行信息传输。
http和https的区别
1、http传输是明文传输,无法验证客户端和服务器的身份,是不安全的,很容易遭到攻击。但https中所有传输信息都经过对称加密,SSL本身使用非对称加密,可以有效地防止攻击。
2、http协议运行在TCP上,https运行在TLS/SSL上,TLS/SSL运行在TCP上。
3、http的默认端口为80,https的默认端口为443。
TCP三次握手四次握手
握手:
1、客户端发送SYN数据包给服务器,请求连接。
2、服务器收到SYN数据包后,回传SYN/ACK数据包,以表示已经收到了请求。
3、客户端发送ACK,以表示握手结束。
挥手:
1、客户端发送FIN数据包给服务器,请求断开连接。
2、服务器收到FIN数据包,回复ACK数据包给客户端。
3、当服务器数据传输结束后,传送FIN数据包给客户端,表示可以断开连接了。
4、客户端回复ACK数据包,告诉服务器已经知道可以断开了。
AJAX工作原理
通过创建XmlHttpRequest对象向服务器发送异步请求,从服务器获取数据,然后使用js来操作DOM更新页面的数据。