之前惊奇的发现使用PHP的file_get_contents下载微信头像很慢,但是使用curl则很快,网上也很多人提出这个问题,看了几篇文章大概搞清了怎么回事
1、file_get_contents 函数并不会主动关闭http的tcp连接,需要等待web 服务器主动关闭http连接才会返回
2、curl 根据 http 响应头里面的文件大小和实际接收的文件大小判断是否应该主动关闭http连接,接收完数据就返回
3、微信头像的服务器不知出于何总原因并没有按照常规套路来,会出现在数据传送完毕之后没有立即关闭连接的情况
基于以上三种原因导致PHP的file_get_contents下载微信头像有的时候比使用curl慢很多