代码之家  ›  专栏  ›  技术社区  ›  allclaws

下载受保护的XLS文件时,为什么.htaccess会在IE中触发两次?

  •  0
  • allclaws  · 技术社区  · 15 年前

    某些目录由使用旧的Apache1.x服务器上的.htaccess文件的基本身份验证保护。今天,一位用户指出,他刚发布的文件有两次请求用户名/密码,一次是在进入目录查看索引时,另一次是在下载文件时。发现这很奇怪,我研究了双重触发的常见问题。htaccess身份验证:

    运气不好。更令人困惑的是,firefox/chrome/safari不会问两次——只问IE(6和7)。进一步的调查表明,这种情况不会发生在PDF文件——只有Excel文件——甚至是空白文件。

    Excel是否以某种方式回拨需要第二次身份验证的服务器?为什么只发生在IE里?

    不重要-但我很好奇是什么导致了这一切。

    编辑-我想是BMD干的。通过观察网络流量,Excel+IE使用另一个名为“Microsoft Protocol Discovery”的用户代理重新发出第二个请求。

    1 回复  |  直到 15 年前
        1
  •  2
  •   bmdhacks    15 年前

    我不确定Excel,但是Windows Media Player与IE有一个特殊的交互作用,当IE请求Windows Media Player拥有的一个MIME类型的文件时,它不会将下载的文件移交给WMP,而是指示Windows Media Player下载文件本身。这可能导致两次请求该文件,一次是IE请求该文件,第二次是WMP下载该文件。

    微软也有可能在其他产品如Excel中使用这种机制。您可以通过查看第二个请求中提交的用户代理头来发现这一点。在Windows Media的情况下,它实际上会在第二个请求时从IE更改为WMP的用户代理。