带您了解HTTP、HTTPS、TCP、UDP、Websocket 概念、通信流程、异同点、应用领域(二)

通讯流程

HTTP

HTTP 在 Internet 协议 (IP) 套件的应用层上运行,它使用底层传输层协议(TCP 或 UDP)来传输数据。

以下是 HTTP 通信的工作流程:

客户端(例如网络浏览器)向服务器(例如网络服务器)发送针对特定资源(例如网页或图像)的 HTTP 请求。该请求包含有关所需资源和客户端功能的信息。

服务器接收请求并处理它。如果所请求的资源可用,则服务器会向客户端返回 HTTP 响应以及所请求的资源。响应包括有关资源的信息以及请求的状态。

客户端接收来自服务器的响应并处理它。如果响应成功,则客户端向用户显示请求的资源。

HTTP 使用请求-响应模型,客户端向服务器发送请求,服务器返回响应。客户端和服务器使用一系列消息进行通信,其中每条消息都包含一个标头和一个有效负载。标头包含有关消息的信息,例如请求或响应的类型、有效负载的格式以及请求的状态。有效负载包含正在传输的实际数据。

HTTPS

 HTTPS 在互联网协议 (IP) 套件的应用层上运行,它使用底层传输层协议(TCP 或 UDP)来传输数据。

以下是 HTTPS 通信的工作流程:

客户端(例如网络浏览器)向服务器(例如网络服务器)发送 HTTPS 请求以获取特定资源(例如网页或图像)。该请求包含有关所需资源和客户端功能的信息。

服务器接收请求并使用 SSL(安全套接字层)或 TLS(安全传输层)建立安全连接,这是用于安全 Internet 通信的标准加密技术。

一旦建立了安全连接,客户端和服务器就会交换信息以相互验证。客户端验证服务器是否可信,服务器验证客户端是否有权访问所请求的资源。

身份验证过程完成后,客户端和服务器使用安全连接传输实际数据,例如请求的资源或用户输入的表单数据。

服务器接收请求并处理它。如果请求的资源可用,服务器会向客户端返回 HTTPS 响应以及请求的资源。响应包括有关资源的信息以及请求的状态。

客户端接收来自服务器的响应并处理它。如果响应成功,则客户端向用户显示请求的资源。

       HTTP 和 HTTPS 的主要区别在于后者提供加密和身份验证以保护传输过程中的敏感信息。当客户端向服务器发送 HTTPS 请求时,数据会使用安全加密算法进行加密,只有预期的接收者才能对其进行解码。此外,服务器的身份使用数字证书进行验证,这有助于防止中间人攻击。

TCP

TCP(传输控制协议)是一种传输层协议,可在网络上不同主机上运行的应用程序之间提供可靠、有序的数据传输。它是 Internet 上最常用的协议之一,许多 Internet 上最受欢迎的服务都使用它,例如万维网、电子邮件和文件传输。

以下是 TCP 通信的工作流程:

客户端应用程序通过向服务器应用程序发送包含 SYN(同步)标志的 TCP 段来启动 TCP 连接。这称为“SYN 请求”。

服务器应用程序接收 SYN 请求并发回一个设置了 SYN 和 ACK(确认)标志的 TCP 段。这称为“SYN-ACK 响应”。

客户端应用程序收到 SYN-ACK 响应并发回设置了 ACK 标志的 TCP 段。这样就完成了建立 TCP 连接的三次握手。

一旦建立了 TCP 连接,客户端和服务器应用程序就可以使用 TCP 段相互发送数据。每个段包含一部分数据,以及序列号和确认号,TCP 协议使用它们来提供可靠的数据传送。

TCP 协议通过使用多种技术提供可靠的数据传输,例如重新传输丢失或损坏的段、重新排序乱序段以及检测和处理重复段。

当客户端或服务器应用程序想要结束 TCP 连接时,它会发送一个设置了 FIN(完成)标志的 TCP 段。另一个应用程序收到 FIN 并发回一个设置了 ACK 标志的 TCP 段。这将终止 TCP 连接。

TCP 的主要优点是它的可靠性。TCP 确保数据按发送顺序传送给接收者,它检测并重新传输任何丢失或损坏的段。这使它成为需要可靠、按顺序传输数据的应用程序的理想协议,例如电子邮件、文件传输和 Web 浏览。

UDP

UDP(用户数据报协议)是一种传输层协议,可在网络上不同主机上运行的应用程序之间提供简单、不可靠的数据传输。与提供可靠、有序的数据传送的 TCP 不同,UDP 是无连接的,不保证将数据传送到接收方。

以下是 UDP 通信的工作流程:

客户端应用程序向服务器应用程序发送 UDP 数据报。UDP 数据报包含客户端要发送的部分数据,以及服务器的目标 IP 地址和端口号。

UDP 数据报通过网络传输到服务器,没有任何交付保证。UDP 协议不提供任何错误检测或纠正机制,因此数据报有可能丢失、重复或乱序传送。

服务器应用程序接收 UDP 数据报并处理其中包含的数据。

不需要像 TCP 那样在客户端和服务器应用程序之间建立专用连接。客户端可以向任何正在侦听正确 IP 地址和端口号的服务器发送任意数量的 UDP 数据报,而无需显式设置或断开连接。

UDP 的主要优点是它的简单性和速度。因为 UDP 不提供任何可靠性保证,所以它比 TCP 更快并且需要更少的开销,而 TCP 必须实施机制来确保数据的可靠传送。这使得 UDP 成为需要快速发送大量数据的应用程序的不错选择,例如在线游戏、视频会议和流媒体。

⚠️注意:TCP 是一种可靠的、面向连接的协议,这意味着在客户端和服务器应用程序之间建立专用连接,所有数据都通过该连接传输。这与不可靠的无连接协议 UDP(用户数据报协议)形成对比,后者不保证数据的可靠传送。

WebSocket

WebSocket 是一种通信协议,它通过单个长期连接在客户端和服务器之间提供全双工通信。WebSocket 协议旨在解决传统 HTTP 请求-响应模型的局限性,该模型需要为每个新请求建立一个新连接。

以下是 WebSocket 通信的工作流程:

客户端通过向服务器发送 WebSocket 升级请求来启动连接,通常是通过 HTTP 连接。升级请求包含一个特殊的标头,表明客户端想要升级到 WebSocket 通信。

服务器响应升级请求,状态码为101,表示连接已成功升级为WebSocket通信。

从这一点开始,连接以全双工模式运行,这意味着客户端和服务器都可以随时向对方发送数据。WebSocket 协议提供了一种基于消息的通信模型,其中数据作为消息传输,而不是作为字节流传输。

消息使用紧凑的二进制格式传输,这比传统 HTTP 或 TCP 使用的基于文本的格式更有效。WebSocket 协议提供了一种机制,可以自动将大消息分成较小的数据包,并在另一端将数据包重新组合成原始消息。

WebSocket 连接一直保持打开状态,直到客户端或服务器决定关闭它。关闭连接是一个简单的两步过程,包括发送关闭消息,然后等待另一端确认关闭消息。

WebSocket 的主要优点是它能够在客户端和服务器之间提供实时的双向通信,而无需频繁建立和断开连接。这使得 WebSocket 成为需要实时更新的应用程序的理想选择,例如在线游戏、股票行情和聊天应用程序。

⚠️注意:由于 WebSocket 协议是一项相对较新的技术,它还没有像传统的 HTTP 和 TCP 那样得到广泛支持,可能需要在某些服务器和防火墙上进行特殊配置才能正常工作。

异同点

相似之处:

它们都是用于在 Internet 上传输数据的通信协议。

它们都位于 IP(互联网协议)之上,用于网络传输数据。

区别:

HTTP 与 HTTPS:HTTP 是明文通信协议,而 HTTPS 是使用 SSL/TLS 加密的加密版本。

TCP 与 UDP:TCP 是一种面向连接的协议,可提供可靠、有序的数据传输,而 UDP 是一种无连接协议,速度优先于可靠性。

HTTP、HTTPS、TCP 和 UDP:所有这些协议都使用 IP 在互联网上传输数据,但它们的数据传输方法不同。HTTP和HTTPS用于传输网页和其他类型的数据,TCP用于可靠的数据传输,UDP用于快速高效的数据传输。

WebSockets 是一种基于单个 TCP 连接的持久性全双工通信协议,而 HTTP 和 HTTPS 用于短期请求/响应事务。

所有这些协议都扮演着不同的角色,并用于不同的目的。为您的应用程序的特定要求选择正确的协议以确保高效和可靠的通信非常重要。

应用领域(常用)

下面列举只是许多领域中的几个例子

HTTP

Web 浏览:Web 浏览器使用 HTTP 从 Web 服务器检索和显示网页。

Web 开发:Web 开发人员使用 HTTP 来创建动态 Web 应用程序和网站。

电子商务:电子商务站点使用 HTTP 在客户端和服务器之间传输有关产品、价格和订单的数据。

API(应用程序编程接口):HTTP 用于创建使应用程序能够相互通信和交换数据的 API。

云计算:云计算服务使用 HTTP 来提供对远程计算资源的访问。

物联网 (IoT):IoT 设备使用 HTTP 通过互联网传输数据,例如传感器读数和控制命令。

移动应用程序:移动应用程序使用 HTTP 从服务器检索数据并更新客户端上的信息。

社交媒体:社交媒体平台使用 HTTP 在客户端和服务器之间传输有关用户、帖子和交互的数据。

HTTPS

安全网页浏览:网页浏览器使用 HTTPS 来加密客户端和服务器之间传输的数据,确保用户的隐私和安全。

电子商务:电子商务网站使用 HTTPS 传输敏感信息,例如支付详情和个人信息,为客户提供额外的安全保护。

银行和金融服务:金融机构使用 HTTPS 来保护交易和保护客户数据。

医疗保健:HTTPS 在医疗保健中用于保护敏感的患者信息,例如医疗记录和个人详细信息。

政府网站:政府网站使用 HTTPS 来保护敏感信息的传输,例如纳税申报表和其他个人数据。

登录页面:登录页面使用 HTTPS 来加密用户名和密码的传输,防止窃听和其他安全威胁。

云计算:云计算服务使用 HTTPS 来保护客户端和服务器之间传输的数据,为用户提供隐私和安全。

TCP

文件传输:TCP 用于在互联网上传输大文件,确保数据准确无误地传输。

电子邮件:TCP 用作许多电子邮件协议的传输层协议,例如 SMTP(简单邮件传输协议),确保电子邮件消息的可靠传递。

Web 浏览:Web 浏览器使用 TCP 在客户端和服务器之间传输数据,从而提供可靠且无错误的网页和其他数据传输。

远程访问:TCP 用于远程访问协议,例如 Telnet 和 SSH,允许用户安全地连接到远程计算机并访问其资源。

数据库连接:TCP用于数据库连接,例如JDBC(Java数据库连接)和ODBC(开放式数据库连接),以在客户端和服务器之间传输数据。

流媒体:流媒体服务(例如 Netflix 和 YouTube)使用 TCP 在 Internet 上传输大量视频和音频数据。

游戏:许多在线游戏平台(例如 Xbox Live 和 PlayStation Network)都使用 TCP 来为在线游戏提供稳定快速的连接。

UDP

流媒体:流媒体服务(如 IPTV 和在线游戏)使用 UDP 传输实时视频和音频数据。

语音和视频通话:许多语音和视频通话应用程序(例如 Skype 和 Facetime)使用 UDP 来传输实时语音和视频数据。

DNS:域名系统 (DNS) 使用 UDP 将域名解析为 IP 地址。

游戏:许多在线游戏平台(例如 Xbox Live 和 PlayStation Network)使用 UDP 来传输实时游戏数据。

网络监控:UDP 被 Nagios 和 Wireshark 等网络监控工具用于监控网络活动。

虚拟专用网络 (VPN):PPTP 和 OpenVPN 等 VPN 协议使用 UDP 在互联网上安全地传输数据。

远程管理:远程管理工具(如远程桌面和 VNC)使用 UDP 来远程控制计算机和访问其资源。

Websocket

实时 Web 应用程序:WebSocket 用于实现 Web 浏览器和 Web 服务器之间的实时通信,实现在线聊天、实时游戏和协作工具等应用程序。

物联网 (IoT):IoT 设备使用 WebSocket 在设备和云服务器之间传输实时数据。

股票市场交易:股票市场交易平台使用 WebSocket 传输有关股票价格和市场趋势的实时数据。

在线游戏:许多在线游戏平台都使用 WebSocket 来启用实时多人游戏。

社交媒体:许多社交媒体平台都使用 WebSocket 向用户实时更新新帖子、评论和通知。

远程医疗:远程医疗平台使用WebSocket在远程会诊时传输医生和患者之间的实时数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值