大家其实都有听过HTTP、HTTPS、TCP、UDP、Websocket,有部分小伙伴只知道概念或者对其有一些模糊的认知,下面我就带大家了解一下。
HTTP全称:Hypertext Transfer Protocol(超文本传输协议)
HTTP是一种用于通过 Internet 传输数据(通常是网页)的协议。
HTTP运行在应用层,使用IP协议在网络上传输数据。客户端(例如网络浏览器)向服务器(例如网络服务器)发送对特定资源(例如网页)的请求,并且服务器发回包含所请求资源的响应,如果该资源无法找到,则会响应错误消息。
HTTP 请求由一个方法(例如 GET、POST)、一个指定资源位置的 URI(统一资源标识符)以及可选的标头和请求主体组成。HTTP 响应由状态代码(例如 200 OK、404 Not Found)、提供有关资源和响应信息的标头以及包含所请求资源或错误消息的响应主体组成。
HTTP 是一种无状态协议,这意味着服务器不会保留有关同一客户端先前请求的任何信息。来自客户端的每个请求都被视为单独且独立的请求,并且服务器使用单独的响应来响应每个请求。
HTTP 广泛用于通过 Internet 传输数据,Web 浏览器使用它从 Web 服务器请求网页,Web 服务器将请求的网页发送回 Web 浏览器。
HTTPS全称:Hypertext Transfer Protocol Secure(安全超文本传输协议)
HTTPS是 HTTP 的扩展,它添加了加密以保护传输数据的隐私和安全。HTTPS 广泛用于网络上的安全交易,例如登录在线银行帐户或进行在线购买。
当客户端通过 HTTPS 连接到服务器时,客户端和服务器使用 SSL/TLS 加密建立安全会话。这种加密保护正在传输的数据不被第三方参与者拦截或修改。
在 HTTPS 中,客户端和服务器首先进行“握手”以建立安全会话。在握手过程中,客户端和服务器商定加密方法并生成一个共享密钥,该密钥将用于加密它们之间传输的所有后续数据。握手后,客户端和服务器可以通过安全会话传输数据,所有数据都使用共享密钥加密和解密。
HTTPS 请求和响应类似于 HTTP 请求和响应,但增加了加密。该请求包含一个方法(例如 GET、POST)、一个指定资源位置的 URI(统一资源标识符),以及可能包含敏感信息的标头和请求主体。响应包含状态代码(例如 200 OK、404 Not Found)、提供有关资源和响应信息的标头以及包含所请求资源或错误消息的响应主体。
HTTP 和 HTTPS 之间的主要区别之一是 HTTP 不安全,所有通过 HTTP 传输的数据都可以很容易地被拦截和读取,而 HTTPS 为传输的数据提供加密和安全性。这就是为什么 HTTPS 通常用于 Web 上的安全交易。
TCP全称:Transmission Control Protocol(传输控制协议)
TCP是一种传输层协议,用于确保通过 Internet 可靠有序地传输数据。它是互联网协议 (IP) 套件中使用的主要协议之一。
TCP 通过在两个设备(例如客户端和服务器)之间建立虚拟连接来提供可靠的数据传输。当客户端要向服务器发送数据时,它会与服务器建立 TCP 连接并开始传输数据。服务器接收数据并确认收到数据。如果客户端没有收到确认,它会重新传输数据,直到收到来自服务器的确认。
TCP 还提供流量控制,确保客户端传输数据的速度不会超过服务器接收数据的速度。它还提供拥塞控制,减少网络拥塞时传输的数据量,防止网络拥塞影响其他用户的服务质量。
TCP 将数据分割成更小的数据包,称为“段”,并通过网络分别传输每个段。这些段在接收端重新组合成原始数据。此过程可确保数据以与传输时相同的顺序到达接收端,即使数据段采用不同的网络路径也是如此。
TCP是面向连接的协议,这意味着在传输数据之前,必须在两个设备之间建立虚拟连接。此连接一直保持到数据传输完成,数据传输完毕后连接终止。
TCP 广泛用于需要可靠数据传输的应用程序,例如电子邮件、文件传输和 Web 浏览。许多其他协议也使用它,例如 HTTP 和 FTP,它们依赖 TCP 提供可靠的数据传输。
UDP全称:Transmission Control Protocol(用户数据报协议)
UDP是一种传输层协议,用于在 Internet 上传输数据。它是互联网协议 (IP) 套件中使用的主要协议之一。
与 TCP 不同,UDP 是一种无连接协议,这意味着在传输和接收数据的设备之间没有建立虚拟连接。相反,每个 UDP 数据报都是单独和独立发送的,没有任何交付或排序保证。
UDP 用于不需要可靠数据传递但需要快速高效数据传输的应用程序。例如,UDP 通常用于流式视频和音频、在线游戏和 IP 语音 (VoIP) 应用程序。
在 UDP 中,要传输的数据被分成更小的数据包,称为“数据报”。每个数据报都是单独和独立传输的,没有任何交付或排序保证。接收设备负责将数据报重新组装成原始数据。
与 TCP 相比,UDP 提供更快、更高效的数据传输,因为没有用于建立和维护虚拟连接的开销,也没有用于错误检查和重新传输丢失或损坏数据的开销。
但是,由于缺乏可靠的数据传递,UDP 可能更适合于容忍某些数据丢失的应用程序,例如视频和音频流,而不是需要可靠数据传递的应用程序,例如文件传输和电子邮件。
WebSocket 是一种通信协议,用于通过 Internet 在客户端和服务器之间进行实时双向通信。它支持全双工通信,允许客户端和服务器同时发送和接收数据。
WebSockets 被设计为在与 HTTP(端口 80)和 HTTPS(端口 443)相同的端口上工作,并且使用与 HTTP 和 HTTPS 相同的底层传输层,即传输控制协议 (TCP)。
WebSockets 与传统 HTTP 通信的主要区别在于,HTTP 是一种请求-响应协议,客户端发送请求,服务器发送响应,而 WebSockets 允许客户端和服务器之间进行连续的双向通信。这意味着服务器无需客户端请求就可以向客户端推送数据,客户端无需等待响应即可向服务器发送数据。
WebSockets 广泛用于在线游戏、聊天系统和股市数据更新等实时应用程序,其中低延迟和实时数据更新很重要。它们还用于需要实时通信的基于 Web 的应用程序,例如在线协作工具和交互式仪表板。
WebSockets 为 Internet 上的实时应用程序提供了一种快速、高效和低延迟的通信解决方案。
HTTP 在 Internet 协议 (IP) 套件的应用层上运行,它使用底层传输层协议(TCP 或 UDP)来传输数据。
以下是 HTTP 通信的工作流程:
HTTP 使用请求-响应模型,客户端向服务器发送请求,服务器返回响应。客户端和服务器使用一系列消息进行通信,其中每条消息都包含一个标头和一个有效负载。标头包含有关消息的信息,例如请求或响应的类型、有效负载的格式以及请求的状态。有效负载包含正在传输的实际数据。
HTTPS 在互联网协议 (IP) 套件的应用层上运行,它使用底层传输层协议(TCP 或 UDP)来传输数据。
以下是 HTTPS 通信的工作流程:
HTTP 和 HTTPS 的主要区别在于后者提供加密和身份验证以保护传输过程中的敏感信息。当客户端向服务器发送 HTTPS 请求时,数据会使用安全加密算法进行加密,只有预期的接收者才能对其进行解码。此外,服务器的身份使用数字证书进行验证,这有助于防止中间人攻击。
TCP(传输控制协议)是一种传输层协议,可在网络上不同主机上运行的应用程序之间提供可靠、有序的数据传输。它是 Internet 上最常用的协议之一,许多 Internet 上最受欢迎的服务都使用它,例如万维网、电子邮件和文件传输。
以下是 TCP 通信的工作流程:
TCP 的主要优点是它的可靠性。TCP 确保数据按发送顺序传送给接收者,它检测并重新传输任何丢失或损坏的段。这使它成为需要可靠、按顺序传输数据的应用程序的理想协议,例如电子邮件、文件传输和 Web 浏览。
UDP(用户数据报协议)是一种传输层协议,可在网络上不同主机上运行的应用程序之间提供简单、不可靠的数据传输。与提供可靠、有序的数据传送的 TCP 不同,UDP 是无连接的,不保证将数据传送到接收方。
以下是 UDP 通信的工作流程:
UDP 的主要优点是它的简单性和速度。因为 UDP 不提供任何可靠性保证,所以它比 TCP 更快并且需要更少的开销,而 TCP 必须实施机制来确保数据的可靠传送。这使得 UDP 成为需要快速发送大量数据的应用程序的不错选择,例如在线游戏、视频会议和流媒体。
⚠️注意
:TCP 是一种可靠的、面向连接的协议,这意味着在客户端和服务器应用程序之间建立专用连接,所有数据都通过该连接传输。这与不可靠的无连接协议 UDP(用户数据报协议)形成对比,后者不保证数据的可靠传送。
WebSocket 是一种通信协议,它通过单个长期连接在客户端和服务器之间提供全双工通信。WebSocket 协议旨在解决传统 HTTP 请求-响应模型的局限性,该模型需要为每个新请求建立一个新连接。
以下是 WebSocket 通信的工作流程:
WebSocket 的主要优点是它能够在客户端和服务器之间提供实时的双向通信,而无需频繁建立和断开连接。这使得 WebSocket 成为需要实时更新的应用程序的理想选择,例如在线游戏、股票行情和聊天应用程序。
⚠️注意
:由于 WebSocket 协议是一项相对较新的技术,它还没有像传统的 HTTP 和 TCP 那样得到广泛支持,可能需要在某些服务器和防火墙上进行特殊配置才能正常工作。
相似之处:
区别:
所有这些协议都扮演着不同的角色,并用于不同的目的。为您的应用程序的特定要求选择正确的协议以确保高效和可靠的通信非常重要。
下面列举只是许多领域中的几个例子