我如何知道使用HTTP下载文件的名称?

时间:2015-03-07 21:49:34

标签: sockets http

我正在Python中创建一个HTTP客户端下载程序。我可以正确下载http://www.google.com/images/srpr/logo11w.png这样的文件。但是,我不确定实际上名称该做什么。

网址末尾当然有文件名,但这总是可靠的吗?

1 个答案:

答案 0 :(得分:1)

如果我没记错的话,wget使用以下启发式方法:

  1. 如果存在Content-Disposition标头,请从那里获取文件名。
  2. 如果网址的文件名组件存在(例如http://myserver/filename),请使用该文件。
  3. 如果没有文件名组件(例如http://www.google.com),请从Content-Type标题中导出文件名(例如index.html的{​​{1}})
  4. 在所有情况下,如果目录中已存在此文件名,请使用数字后缀,例如text/html或覆盖,具体取决于配置。
  5. 还有很多其他标志可以控制其他启发式方法,例如为ASP / DHTML内容类型创建.html。

    简而言之,这取决于你想走多远。对于大多数人来说,做前两个+基本的Content-Type->名称映射就足够了。