HTTP和HTTPS的区别
产生背景
HTTP(超文本传输协议)被用于在Web浏览器和网站服务器之间,以明文方式传递信息,不提供任何方式的数据加密,因此使用HTTP协议传输隐私信息(如:银行卡号、密码等支付信息)非常不安全。
为了解决这一安全缺陷,网景公司设计了SSL(Secure Sockets Layer)协议,在HTTP的基础上加入了SSL(Secure Sockets Layer)协议,并为浏览器和服务器之间的通信加密。从而诞生了HTTPS(安全套接字层超文本传输协议)。
简单来说,HTTPS协议="SSL+HTTP协议"构建的可进行加密传输、身份认证的网络协议,是HTTP的安全版。
相同之处
大多情况下,HTTP和HTTPS是相同的,因为都是采用同一个基础的协议,作为HTTP或HTTPS客户端(浏览器),设立一个连接到Web服务器指定的端口。当服务器接收到请求,它会返回一个状态码以及消息,这个回应可能是请求信息、或者指示某个错误发送的错误信息。系统使用统一资源定位器 URI 模式,因此资源可以被唯一指定。整个过程中,唯一不同的只是一个协议头(HTTPS)的说明,其他都是一样的。
不同之处
HTTPS和HTTP的区别主要如下:
- 工作层:在OSI网络模型中,HTTP工作于应用层,而HTTPS工作在传输层。
- 连接端口:HTTP标准端口是80,而HTTPS的标准端口是443。
- 传输方式:HTTP是超文本传输协议,信息是明文传输,而HTTPS是SSL加密传输协议。
- 工作耗时:HTTP耗时=TCP握手,而HTTPS耗时=TCP握手+SSL握手。
- 显示形式:HTTP的URL以http://开头,而HTTPS的URL以https://开头。
- 费用:HTTP无需费用,而HTTPS需要到CA申请证书,一般免费证书较少,需要一定费用。
- 安全性:HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。
HTTPS的优点
尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但HTTPS仍是现行架构下最安全的解决方案,主要有以下几个有点:
- 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
- HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
- 谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。
什么时候该使用HTTPS
当你访问银行网站、支付网关、购物网站、登录页、电子邮件之类需要敏感信息的网站时,应该使用 HTTPS。
Tip:如果某个网站要求你填写银行卡之类的敏感信息,首先你要检查该网页是否使用HTTPS加密连接。如果没有,那么请不要输入任何敏感信息,如:信用卡号、密码。
HTTP切换到HTTPS
- 手动更改:需要将页面中所有的链接,例如js,css,图片等等URL都由HTTP改为HTTPS。