用户在Web浏览器(下文统称为客户端)请求某个URL时,该请求会被发送到Web服务器,Web服务器接收到客户端的请求后,将响应请求,并向客户端传送数据。为保证数据在客户端和Web服务器之间传输信息的可靠性,客户端和Web服务器必须遵守一定的标准或者规则,其中最为重要的便是HTTP(Hyper Text Transfer Protocol)协议。
HTTP协议,即超文本传输协议,是Web系统最核心的内容,用于从Web服务器传输数据到客户端。其传输的数据类型有数百个,以下列举部分数据类型。

  • text/html:HTML格式
  • text/plain:纯文本格式
  • text/xml:XML格式
  • image/gif:gif图片格式
  • image/jpeg:jpg图片格式
  • image/png:png图片格式
  • application/xhtml+xml:XHTML格式
  • application/xml:XML数据格式
  • application/atom+xml:Atom XML聚合格式
  • application/json:JSON数据格式
  • application/pdf:pdf格式
  • application/msword:word文档格式
  • application/octet-stream:二进制流数据(如常见的文件下载)

HTTP是应用层协议,数据在网络协议中传输需要依赖于TCP/IP协议。TCP(Transmission Control Protocol),即传输控制协议,用于保证数据在两台主机之间传输的可靠性,TCP实行“顺序控制”(数据按照发送的顺序到达)和“重发控制”(传输数据时,为每一个数据包启动一个超时定时器,如果定时器在超时之前,接收方确认了消息,则释放数据包占用的缓存区,否则发送方就重新发送这个数据包)。IP(Internet Protocol),即网际协议,负责将数据包从源发送到最终的目标计算机,但不提供可靠性传输,也不具备“重发控制”。如下图所示,TCP/IP协议包括四层,应用层、传输层、网络层和链路层,每一层都负责不同的功能。

2.1 HTTP简介_客户端


网络接口层(包含物理层和链路层):在TCP/IP协议中,网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层,所以,网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。比如计算机操作系统中的设备驱动程序和对应的网络接口卡。

网络层:网络层在TCP/IP协议中位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等。

传输层:作为TCP/IP协议的第二层,传输层在整个TCP/IP协议中起到了中流砥柱的作用。且在传输层中,TCP和UDP同样起到了中流砥柱的作用。