0

哪个是从远程网络服务器下载文件的最佳途径?我想使用 .htaccess 拒绝所有下载,除非通过了特定的用户代理。这必须通过 cURL 完成还是 WGET 也可以这样做?

4

2 回答 2

3

http://www.gnu.org/software/wget/manual/wget.html

'-U agent-string' '--user-agent=agent-string' 标识为 http 服务器的代理字符串。http 协议允许客户端使用 User-Agent 标头字段来标识自己。这可以区分 www 软件,通常用于统计目的或跟踪协议违规。Wget 通常标识为“Wget/version”,version 是 Wget 的当前版本号。

但是,众所周知,某些站点会根据用户代理提供的信息实施定制输出的策略。虽然这在理论上并不是一个坏主意,但它已被服务器滥用,拒绝向(历史上)Netscape 或更常见的 Microsoft Internet Explorer 以外的客户端提供信息。此选项允许您更改 Wget 发出的 User-Agent 行。不鼓励使用此选项,除非您真的知道自己在做什么。

使用 '--user-agent=""' 指定空用户代理会指示 Wget 不要在 http 请求中发送 User-Agent 标头。

于 2012-10-11T19:20:51.693 回答
0

另外,为了记录,来自man curl(1)

   -A, --user-agent <agent string>
          (HTTP) Specify the User-Agent string to send to the HTTP server.
          Some  badly  done  CGIs  fail  if  this  field  isn't   set   to
          "Mozilla/4.0".  To  encode  blanks  in  the string, surround the
          string with single quote marks. This can also be  set  with  the
          -H, --header option of course.

          If this option is used several times, the last one will be used.
于 2014-04-26T18:42:15.193 回答