深刻学习这个东西前,咱们先来从维基百科上看看它俩的概念。
HTTP:超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协做式和超媒体信息系统的应用层协议[1]。HTTP是万维网的数据通讯的基础。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。经过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。
HTTPS:超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种经过计算机网络进行安全通讯的传输协议。HTTPS经由HTTP进行通讯,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。历史上,HTTPS链接常常用于万维网上的交易支付和企业信息系统中敏感信息的传输。在2000年代晚期和2010年代早期,HTTPS开始普遍使用于保护全部类型网站上的网页真实性,保护帐户和保持用户通讯,身份和网络浏览的私密性。算法
1,从上面概念也能够看出来HTTP是不安全的,且攻击者经过监听和中间人攻击等手段,能够获取网站账户和敏感信息等。HTTPS被设计为可防止前述攻击,并在正确配置时被认为是安全的。
2,HTTP的URL由“http://”起始且默认使用端口80,而HTTPS的URL由“https://”起始且默认使用端口443。
3,HTTP协议运行在TCP之上,全部传输的内容都是明文,客户端和服务器端都没法验证对方的身份。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS运行在TCP之上。全部传输的内容都通过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。
1)对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
2)非对称加密:密钥成对出现(且根据公钥没法推知私钥,根据私钥也没法推知公钥),加密解密使用不一样密钥(公钥加密须要私钥解密,私钥加密须要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
浏览器
你们很明显发现目前大部分网站使用的仍是http协议,下面咱们经过一个图片很容易的了解一下网站访问的一个过程。
安全
(1)客户使用HTTPS的URL访问Web服务器,要求与Web服务器创建SSL链接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的浏览器与Web服务器开始协商SSL/TLS链接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方赞成的安全等级,创建会话密钥,而后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用本身的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通讯。服务器
(1)客户端产生的密钥只有客户端和服务器端能获得;
(2)加密的数据只有客户端和服务器端才能获得明文;
(3)客户端到服务端的通讯是安全的。
另外谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。网络
咱们说了这么多HTTPS的优势,难道它就没有缺点或者说是局限吗?固然有,毕竟万物不可完美!
1,HTTPS比HTTP耗费更多服务器资源(https其实就是建构在SSL/TLS之上的 http协议,因此要比较https比http多用多少服务器资源,主要看SSL/TLS自己消耗多少服务器资源。)
分布式