正在自己写一个通过HTTP协议进行下载的小程序,进行实验抓包的过程时,发现点了一个下载链接之后,即使你没有选定保存或取消,也会有下载报文产生,很是纳闷,和之前想象中,点保存之后方进行下载的想法有些不同,于是验证了下。嘿,还真是没点保存就开下了,证据如下:
1、不做任何操作,先查看Temp文件夹,按修改时间排下序;打开Ethereal对port 80进行捕获。
2、点击一个下载链接,弹出下载对话框后,不做任何操作。
3、过一段时间之后,查看TEMP文件夹,和Ethereal的抓包结果:
这时你会发现Ethereal中已经捕获了成千上万条下载的报文。而Temp文件夹下也会出现一个新的临时文件。如果你是在内网(下载很快),停留一段时间后(文件已经下完),你查看该临时文件,会发现和你要下载文件的大小相同。
4、此时,你点保存。这时你会发现那速度完全是文件复制的速度~~其实就是从临时文件中把文件剪切过来。
下载完毕后,你会发现临时文件中刚多出的那个临时文件已经不见了~~~
5、同理,像火狐等一些浏览器会支持 “暂停”、”停止“下载,呵呵,原始又是什么,感兴趣的同志们可以自己动手做下实验。
大家没事的时候,想下这些单线程下载的程序实现原理如何吧,随便也想想如果进行多线程下载时,又会是一个什么样的过程,我也去想,呵呵
1、不做任何操作,先查看Temp文件夹,按修改时间排下序;打开Ethereal对port 80进行捕获。
2、点击一个下载链接,弹出下载对话框后,不做任何操作。
3、过一段时间之后,查看TEMP文件夹,和Ethereal的抓包结果:
这时你会发现Ethereal中已经捕获了成千上万条下载的报文。而Temp文件夹下也会出现一个新的临时文件。如果你是在内网(下载很快),停留一段时间后(文件已经下完),你查看该临时文件,会发现和你要下载文件的大小相同。
4、此时,你点保存。这时你会发现那速度完全是文件复制的速度~~其实就是从临时文件中把文件剪切过来。
下载完毕后,你会发现临时文件中刚多出的那个临时文件已经不见了~~~
5、同理,像火狐等一些浏览器会支持 “暂停”、”停止“下载,呵呵,原始又是什么,感兴趣的同志们可以自己动手做下实验。
大家没事的时候,想下这些单线程下载的程序实现原理如何吧,随便也想想如果进行多线程下载时,又会是一个什么样的过程,我也去想,呵呵