HTTP 和 HTTPS

一.HTTP

HTTP(Hypertext Transfer Protocol)是一种用于在网络上传输超文本(Hypertext)和其他资源的应用层协议。HTTP是Web中最常用的协议之一,它使得浏览器可以请求和显示网页,也允许服务器传送网页内容和其他资源给客户端浏览器。以下是HTTP的详细介绍:

  1. HTTP的工作方式

    • 请求-响应模型:HTTP基于客户端-服务器模型工作。客户端(通常是Web浏览器)向服务器发送HTTP请求,服务器然后返回HTTP响应,其中包含所请求的数据。
  2. HTTP的版本

    • HTTP/1.0:最早的HTTP版本,已经过时,不再广泛使用。
    • HTTP/1.1:广泛使用的版本,支持持久连接,提高了性能。
    • HTTP/2:引入了多路复用和头部压缩等性能优化特性。
    • HTTP/3:基于UDP协议的新一代HTTP版本,旨在进一步提高性能和安全性。
  3. URL(Uniform Resource Locator):HTTP使用URL来定位和标识要获取的资源。URL包括协议(例如http://)、主机名(服务器地址)、端口号(默认80)、路径和查询参数等组件。

  4. HTTP请求

    • HTTP请求由请求行、请求头部、空行和请求体组成。
    • 请求行包括请求方法(GET、POST、PUT等)、URL和HTTP协议版本。
    • 请求头部包括一系列键值对,用于传递附加信息,如用户代理、Cookie、和其他自定义头部。
    • 请求体通常用于POST请求,包含要发送给服务器的数据,如表单数据或JSON。
  5. HTTP响应

    • HTTP响应由状态行、响应头部、空行和响应体组成。
    • 状态行包括协议版本、状态码和状态消息。
    • 响应头部包括服务器信息、响应时间、内容类型和其他元数据。
    • 响应体包含实际的数据,如HTML文档、图像、JSON等。
  6. HTTP状态码

    • HTTP状态码指示了请求的处理结果。常见状态码包括200(成功)、404(未找到)、500(服务器内部错误)等。
  7. 持久连接

    • HTTP/1.1引入了持久连接,允许在单个连接上发送多个HTTP请求和响应,提高了性能,减少了连接建立和断开的开销。
  8. 安全性

    • HTTP本身是不安全的,数据在传输过程中可以被拦截和窃取。为了提高安全性,应使用HTTPS(HTTP over SSL/TLS),它通过加密通信内容来保护数据的机密性和完整性。
  9. Cookie和Session

    • HTTP通过Cookie和Session来跟踪用户的会话状态。Cookie是存储在客户端的小数据片段,而Session是存储在服务器上的会话信息。

HTTP是Web通信的基础,它使得客户端能够向服务器请求资源,包括HTML文档、图像、CSS样式表、JavaScript脚本等。同时,HTTP还支持不同的请求方法,允许客户端执行各种操作,例如获取资源、提交表单数据、上传文件等。随着Web的发展,HTTP的版本和特性也在不断演进,以适应现代Web应用的需求。

二.HTTPS(加密原理 - 混合加密)

HTTPS(Hypertext Transfer Protocol Secure)是一种用于保护Web通信安全性的协议,它基于TLS/SSL(Transport Layer Security/Secure Sockets Layer)协议。HTTPS的加密原理是通过TLS/SSL协议实现的,以下是HTTPS加密的关键原理:

1.TLS/SSL握手:在建立HTTPS连接之前,客户端和服务器之间会进行TLS/SSL握手,这是建立安全通信通道的关键步骤。握手过程通常包括以下步骤:(这个阶段就是非对称加密)

  • a. 客户端发送ClientHello:客户端向服务器发送TLS版本号、支持的密码套件列表、随机数以及其他参数。
  • b. 服务器发送ServerHello:服务器从客户端提供的信息中选择一个TLS版本号和密码套件,并生成自己的随机数。
  • c. 服务器发送数字证书:如果服务器需要进行身份验证,它会发送数字证书,其中包含服务器的公钥和相关信息。
  • d. 密钥交换:客户端生成一个预共享密钥,使用服务器的公钥进行加密,然后将其发送给服务器。服务器使用自己的私钥解密得到预共享密钥。
  • e. Finished消息:客户端和服务器使用预共享密钥生成会话密钥,并使用该密钥加密握手消息中的随机数,以确认握手成功。

2.数据加密:一旦握手成功,客户端和服务器将使用共享的会话密钥来加密和解密数据。常见的对称加密算法如AES(Advanced Encryption Standard)用于加密通信中传输的数据。这意味着通信数据在传输过程中是加密的,使中间人无法轻松窃听或篡改通信。(这个阶段就是对称加密)

3.数据完整性:TLS/SSL还提供了一种称为HMAC(Hash-based Message Authentication Code)的技术,用于检测数据是否在传输过程中被篡改。HMAC使用共享的会话密钥和散列函数来生成一个消息认证码,该码用于验证数据的完整性。

4.证书验证:客户端通常会验证服务器的数字证书,以确保连接到的服务器是合法的,且证书由可信的颁发机构签发。这有助于防止中间人攻击。

总的来说,HTTPS的加密原理是使用TLS/SSL协议来确保通信的机密性和完整性。通过密钥交换、数据加密、数据完整性验证和证书验证等技术,HTTPS提供了一种安全的通信机制,使敏感信息在互联网上传输时更加安全。这是保护网站访问者隐私和安全的重要工具。

拓展:
(1)TLS和SSL的关系
  • TLS(Transport Layer Security)和SSL(Secure Sockets Layer)都是用于网络通信安全的协议,但它们是相关的但不同的协议,SSL是TLS的前身。
  • SSL是早期用于保护网络通信的协议,由Netscape公司于1994年首次引入。然后,SSL逐渐发展为SSL 2.0和SSL 3.0。然而,SSL 3.0 存在严重的安全漏洞,因此被TLS协议所取代。
  • TLS是SSL的继任者,被设计为更安全、更强大的加密协议。TLS 1.0于1999年发布,之后陆续发布了TLS 1.1、TLS 1.2和TLS 1.3等版本。TLS 1.2和TLS 1.3是当前广泛使用的版本,它们提供了更强的加密和安全性,并修复了SSL存在的一些漏洞。
  • 虽然TLS和SSL是不同的协议,但它们的基本原理和握手过程非常相似,因此通常将它们一起提到。TLS/SSL握手是指建立安全通信通道的握手过程,包括客户端和服务器之间的协商、密钥交换和证书验证等步骤,以确保通信的安全性和完整性。因此,TLS/SSL握手通常是指TLS和SSL协议中的安全握手过程,而不是两个完全不同的协议。最新的安全通信协议一般都使用TLS,而不再使用SSL,以确保更高级别的安全性。

(2)AES(Advanced Encryption Standard)算法

        高级加密标准(Advanced Encryption Standard,AES)是一种对称加密算法,用于保护数据的机密性。它是一种广泛使用的加密算法,被用于安全存储、数据传输以及其他多种加密需求。以下是AES算法的主要特点和原理:

  1. 对称加密:AES是一种对称加密算法,这意味着加密和解密过程都使用相同的密钥。这个密钥被称为会话密钥,是加密和解密的关键。

  2. 固定块大小:AES算法以块为单位进行加密,块的大小固定为128位(16字节)。这意味着无论输入数据多大,它都会被分割成128位块,并且每个块都将独立地加密。

  3. 不同的密钥长度:AES支持不同的密钥长度,包括128位、192位和256位。密钥长度越长,通常加密的强度越高。

  4. SubBytes、ShiftRows、MixColumns和AddRoundKey:AES算法使用一系列的轮次来加密数据。在每个轮次中,数据块会经过SubBytes、ShiftRows、MixColumns和AddRoundKey四个操作,这些操作包括字节替代、行移位、列混淆和轮密钥添加,以增加算法的安全性。

  5. 轮密钥生成:AES算法通过一个密钥扩展算法生成多个轮次所需的轮密钥。这些轮密钥是从初始密钥派生出来的,用于每个轮次的AddRoundKey操作。

  6. 高度安全性:AES被广泛认为是一个高度安全的加密算法,尤其是当使用较长的密钥长度时(如256位密钥)。它经过广泛的加密社区审查和分析,目前尚未发现有效的攻击方法。

  7. 广泛应用:由于其高度安全性和高效性,AES已经成为许多安全应用和协议的首选加密算法,包括HTTPS、VPN、文件加密、数据库加密等。

总的来说,AES是一种强大而高效的对称加密算法,用于保护数据的机密性。它的广泛应用和高度安全性使其成为当今加密领域的标准之一。根据安全需求,可以选择不同长度的密钥来提供不同级别的安全性。

三.总结

1.HTTP

  • 一种用于客户端和服务器之间进行通信应用层协议
  • 使用 请求-响应 模型进行通信。客户端发送一个 HTTP 请求给服务器,服务器接收到请求后,进行处理并返回一个 HTTP 响应。 (请求和响应包括一个起始行、头部字段和一个可选的消息体
    • 起始行包含请求或响应的方法、URL和协议版本。常见的 HTTP 方法有 GET 、PUT 、 DELETE等,用来指定对资源的操作类型。
    • 头部字段包含关于消息的元数据信息,如请求的主机、内容类型、缓存控制等。它们提供了关于请求或响应的额外信息,帮助在客户端和服务器之间进行有效的通信。
    • 消息体是可选的,用于传输实际的数据,如网页内容、表单数据等。
  • HTTP 是一种无状态协议,每个请求和响应都是独立的,服务器不会保留之前的状态信息。为了保存状态,可以使用 Cookie 等机制。
  • 另外,HTTP 还支持安全的加密传输,通过 HTTPS 协议来确保数据的机密性和完整性。

HTTP 是一种简单、灵活的协议,用于在客户端和服务器之间传输数据。它是互联网上最常用的协议之一,被广泛应用于网页浏览、AI通信、文件下载等各种场景。

2.HTTPS

  • HTTPS 在 HTTP 的基础上加入了安全性的通信协议。它通过使用 SSL 或者 TLS 协议对数据进行加密和身份验证,确保通信过程中的数据传输安全。
    • 工作原理
      • 1.客户端发送 HTTPS 请求给服务器
      • 2.服务器将自己的数字证书发送给客户端。该证书包含服务器公钥、证书颁发机构等信息
      • 3.客户端收到证书后,会验证其合法性,包括检查数字签名和有效期等
      • 4.客户端生成一个随机的对称密钥,并使用服务器公钥进行加密,发送给服务器
      • 5.服务器使用私钥解密收到的加密密钥,获取到对称密钥
      • 6.客户端和服务器之间的通信使用对称密钥进行加密和解密,保证数据的机密性和完整性
      • 7.完成通信后,客户端和服务器可以选择丢弃对称密钥,以保证安全性
    • 通过使用 SSL/TLS 协议,HTTPS 提供了以下安全性特性
      • 1.数据加密:通过对数据进行加密,防止中间人窃听、篡改或伪造数据
      • 2.身份验证:服务器使用数字证书提供身份验证,确保客户端与正确的服务器进行通信,防止钓鱼攻击
      • 3.数据完整性:使用消息认证码(MAC)来验证数据的完整性,防止数据被篡改

HTTPS 常用于保护敏感信息的传输,如登陆凭证、支付信息等。在现在互联网中,许多网站都采用 HTTPS 来提供更安全的通信环境,并被广泛用于电子商务、在线银行、社交媒体和其他需要保护用户隐私的场景。

3.二者区别

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值