(1)TCP/IP的分层管理
我们用Http举例来说明,首先作为发送端的客户端在应用层(Http协议)发出一个像看某个Web页面的HTTP请求。
接着为了传输方便,在传输层(TCP协议)把从应用层收到的数据(Http请求报文)进行分割,并在各个报文上打上标记序号及端口号转发给网络层。
在网络层(IP协议)增加作为通信目的的MAC地址后转发给链路层。这样一来,发往网络层的通信请求就准备齐全了。
接收端的服务器在链路层收到数据,按序网上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。
发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消失。这种把数据包起来的做法叫做封装。
(2)TCP三次握手策略
为了准确无误地将数据送达目标处,TCP协议采用了三次握手策略。用TCP协议把数据包送出去之后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志(Flag),SYN(synchronize)和(acknowledgement)。
发送端首先发送一个带有SYN标志的数据包给对方,接收端收到后,回传一个带有SYN/ACK标志的数据包,最后发送端再回传一个带ACK标志的数据包,代表“握手”结束。如果在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。
(3)Http头
服务器缓存控制策略:
Cache-Control 字段中有以下内容时:
no_cache或no_store:客户端不去缓存里拿数据,每次都请求服务器 max-age:在max-age规定的秒数内,浏览器将不会发送对应的请求到服务器,数据由缓存直接返回;超过这一时间段才进一步由服务器决定是返回新数据还是仍由缓存提供。must-revalidate:客户端只有第一次访问时会访问服务器,以后就不再访问