HTTP协议特点与HTTPS的安全性

如题所述

HTTP是一种用于在Web浏览器和Web服务器之间进行通信的协议。它具有以下特点:
明文传输:HTTP传输的数据是明文的,不进行加密处理,因此容易被黑客窃听、篡改和劫持。
无状态:HTTP是无状态协议,即服务器不会保存客户端之前的请求信息。每个请求都是独立的,服务器无法确定这是同一个用户。
请求-响应模型:HTTP采用请求-响应模型,客户端向服务器发送请求,服务器进行处理后返回相应的数据。该模型简单直接,但限制了服务器主动向客户端发送数据的能力。
而HTTPS是在HTTP基础上添加了安全层的协议,它使用SSL或TLS加密协议来保护数据的传输安全。HTTPS具有以下特点和优势:
数据加密:HTTPS使用加密算法对传输的数据进行加密,使得数据在传输过程中难以被窃听和篡改,提高了传输的安全性。
身份验证:HTTPS通过证书来验证服务器的身份,确保客户端与服务器通信的是正确的目标。这可以防止中间人攻击和DNS劫持等安全威胁。
数据完整性:HTTPS使用摘要算法(如MD5、SHA等)对传输的数据进行校验,确保数据在传输过程中没有被篡改或损坏。
SEO友好:搜索引擎更喜欢采用HTTPS加密的网站,将其作为搜索排名的一个因素考虑。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-06-19

HTTP协议主要特点包括如下:

HTTP怎么保持持久连接?

Keep-Alive实现:
通过请求的头部字段:Connection,time,max来实现持久连接。
如:Connection:Keep-Alive,time :20,max:10

time:表示第一次http请求发起之后20秒内不断开,并且之后相同host的请求都用同一个http连接通道进行通信;
max:表示最大可以连接的请求数量。

怎么判断HTTP持久连接断开?

HTTP持久连接断开时服务端会通过响应报文的请求头字段的Connect-Length 、chunked来告诉客户端持久连接已经断开了。

Cookie/Session
由于HTTP的无状态特点,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

为了解决这种重复上传的问题,于是有了Cookie/Session的技术解决方案:
Cookie用于客户端,可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。

与 Cookie 相对的一个解决方案是 Session,它是通过服务器来保持状态的。

HTTP协议特点参考资料: 深入理解http协议的特点

HTTP是不安全的,因为服务端未检查客户端的有效性,这样很可能被中间人拦截伪装客户端向服务端发送请求。

HTTPS在HTTP传输层之上加了一个安全层(SSL或TLS协议实现),可以做到以下3点:
1. 数据的保密性
2. 校验双方身份的真实性
3. 数据的完整性

HTTPS连接建立流程:

通过上面HTTPS连接建立流程分析,大致可以分为下面5个步骤:

上面说了加密,保证了数据不能被他人读取,但通信的双方怎样校验对方的身份呢?HTTPS使用了数字证书,数字证书就是身份认证机构(Certificate Authority)盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名),这一行为表示身份认证机构已认定这个人。证书的合法性可以向CA验证。

客户端收到服务器的响应后,先向CA验证证书的合法性(根据证书的签名、绑定的域名等信息),如果校验不通过,浏览器会中止连接,向用户提示证书不安全。

HTTPS了两种加密方式: 对称加密和非对称加密

以下是非对称加密的过程:

发送方通过公钥对数据进行加密,将加密数据传给接收方,接收方通过私钥进行解密得到相应的数据;这种加密和解密用的钥匙不一样的方式叫做非对称加密。

非加密方式是安全的,因为私钥在服务端本地的,并没有在网络上传输,即使客户端的公钥被篡改了,通过私钥也解析不出来,但是这种方式的缺点是耗时比较长;

以下是对称加密的流程:

发送方通过秘钥(会话秘钥)对数据进行加密,接收方也通过相同的秘钥进行解密,这种发送方和接收方用同样秘钥加解密的方式叫做对称加密。

秘钥是通过非对称加密连接的时候生成的,已经保证了客户端的安全性,所以在数据传输过程中可以认为数据是安全的。

参考资料: 关于HTTPS,你需要知道的全部

相似回答