HTTP和HTTPS之间的区别

HTTP和HTTPS的定义

HTTP

HTTP:超文本传输协议,HTTP 使用请求/响应的过程,因此信息可在服务器间快速、轻松而且精确的进行传输,但它使用的是明文进行传输,不安全

HTTPS

HTTPS:https使用的是具有安全性的SSL加密传输协议。HTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。HTTPS = HTTP + SSL

SSL

SSL:安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议。
SSL协议的三个特性

Ø 保密:在握手协议中定义了会话密钥后,所有的消息都被加密。

Ø 鉴别:可选的客户端认证,和强制的服务器端认证。

Ø 完整性:传送的消息包括消息完整性检查(使用MAC)。

HTTP 和 HTTPS 的相同点

都是采用同一个基础的协议,作为 HTTP 或 HTTPS 客户端——浏览器,设立一个连接到 Web 服务器指定的端口。当服务器接收到请求,它会返回一个状态码以及消息,这个回应可能是请求信息、或者指示某个错误发送的错误信息。系统使用统一资源定位器 URI 模式,因此资源可以被唯一指定。

HTTP 和 HTTPS 的不同之处

1、HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头
2、HTTP 是不安全的,而 HTTPS 是安全的
3、HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443
4、在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层
5、HTTP 无需加密,而 HTTPS 对传输的数据进行加密
6、HTTP 无需证书,而 HTTPS 需要认证证书

HTTPS 如何工作?

使用 HTTPS 连接时,服务器要求有公钥和签名的证书。

当使用 https 连接,服务器响应初始连接,并提供它所支持的加密方法。作为回应,客户端选择一个连接方法,并且客户端和服务器端交换证书验证彼此身份。完成之后,在确保使用相同密钥的情况下传输加密信息,然后关闭连接。为了提供 https 连接支持,服务器必须有一个公钥证书,该证书包含经过证书机构认证的密钥信息,大部分证书都是通过第三方机构授权的,以保证证书是安全的。

换句话说,HTTPS 跟 HTTP 一样,只不过增加了 SSL。

HTTP 包含如下动作:

浏览器打开一个 TCP 连接
浏览器发送 HTTP 请求到服务器端
服务器发送 HTTP 回应信息到浏览器
TCP 连接关闭

SSL 包含如下动作:

验证服务器端
允许客户端和服务器端选择加密算法和密码,确保双方都支持
验证客户端(可选)
使用公钥加密技术来生成共享加密数据
创建一个加密的 SSL 连接
基于该 SSL 连接传递 HTTP 请求

什么时候该使用 HTTPS?

银行网站、支付网关、购物网站、登录页、电子邮件以及一些企业部门的网站应该使用 HTTPS