实验:了解HTTP单线程下载过程

      正在自己写一个通过HTTP协议进行下载的小程序,进行实验抓包的过程时,发现点了一个下载链接之后,即使你没有选定保存或取消,也会有下载报文产生,很是纳闷,和之前想象中,点保存之后方进行下载的想法有些不同,于是验证了下。嘿,还真是没点保存就开下了,证据如下:

     1、不做任何操作,先查看Temp文件夹,按修改时间排下序;打开Ethereal对port 80进行捕获。

     2、点击一个下载链接,弹出下载对话框后,不做任何操作。

     3、过一段时间之后,查看TEMP文件夹,和Ethereal的抓包结果:
 
          这时你会发现Ethereal中已经捕获了成千上万条下载的报文。而Temp文件夹下也会出现一个新的临时文件。如果你是在内网(下载很快),停留一段时间后(文件已经下完),你查看该临时文件,会发现和你要下载文件的大小相同。

     4、此时,你点保存。这时你会发现那速度完全是文件复制的速度~~其实就是从临时文件中把文件剪切过来。
下载完毕后,你会发现临时文件中刚多出的那个临时文件已经不见了~~~


     5、同理,像火狐等一些浏览器会支持 “暂停”、”停止“下载,呵呵,原始又是什么,感兴趣的同志们可以自己动手做下实验。

     大家没事的时候,想下这些单线程下载的程序实现原理如何吧,随便也想想如果进行多线程下载时,又会是一个什么样的过程,我也去想,呵呵
      

你可能感兴趣的:(多线程,浏览器)