我正在编写一个从 Web 服务器获取页面的客户端。在一台特定的服务器上,它可以在我的网络浏览器上正常工作,但我的代码一直得到响应:
HTTP/1.1 503 Service Unavailable
Content-Length:62
Connection: close
Cache-Control: no-cache,no-store
Pragma: no-cache
<html><body><b>Http/1.1 Service Unavailable</b></body> </html>
我最终将其缩小到我发送的User-Agent标头:如果它包含Mozilla
,一切都很好(我尝试了很多变体)。如果不是,我会得到 503。当我意识到它是 User-Agent 时,我记得过去有同样的问题(不同的项目,不同的服务器),但我从来没有弄清楚为什么。
在这种特殊情况下,我连接的 Web 服务器正在运行 IIS 7.5,但我不确定它前面是否有任何代理/防火墙/等(我怀疑可能是因为这种行为)。
用户代理有一段有趣的历史,您可以在这个问题上阅读: 为什么所有浏览器的用户代理都以“Mozilla/”开头?
在我的用户代理中使用显然对我来说没有问题Mozilla
,但我的问题很简单:导致这种情况发生的配置或服务器是什么,为什么有人想要这种行为?