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
的子集。