http和https的区别

一、Http和Https的基本概念

1、Http:超文本传输协议(Http,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计Http最初的目的是为了提供一种发布和接收HTML页面的方法。它可以使浏览器更加高效。Http协议是以明文方式发送信息的,如果黑客截取了Web浏览器和服务器之间的传输报文,就可以直接获得其中的信息。

2、Https:是以安全为目标的Http通道,是Http的安全版。Https的安全基础是SSL。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层:SSL记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol),它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

二、HTTP请求访问过程

1、HTTP 采用 TCP 作为传输层协议,所以HTTP协议不用担心数据丢失。HTTP 请求的默认端口是 80 号端口,HTTP的访问过程如下:
1)HTTP客户端在端口80向目标服务器发起TCP连接;
2)连接成功后,HTTP客户端经它的Socket向服务器发送一个HTTP请求报文,其中包含请求访问路径;
3)HTTP服务器接受请求报文,在存储器里按照路径找到文件,然后包装成HTTP响应报文,通过Socket发送给客户端;
4)传输结束后,服务器发起TCP断开连接通知;
5)客户端接受完文件后,响应TCP断开连接。

2、HTTP 是一个无状态协议,HTTP 服务器不会记住客户端的请求信息,即使你连续两次请求同一文件,服务器都会当做第一次请求,并执行完整的响应步骤。

三、HTTP 三大风险:

1、窃听风险:第三方可以获知通信内容。
2、篡改风险:第三方可以修改通信内容。
3、冒充风险:第三方可以冒充他人身份参与通信。

四、HTTPS 解决方案:

1、内容加密:所有信息都是加密传播,第三方无法窃听。
2、验证身份:具有校验机制,一旦被篡改,通信双方会立刻发现。
3、保护数据完整性:配备身份证书,防止身份被冒充。

五、HTTPS的工作原理

1、HTTPS 对信息内容进行加密的方式就是,在 HTTP 报文从应用层发送至传输层之前,对 HTTP 报文进行加密处理,加密使用的协议是 SSL/TLS ,我们暂且称它为“安全层”,利用 HTTPS 传输信息时,发出的信息会先通过安全层加密,接受加密信息时,会经过安全层解密。
在这里插入图片描述
2、客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。
(1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
(2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
(3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
(4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
(5)Web服务器利用自己的私钥解密出会话密钥。
(6)Web服务器利用会话密钥加密与客户端之间的通信。
在这里插入图片描述
3、https加密的实现方式

1)对称加密:即通信双方通过相同的密钥进行信息的加解密。加解密速度快,但是安全性较差,如果其中一方泄露了密钥,那加密过程就会被人破解。

2)非对称加密:相比对称加密,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。两把密钥分别由发送双发各自保管,加解密过程需两把密钥共同完成。安全性更高,但同时计算量也比对称加密要大很多。

3)混合加密:结合非对称加密和对称加密技术。客户端使用对称加密生成密钥对传输数据进行加密,然后使用非对称加密的公钥再对对称加密的密钥进行加密,所以网络上传输的数据是被对称加密的密钥加密后的内容和用非对称加密的公钥加密后的对称加密的密钥,因此即使被黑客截取,由于没有非对称加密的私钥,无法获取到加密明文的对称加密的密钥,便无法获取到明文数据。

六、Http与Https的区别

1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。(网易官网是http,而网易邮箱是https。)
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的。Https协议是由SSL+Http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。(无状态的意思是其数据包的发送、传输和接受都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值