图解HTTP 第一章

HTTP(超文本传输协议)


TCP/IP 分层

  1. 应用层

      	     1. 决定向用户提供应用服务时通信的活动 (HTTP,FTP,DNS)  
    
  2. 传输层

      	     1. 提供处于网络连接中两台计算机之间的数据传输
    
  3. 网络层

      	     1. 处理网络上流动的数据包,为数据传输选择一条路线
    
  4. 数据链路层

      	     1. 一些肉眼可见的硬件设施 网卡 光纤 等
    

TCP/IP通信传输流

客户端 过程 服务器
应用层 HTTP数据 应用层
传输层 加/消去 TCP首部 传输层
网络层 加/消去 IP首部 网络层
链路层 加/消去 以太网首部 链路层

与HTTP关系紧密的协议


负责传输的IP协议

IP(网际协议)处于网络层,IP协议的作用是把各种数据包传送给对方,而确保传送到对方那里,要满足各种条件。其中两个重要的条件就是IP地址MAC地址

IP地址指明了节点被分配到的地址,Mac地址是指网卡所属的固定地址,IP地址可以和MAC地址进行匹配。IP地址可以变换,MAC地址基本不会更改


ARP协议

IP间的通信依赖MAC地址。在网络上,通信的双方在同一局域网(LAN)内的情况还是很少的,通常需要多台计算机和网络设备中转。而在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址

TCP协议

TCP协议位于传输层,提供可靠的字节流服务。

字节流服务指为了方便传输将大块数据分割成以报文段为单位的数据包进行管理

可靠的服务指TCP协议能够确认数据最终是否送到对方


确保数据能达到目标

TCP协议采用三次握手策略。用TCP协议把数据包送出去后,TCP一定会向对方确认是否成功送达。握手过程中使用了TCP的标志——SYN和——ACK。

发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后发送端再回传一个带ACK标志的数据包,代表“握手”结束

若在握手的过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包

负责域名解析的DNS服务

DNS服务位于应用层的协议。它提供域名到IP地址之间的解析服务

DNS协议提供通过域名(例如 www.baidu.com)查找IP(14.215.177.39),或逆向从IP反查域名的服务(cmd的nslookup 指令)


各种协议与HTTP协议的关系