http1.0和http1.1的区别
http1.0规定客户端和服务器只能建立短暂连接,浏览器每次的请求都需要建立一个tcp连接,服务器完成请求后都会断开连接,这样会使服务器的负担很重。
简要概括就是:http1.0是一个无持久连接,无状态,且符合请求/响应模型的应用层协议
http1.1很好的解决了这个问题,它使用了持续连接,
所谓的持续连接就是万维网服务器在发送响应的后,仍然在一段时间内保持这条连接.使同一个客户(浏览器)可以继续和服务器进行通信。
HTTP 1.1则支持持久连接Persistent Connection, 并且默认使用persistent connection. 在同一个tcp的连接中可以传送多个HTTP请求和响应. 多个请求和响应可以重叠,多个请求和响应可以同时进行. 更加多的请求头和响应头(比如HTTP1.0没有host的字段).注意:在这种情况下还是一个请求对应一个响应,服务器不能主动联系客户端.
还有其他的区别,这里就不赘述了
http和https的区别
对称加密
对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。
例子:我和小明约定好我发的数字上减去100就是真正的数字,比如我想要发送23,这时需发送100+23给小明,小明接收到信息后,将数据减去100就得到了真正的数据
对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。
非对称加密
非对称加密,也称为公钥加密,是一种密码学技术,使用一对密钥来加密和解密数据,其中一把密钥是公开的(公钥),另一把密钥是保密的(私钥)。这两把密钥是相关联的,但不能相互推导。
公钥(Public Key): 公钥是非对称加密系统中的一个密钥,用于加密数据或验证数字签名。它是公开的,任何人都可以获得和使用它。公钥通常用于加密数据,使其只能被持有私钥的实体解密。
如果您想将加密数据发送给其他人,您可以使用他们的公钥来加密数据,只有他们才能使用他们的私钥来解密。
私钥(Private Key): 私钥是非对称加密系统中的另一个密钥,与公钥成对存在。它是保密的,只有密钥的持有者知道它。私钥通常用于解密被公钥加密的数据,或者用于生成数字签名以验证数据的完整性和真实性。
只有私钥的持有者才能使用它来解密公钥加密的数据或生成有效的数字签名。
非对称加密系统中的公钥和私钥是成对的密钥,它们之间存在数学关系,但从一个密钥无法推断出另一个密钥。这使得公钥可以安全地分发给任何人,而私钥必须保持机密。
这种体系允许安全地加密数据和验证数据的真实性,而不需要在通信之前共享密钥。这在安全通信和数字签名中起到了重要作用。
特点:
1.任何有A公钥加密过的信息,只有A的私钥才能解密出来.这里的公钥一般都是公开的,私钥不被公开.
2.任何拥有A公钥的人,可以确认该信息是否被A私钥加密过.
这里举个列子
A和B要进行数据输出,这时候A这里有A的私钥和B的公钥,B那里有A的公钥和B的私钥.这时候A要向B发送数据,A用B的公钥进行加密,这时只有B的私钥可以解密,黑客如果没有B的私钥是无法解开A加密的内容.
同样B想要给A进行发送数据,需要用A的公钥进行加密
数字签名
数字签名是一种用于验证数据的完整性、真实性和来源的技术,它通常与非对称加密(公钥加密)相结合使用。数字签名允许数据的发送者对数据进行签名,以证明数据未被篡改,并且确保数据来自预期的来源。
数字签名的工作原理如下:
签名生成: 数据发送者使用自己的私钥来对数据进行签名。这通常涉及将数据的哈希值(摘要)与发送者的私钥进行运算,生成数字签名。
签名附加: 发送者将数字签名附加到原始数据中。
数据传输: 发送者将签名后的数据传输给接收者,包括原始数据和数字签名。
验证: 接收者使用发送者的公钥来验证签名。这涉及使用公钥来解密数字签名,获得哈希值,并将其与接收到的数据的哈希值进行比较。如果两者匹配,说明数据未被篡改,签名有效。
数字签名的主要目的是确保以下内容:
完整性: 数据在传输过程中没有被篡改或修改。
真实性: 数据确实来自声称的发送者,因为只发送者的私钥可以生成有效的签名。
不可否认性: 发送者不能否认已经签署的数据,因为数字签名证明了他们的参与。
数字签名在安全通信、电子文件的验证、电子邮件加密、电子商务和身份验证等领域广泛使用。常见的数字签名算法包括RSA、DSA和ECDSA。
数字签名的主要作用:验证信息的发送者的身份.和保证文件的完整性
加密通信即对称加密和非对称加密,它是用公钥进行加密,用私钥进行加密
数字签名使用私钥加密,公钥解密
签名和验证的过程如图所示

公钥和验证算法和签名算法都是公开的
http就是我们说的超文本传输协议,这个协议它是用一种明文的方式发送我们的内容,比如我们访问了一个网站,可能会在这个网站上输入密码和账号,我们的账号和密码就会发送到网站的服务器上边,但要是有人在中途截取了我们的信息,那我们的一些重要的信息就可能暴露了,所以为了解决http协议在传输过程中不加密的问题,之后就增加了一个ssl协议(传输层安全协议),这个协议简单说就是提供一个数据安全和完整性的协议,也就是负责网络的加密.
由此可见https使用了非对称加密和对称加密两种加密方式
HTTPS(Hypertext Transfer Protocol Secure)是HTTP的安全版本,用于安全地传输数据和信息。它通过使用加密和身份验证机制来保护数据的机密性和完整性,以防止数据在传输过程中被窃取或篡改。
以下是HTTPS的一些关键特点:
加密通信: HTTPS使用加密技术来加密传输的数据。最常见的加密协议是TLS(Transport Layer Security)或其前身SSL(Secure Sockets Layer)。这些协议使用公钥加密和对称密钥加密来确保数据的保密性。
身份验证: HTTPS通过数字证书来验证网站的身份。这些数字证书由受信任的证书颁发机构(CA)签发,包括全球知名的CA,如DigiCert、Symantec、Comodo等。当用户访问一个使用HTTPS的网站时,
浏览器会验证网站的证书是否有效,以确保用户正在与正确的网站进行通信。
数据完整性: HTTPS使用消息摘要(Message Digest)算法来确保数据在传输过程中没有被篡改。接收者可以验证数据的完整性,以检测潜在的攻击。说白了就是讲数据长度写在消息摘要里
保护隐私: HTTPS防止数据在传输过程中被窃取,包括登录凭据、个人信息、信用卡号码等。这有助于保护用户的隐私。
搜索引擎排名: 搜索引擎(如Google)通常更喜欢使用HTTPS的网站,将其排名较高。因此,采用HTTPS有助于提高网站的可见性。
符合法规: 一些法规和合规要求,如欧洲通用数据保护条例(GDPR),要求数据在传输和存储过程中得到适当的保护。HTTPS可以帮助网站符合这些法规。
HTTPS对于在线交易、登录、电子邮件通信和敏感信息的传输非常重要,因为它提供了安全性和保护。因此,大多数网站,尤其是需要处理用户信息的网站,都应该使用HTTPS以提供更安全的服务。
访问http网站的例子:
1. 当您访问一个使用HTTPS的网站(例如,百度),服务器会向您的浏览器发送数字证书。这个数字证书包含了网站的公钥,以及由受信任的证书颁发机构(CA)签发的数字签名,以证明证书的真实性。
CA的公钥通常内置在浏览器中。 2. 浏览器会验证服务器发送的数字证书的有效性,包括检查数字签名是否有效,证书是否未被吊销,以及是否与该网站的域名匹配。如果验证通过,浏览器将提取服务器的公钥。 3. 一旦浏览器获得服务器的公钥,它会生成一个随机的对称密钥(通常是对称加密密钥),这个密钥将用于对后续通信进行对称加密。这个对称密钥是仅针对当前会话的,因此通常被称为"会话密钥"。 4. 浏览器使用服务器的公钥将会话密钥加密,然后将加密后的会话密钥发送给服务器。 5.服务器使用自己的私钥解密浏览器发送的会话密钥。 6. 现在,浏览器和服务器都拥有了相同的会话密钥,他们可以使用这个密钥进行对称加密通信。对称加密相对较快,因此用于加密和解密实际的数据传输。 整个过程确保了数据的保密性和完整性。公钥加密用于安全地交换会话密钥,而后续的通信采用了更高效的对称加密。这种方式结合了非对称加密和对称加密的优势,以提供安全的HTTPS通信。
后续过程中是否不再需要数字证书了?
一旦建立了安全的HTTPS连接,后续的消息传输不再需要数字签名,因为HTTPS使用了加密技术来保护数据的机密性和完整性。
HTTPS采用的是混合加密模型,首先使用非对称加密(公钥加密)来建立安全的通信通道,包括会话密钥的安全交换。一旦会话密钥被双方建立,后续的通信将使用对称加密(共享的会话密钥)进行加密和解密。
对称加密速度更快,因此适用于实际的数据传输。
数字签名通常用于确保数据的完整性和验证数据的来源。在建立了安全的通信通道后,数据的完整性已经由加密保护,因此不再需要数字签名来验证数据的完整性。数字签名的目的主要是确保数据在传输过程中不被篡改,而一旦建立了安全的加密通道,数据传输是受保护的。
总结一下,HTTPS的混合加密模型提供了对数据的机密性和完整性保护,使后续的通信在加密的情况下进行,而不再需要数字签名来验证数据。数字签名主要用于建立安全通信通道,确保数据在传输期间不被篡改。
浙公网安备 33010602011771号