1.HTTP与HTTPS的定义
HTTP:
超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。
HTTPS
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。
2.HTTP与HTTPS的区别
①安全性上,HTTPS是安全超文本协议,在HTTP基础上有更强的安全性。简单来说,HTTPS是使用TLS/SSL加密的HTTP协议,即HTTPS在HTTP的基础上加入了SSL层(SSL 的英文全称是 “Secure Sockets Layer” ,中文名为 “ 安全套接层协议层 ” ,它是网景( Netscape )公司提出的基于 WEB 应用的安全协议。 SSL 协议指定了一种在应用程序协议(如 HTTP 、 Telenet 、 NMTP 和 FTP 等)和 TCP/IP 协议之间提供数据安全性分层的机制,它为 TCP/IP 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。)
②申请证书上,HTTPS需要使用ca申请证书,HTTP不需要证书。
③传输协议上, HTTP是超文本传输协议,明文传输;HTTPS是具有安全性的 SSL 加密传输协议
④连接方式与端口上,http的连接简单,是无状态的,端口是 80; https 在http的基础上使用了ssl协议进行加密传输,端口是 443
3.HTTP与HTTPS的工作过程
HTTP由请求和响应构成,是一个标准的客户端服务器模型(C/S)。HTTP协议永远都是客户端发起请求,服务器回送响应。
地址解析。域名系统DNS解析域名得到主机的IP地址
封装HTTP请求数据包。封装的内容有以上部分结合本机自己的信息。
封装成TCP包,建立TCP连接(TCP的三次握手)
客户机发送请求命令。 建立连接后,客户机向服务器发送一个请求
服务器响应。服务器接到请求后,给予相应的响应信息
服务器关闭TCP连接。一般Web服务器向浏览器发送了请求数据,它要关闭TCP连接
客户端解析报文,解析HTML代码,并渲染
HTTPS的实现原理
HTTP以明文方式传输信息,不能保障数据传输的安全。
HTTPS在HTTP的基础上加入了SSL协议。
HTTPS使用SSL协议和TLS协议
SSL 依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS的通信过程
https通信时,首先建立ssl层的连接,客户端将ssl版本号和加密组件发到服务器端,服务器端收到后对ssl版本号和加密组件进行匹配,同时将CA证书及密钥发送到客户端。客户端对证书进行验证,验证通过后使用非对称加密对数据通信时的密钥进行协商。协商后得到一致的获得一致的对称加密密钥。然后使用对称加密算法进行TCP连接,后续的过程跟http的过程一致。三次握手,数据交换,四次挥手,通信结束。
过程如下 :
客户端和服务器端通过TCP建立连接。
客户端向服务器发送HTTPS请求。
服务器响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。
客户端收到服务器端的数字证书之后,会验证数字证书的合法性。
如果公钥合格,那么客户端会生成一个用于进行对称加密的密钥client key,并用服务器的公钥对客户端密钥进行非对称加密。
客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。
服务器接收到客户端发来的密文之后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。
客户端收到密文,并使用客户端秘钥进行解密,渲染网页。
4 HTTP与HTTPS优点和缺点分析
HTTP优点
HTTP没有加密解密过程,响应速度会比HTTPS快。如下图 https时间轴会多出一个SSL连接时间。同资源环境下,降低了用户的访问时间。
https
编辑
http
编辑
http技术门槛低,并且不用申请CA机构证书。相对于HTTPS,不会额外增加服务器负担。
HTTP相对于HTTPS的缺点
https可以提供更加优质保密的信息,保证了用户数据的安全性,此外https同时也一定程度上保护了服务端,使用恶意攻击和伪装数据的成本大大提高。
附录:HTTPS握手过程
编辑