HTTP协议和TCP协议有什么区别?

简短的回答:TCP 是一种传输层协议,而 HTTP 是一种在 TCP 上运行的应用层协议。继续阅读长答案。代理ip
要了解差异(以及许多其他网络主题),您需要了解分层网络模型的概念。从本质上讲,有不同的协议可以让计算机在不同的距离和不同的抽象层进行通信。
网络堆栈的最底层是物理层。这是电信号或光脉冲或无线电波实际从一个地方传输信息到另一个地方的地方。物理层并没有真正的协议,而是有电压、频率和其他物理属性的标准。你可以通过这种方式直接传输信息,但你需要大量的电力或专用线路,而且如果没有更高的层级,你将无法共享带宽。
上一层是链路层。该层涵盖与共享物理通信介质的设备的通信。在这里,以太网、802.11a/b/g/n 和令牌环等协议指定如何处理对物理介质的多个并发访问以及如何将流量定向到一个设备而不是另一个设备。在典型的家庭网络中,这就是您的计算机与家庭“路由器”通信的方式。
第三层是网络层。在大多数情况下,这是由互联网协议 (IP) 主导的。这就是 Internet 的神奇之处,您可以与地球另一端的计算机交谈,而无需知道它在哪里。路由器处理将您的流量从您的本地网络定向到另一台计算机所在的网络,它自己的链路层处理将数据包发送到正确的计算机。
现在我们正在取得进展。我们可以与世界各地的一台计算机交谈,但那台计算机运行着许多不同的程序。它应该如何知道将您的消息传递给哪一个?传输层负责处理此事,通常使用端口号。两个最流行的传输层协议是 TCP 和 UDP。TCP 做了很多有趣的事情来消除网络层数据包交换通信的困难点,比如重新排序数据包、重新传输丢失的数据包等。UDP 更不可靠,但开销更小。
所以我们已经将您的浏览器连接到另一端的 Web 服务器软件,但是服务器如何知道您想要的页面呢?您如何发布问题或答案?这些是应用层协议处理的事情。对于 Web 流量,这是超文本传输​​协议 (HTTP)。应用层协议有数千种:电子邮件的 SMTP、IMAP 和 POP3;XMPP、IRC、ICQ 聊天;Telnet、SSH、RDP 用于远程管理;ETC。
这些是 TCP/IP 网络模型的五层,但它们实际上只是概念上的。OSI 模型有 7 层。实际上,一些协议在不同层之间移动,或者可以同时在多个层上工作。例如,TL​​S/SSL 在网络层和传输层之间提供加密和会话信息。在应用程序层之上,应用程序编程接口 (API) 管理与 Quora、Twitter 和 Facebook 等 Web 应用程序的通信。