http 和 https 的区别
2020-10-27 10:30
682浏览
1回答
http 和 https 的区别有什么?各自的概念都是什么?有什么联系?
转载请联系作者获得授权,并标注“文章作者”。
最新文章|
最新问题|
最新经验
http 和 https 的区别有什么?各自的概念都是什么?有什么联系?
转载请联系作者获得授权,并标注“文章作者”。
HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其他工具,客户端发起一个服务器上指定端口(默认端口为80)的HTTP请求,这个客户端叫用户代理(User-Agent)。响应的服务器上存储资源,比如HTML文件和图像,在用户代理和服务器中间可能存在多个中间层,比如代理、网关或者隧道(Tunnels)。
HTTP协议传输的数据都是未加密的,也就是明文数据,因此非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而诞生了HTTPS。
HTTPS(Hyper Text Transfer Protocol orer Secure Sokcket Layer,可以理解为HTTP+SSL、TLS)在传输数据之前需要客户端(浏览器)与服务器(网站)中间进行一次握手,以确立双方加密传输数据的密码信息。
HTTPS的SSL中使用了非对称加密、对称加密以及HASH算法。握手过程简单描述如下:
(1) 浏览器将自己支持的一套加密规则发送给网站。
(2) 网站充从中选取一组加密算法与HASH算法,将自己的身份信息以证书的形式发回给浏览器。证书里面包含网站地址、加密公钥以及证书的颁发机构等信息。
(3) 获得网站证书之后浏览器进行相应的工作。
(4) 网站接受浏览器发来的数据并进行相应的操作。
(5) 如果浏览器解密并计算握手信息的HASH与服务端发来的HASH一致,此次握手过程结束。
另外,HTTPS一般使用的加密算法与HASH算法如下。
* 非对称加密算法:RSA、DSA/DSS。
* 对称加密算法:AES、RC4、3DES。
* HASH算法:MD5、SHA1、SHA256。
SSL握手过程中有任何错误都会使加密链接断开,从而阻止隐私信息的传输,正是由于HTTPS非常安全,攻击者无法从中找到下手的地方,因为更多的采用假证书的手法来欺骗客户端,从而获取明文的信息。