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表示资源的在互联网上所处的位置,URL是URI的子集。