http协议
http(超文本语言传输协议), web服务器主要支持的一种协议。服务器
服务器主要分为两种,一种是网页服务器,一种是应用服务器。常见的web服务器主要有apache, nginx, IIS, 主要任务根据http协议(http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html)实现超文本数据(文本、图像、视频、声音等)文件在客户端与服务器间的传输过程。常用的应用服务器有tomcat、JBoss、weblogic等,提供的是各类服务方式,当然应用服务器也可以作为web服务器使用,但是效率较低。https
https(Hyper Text Transfer Protocol over Secure Socket Layer)。http协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定义在RFC 6101中,之后IETF对SSL 3.0进行了升级,于是出现了TLS(Transport Layer Security) 1.0,定义在RFC 2246。实际上我们现在的HTTPS都是用的TLS协议,但是由于SSL出现的时间比较早,并且依旧被现在浏览器所支持,因此SSL依然是HTTPS的代名词,但无论是TLS还是SSL都是上个世纪的事情,SSL最后一个版本是3.0,今后TLS将会继承SSL优良血统继续为我们进行加密服务。目前TLS的版本是1.2,定义在RFC 5246中,暂时还没有被广泛的使用。https工作原理
https在传输之前需要客户端与网站进行一次握手,主要作用为确认两者的关系及加密方式。假设A为客户端,B为服务器,我们模拟下两者的握手过程。
A:首先向B发送一则消息,告诉A支持的加密方式,
B:B从中选择一组加密算法(对称加密、非对称加密、hash各一个),将自己的证书连同非对称加密的公钥和前面的加密算法一同发送到A
A:A收到B的信息后,检验证书是否合法。确认后,使用约定好的hash算法计算握手信息,之后A生成一个随机数,用该随机数对即将发送的握手消息加密,然后用B给的公钥对随机数加密。最后将生成的信息发送给B。
B:接收到A的消息后,A先用私钥解压密钥信息,然后用密钥解压A发送的握手消息,验证hash是否一致。确认后使用密钥加密一段消息,发送给A
A:A接收到消息后解密,确认hash是否一致。确认后握手结束。之后两个人相互发送的所有消息都通过密钥进行加密。
HTTPS一般使用的加密与HASH算法如下:
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256 (确认握手消息没有被篡改时)
握手过程中如果有任何错误,都会使加密连接断开,从而阻止了隐私信息在传输过程中被截获而造成的隐私泄露。正是由于HTTPS非常的安全,攻击者无法从中找到下手的地方。因此确保了传输的安全性。目前国内很多网站都慢慢开始使用https。http协议讲解
参看:http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.htmlhttps对网站性能的影响
参看:http://blog.jobbole.com/86664/https的优化访问
参看:http://www.ym360.cn/4318905.html
http与https
最新推荐文章于 2023-08-25 16:15:05 发布