图解HTTP chapter 1

TCP/IP协议族

计算机与网络进行相互通信,双方就必须基于相同的方法,如怎样探测到通信目标、由哪方发起通信、使用哪种语言通信,不同的硬件、操作系统之间的通信,都需要一种规则,这就称之为协议。HTTP协议就是TCP/IP协议族中的一种。

TCP/IP的分层管理

TCP/IP中被关注得最多的是分层问题,按层次可分为:应用层传输层网络层数据链路层;分层的好处是某个地方需要更改只要改对应的层次即可,不需全改,节省时间。

  • 应用层:决定了向用户提供应用服务时通信的活动,预存了各类通用的应用服务,如FTP和DNS,HTTP协议就是在应用层。

  • 传输层:对应用层提供处于网络连接中的两台计算机之间的数据传输,将请求分割为数据包,传向下一层,这层用到了TCP协议。

  • 网络层: 处理在网络上流动的数据包,数据包是最小的数据传输单位,该层规定了通过怎样的路线到达对方计算机,并把数据包传给对方。

  • 链路层:处理连接网络的硬件部分。

TCP、IP、DNS与HTTP的关系

  • TCP:TCP位于传输层,提供可靠得字节流服务,为了方便传输,将大块数据分割为了以报文段为单位得数据包进行管理和传输,而为了准确无误将数据传到目标,TCP协议采用了三次握手策略:客户端发送一个带SYN标志的数据包给对方,服务端接收后,回传一个带有SYN/ACK标志的数据包表示收到信息,最后客户端再回传一个带ACK标志的数据包,代表握手结束,若中途失败,TCP会再次以相同顺序发送相同的数据包。

  • IP:IP协议位于网络层,其作用是把各种数据包传送给对方,其中两个重要的条件IP地址MAC地址IP地址:节点被分配到的地址,可变。MAC地址:网卡所属的固定地址,不可变。与MAC地址紧密相连的是ARP协议,该协议可与解析通信方的IP地址就可以反查出对应的MAC地址。在到达通信目标的中转过程中,计算机和路由器等网络设备只能获悉大概的传输路线,就是说客户端发出的IP请求不能被直接解析到对应的服务器,需要经过不断的中转,不断的ARP解析,最后到达目标服务器。

  • DNS:DNS是老伙计了,它的诞生是为了能把域名解析成复杂的IP地址,客户就不用记住复杂的一串数字,也能通过IP地址反查域名。

一次完整的请求

  • 客户端发送请求 -> DNS解析域名返回IP地址 -> 生成请求,在应用层HTTTP生成报文 -> 在传输层TCP对数据分割成文段,带序号 -> 在网络层,IP通过ARP解析IP地址边中转边传送 -> 链路层传到服务端 -> 网络层接收数据包 -> 传输层重组报文 -> 应用层处理HTTP请求 -> 服务器 -> 将处理结果按原路返回

URI和URL

URI是统一资源标识符,URL是统一资源定位符,URI用字符串标识某一互联网资源,而URL表示资源的在互联网上所处的位置,URLURI的子集。