TCP/IP协议 是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。

关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍

“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”

术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议。

“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。

HTTP(超文本传输协议)看到这里,前端同学肯定有一种莫名的熟悉感觉,对!我们的HTML(超文本标记语言),也从一方面体现了我们前端跟HTTP协议打交道的机会特别多,HTTP是利用TCP在两台电脑(通常是web服务器和客户端)之间传输信息的协议。客户端使用web浏览器发起HTTP请求给web服务器,web服务器发送被请求的信息给客户端。

下面的表格中列举了不同的TCP/IP和其他的协议在最初OSI模型中的位置

位置 协议
应用层 例如HTTP、SMTP、FTP、SSH
表示层 例如XDR、ASN
会话层 例如SSH、RPC
传输层 例如TCP、UDP、RTP
网络层 例如IP
数据链路层 例如以太网
物理层 例如线路、无线电、光纤

HTTP是我们前端最熟悉也是接触最多的网络通信协议,所以这里做一下详细介绍

HTTP协议的几个重要概念

1.连接(connection):一个传输层的实际环流,它是建立在两个互通的应用程序之间。

2.消息(message):HTTP通讯的基本单位,包括一个结构化的八元组序列并通过连接传输。

3.请求(request):一个从客户端到服务器的请求信息包括应用于资源的方法、资源的标识符和协议的版本号。

4.响应(response):一个从服务器返回的信息。其中包含HTTP协议的版本号、请求的状态(例如200 或 404)和文档的MIME类型

5.资源(resource):由URL标识的网络数据对象或者服务。

6.实体(entity):数据资源或来自服务器资源的回映的一种特殊表示方法,它可能被包围在一个请求或响应信息中。一个实体包括实体头信息和实体本身的内容。

7.客户机(client):一个为发送请求目的而建立连接的应用程序。

8.用户代理(useragent):初始化一个请求的客户机,它们是浏览器、编辑器、或者是其他用户工具。

9.服务器(server):一个接受连接请求、并对请求返回信息的应用程序。

10.源服务器(originserver):是一个给定资源可以在其上驻留或被创建的服务器。

11.代理(proxy):一个中间程序,它可以充当一个服务器,也可以充当一个客户机,为其他客户机建立请求。请求是通过可能的内部翻译或经过传递到其他的服务器中。

12.网关(gateway):一个作为其它服务器中间媒介的服务器。与代理不同的是,网关接受请求就好像对请求的资源来说它就源服务器。发出请求的客户机并没有意识到它在同网管打交道。

13.通道(tunnel):是作为两个连接中继的中介程序。一旦被激活,通道便被认为不属于HTTP通讯,尽管通道可能是被一个HTTP请求初始化的。当被中继的连接两端关闭时,通道便消失。当一个门户(Portal)必须存在或中介(Intermediary)不能解释中继的通讯时通道被经常使用。

14.缓存(Cache):反应信息的局域存储。