天天看点

http协议与https协议的区别一.什么是http协议?二.什么是https协议?三.http协议与https协议的区别

一.什么是http协议?

HTTP 协议(Hypertext Transfer Protocol,超文本传输协议),是一个客户端请求和响应的标准协议,这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。用户输入地址和端口号之后就可以从服务器上取得所需要的网页信息。

http的工作过程:

(1)域名解析。DNS解析域名得到主机的IP地址

(2)封装HTTP请求数据包。

(3)封装成TCP包,TCP三次握手,完成与服务器的连接。

(4)客户机发送请求命令。 建立连接后,客户机向服务器发送一个请求

(5)服务器接到请求后给予相应的响应信息

(6)TCP四次握手,服务器关闭TCP连接。

(7)客户端解析报文,解析HTML代码,并渲染

二.什么是https协议?

HTTPS协议==HTTP协议+SSL/TLS协议,在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密,需要用HTTP对加密后的数据进行传输,由此可见,HTTPS协议是由HTTP和SSL/TLS协议一起合作完成的。至于二者之间的区别,HTTP协议有点类似于“裸奔”,他们数据传输是通过明文的形式做传输,即使约定了加密方式,但是第一次传输的时候还是明文;鉴于此,HTTPS使用的是非对称加密,为秘钥的传输外层再做一层保护,非对称加密的一组秘钥对中,包含一个公钥和一个私钥。明文既可以用公钥加密,用私钥解密;也可以用私钥加密,用公钥解密。

https协议的工作原理:

在HTTP的基础上,HTTPS加入了SSL协议。HTTP以明文方式传输信息,不能保障数据传输的安全,而SSL 协议依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

https协议的通信过程:

(1)客户端和服务器端通过TCP建立连接。

(2)客户端向服务器发送HTTPS请求。

(3)服务器响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。

(4)客户端收到服务器端的数字证书之后,会验证数字证书的合法性。

(5)如果公钥合格,那么客户端会生成一个用于进行对称加密的密钥client key,并用服务器的公钥对客户端密钥进行非对称加密。

(6)客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器。

(7)服务器接收到客户端发来的密文之后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。

(8)客户端收到密文,并使用客户端秘钥进行解密,渲染网页。

三.http协议与https协议的区别

安全性上,HTTPS是安全超文本协议,在HTTP基础上有更强的安全性。简单来说,HTTPS是使用TLS/SSL加密的HTTP协议

申请证书上,HTTPS需要使用ca申请证书

传输协议上, HTTP是超文本传输协议,明文传输;HTTPS是具有安全性的 SSL 加密传输协议

连接方式与端口上,http的连接简单,是无状态的,端口是 80; https 在http的基础上使用了ssl协议进行加密传输,端口是 443

继续阅读