HTTP1\2\3 和 https 分别是什么?

发布时间 2023-06-09 09:40:14作者: PreciousnessX

http1,http2 http3 和https 有什么区别

HTTP/1.0和HTTP/1.1是早期的HTTP协议版本,而HTTP/2(也称为HTTP/2.0)和HTTP/3(也称为QUIC)是后续的协议版本。以下是它们之间的主要区别:

  1. HTTP/1.x:HTTP/1.x是一种基于文本的协议,使用明文传输数据。每个请求都需要建立一个新的连接,并且请求和响应是按顺序依次发送和接收的。这种方式可能导致延迟和效率低下的问题。

  2. HTTP/2:HTTP/2是一种二进制协议,通过多路复用技术在单个连接上同时发送多个请求和响应。这意味着可以并行处理请求和响应,提高了性能和效率。此外,HTTP/2还支持服务器主动推送(server push)功能,允许服务器在客户端请求之前发送额外的资源。

  3. HTTP/3:HTTP/3是基于QUIC协议的下一代HTTP协议。QUIC是一种基于UDP的传输协议,旨在提供更快的连接建立和更低的延迟。HTTP/3通过使用QUIC,解决了TCP在高丢包率网络环境下的性能问题。它通过使用UDP提供更好的容错性和更快的连接迁移,以及使用多路复用技术和加密来提高性能和安全性。

  4. HTTPS:HTTPS是在HTTP上加入了TLS/SSL加密层的安全协议。无论是HTTP/1.x、HTTP/2还是HTTP/3,它们都可以使用HTTPS来确保通信的安全性和保密性。HTTPS使用TLS/SSL协议对传输的数据进行加密,以防止中间人攻击和数据篡改。

总结起来,HTTP/1.x是基于文本的协议,HTTP/2是二进制协议,而HTTP/3使用了基于UDP的QUIC协议。HTTPS是通过在HTTP上加入TLS/SSL加密层来提供安全性。每个协议版本都有不同的优势和适用场景,选择适当的协议取决于具体的需求和环境。

https是如何加密的

HTTPS使用TLS(Transport Layer Security)或其前身SSL(Secure Sockets Layer)来加密通信。以下是HTTPS的加密过程:

  1. 握手过程(Handshake):客户端发送一个连接请求到服务器,并请求建立安全连接。服务器在回应中发送自己的公钥给客户端。

  2. 公钥加密:客户端使用服务器的公钥对一个称为"PreMaster Secret"的随机生成的密钥进行加密,并将其发送回服务器。

  3. 密钥交换:服务器使用自己的私钥对收到的"PreMaster Secret"进行解密,从而获得会话密钥(Session Key)。

  4. 对称加密:客户端和服务器使用会话密钥来加密和解密后续的数据传输。对称加密算法(如AES)在这一步骤中用于实际的数据加密和解密。

整个过程中还包括验证服务器证书的有效性和真实性,以确保客户端与正确的服务器建立连接。这种验证通常依赖于数字证书颁发机构(Certificate Authorities)来签发和验证服务器证书。

通过使用非对称加密和对称加密结合的方式,HTTPS能够确保通信的机密性和完整性。非对称加密用于安全地交换会话密钥,而对称加密用于实际的数据传输。这样一来,即使在公共网络中截获了加密的数据,攻击者也无法轻易解密其内容。

证书在什么时候校验的

证书在HTTPS连接建立的握手过程中进行校验。校验证书的过程通常在以下几个步骤中进行:

  1. 服务器发送证书:在握手过程中,服务器将自己的数字证书发送给客户端。证书包含服务器的公钥、证书颁发机构的数字签名以及其他相关信息。

  2. 客户端验证证书:客户端接收到服务器发送的证书后,会进行证书的验证过程。验证的目的是确保证书的有效性、真实性和可信任性。

    • 验证证书的有效性:客户端检查证书的有效期是否过期,以确保证书尚未失效。

    • 验证证书的真实性:客户端检查证书的数字签名是否有效,以确认证书的完整性和真实性。客户端会使用证书颁发机构(Certificate Authority)的公钥来验证数字签名的有效性。

    • 验证证书的可信任性:客户端检查证书颁发机构是否被其信任的根证书机构所签署。如果证书颁发机构是被客户端信任的根证书机构所签署,那么证书将被视为可信任的。

  3. 提示用户(可选):如果证书验证失败或存在问题,客户端可能会向用户显示警告或错误信息,提示用户连接的不安全或存在风险。用户可以选择是否继续访问网站或中止连接。

  4. 密钥交换:如果证书验证通过,客户端会使用服务器证书中的公钥来加密一个称为"PreMaster Secret"的随机密钥,并将其发送给服务器。这一步骤是为了建立安全的通信会话。

通过在握手过程中验证证书,HTTPS确保客户端与正确的服务器建立了加密的连接,并防止中间人攻击和数据篡改。

证书颁发机构是谁

证书颁发机构(Certificate Authority,CA)是负责验证和签发数字证书的权威机构。它们在证书颁发过程中扮演着关键的角色。以下是一些常见的证书颁发机构:

  1. Symantec (DigiCert): Symantec是一家知名的数字安全公司,旗下拥有DigiCert品牌,提供广泛的证书服务。

  2. Let's Encrypt: Let's Encrypt是一个非营利组织,旨在提供免费的SSL证书,以促进互联网的安全加密。

  3. Comodo: Comodo是一家知名的数字证书颁发机构,提供各种类型的证书,包括SSL证书和代码签名证书。

  4. GlobalSign: GlobalSign是一家全球性的数字证书颁发机构,提供各种证书,涵盖了从个人网站到大型企业的不同需求。

  5. GoDaddy: GoDaddy是一个知名的域名注册商,同时也提供SSL证书和其他安全服务。

这只是一小部分知名的证书颁发机构,市场上还有许多其他的CA公司。不同的证书颁发机构可能具有不同的信任级别和商业模式,选择合适的证书颁发机构取决于具体需求和信任度的要求。