GET 有效但 telnet 无效(HTTP GET)

GET 有效但 telnet 无效(HTTP GET)

我从 bash 尝试了这个:

GET http://cetatenie.just.ro HTTP/1.1

它工作正常,我能够获取页面,然后我尝试从 telnet 执行此操作:

telnet cetatenie.just.ro 80 
Trying 85.120.166.76...
Connected to cetatenie.just.ro.
Escape character is '^]'.
GET / HTTP/1.1
Host: cetatenie.just.ro

我收到Internal Server Error(Http 错误代码 500)

问题是,我实际上无权访问服务器(它是部署在 IIS 7 上的应用程序)。为什么执行 GET 有效,而通过 telnet 访问却无效?

我所能想到的只是我需要发送一些额外的标头。我尝试使用 Live Http Headers 并发送与它们相同的内容:

http://cetatenie.just.ro/

GET http://cetatenie.just.ro/ HTTP/1.1
Host: cetatenie.just.ro
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Proxy-Connection: keep-alive
Cookie: .ASPXANONYMOUS=Ij8RLazqzAEkAAAAMTk5ZjY0MGUtYWU0NC00ZmViLTgyNTgtMWU0MjNlM2IyZWEx0; language=en-US

但它仍然不能与 telnet 一起工作。

答案1

服务器(服务器:Microsoft-IIS/7.5)也需要-headerHOST以及USER-AGENT-header,我尝试过这个:

 telnet cetatenie.just.ro 80 
 Trying 85.120.166.76...
 Connected to cetatenie.just.ro.
 Escape character is '^]'.
 GET / HTTP/1.1
 HOST: cetatenie.just.ro
 USER-AGENT: Foobar

并且它成功了。

答案2

我按照您描述的方式尝试了,但仍失败。

但我设法让它工作了。

添加用户代理标头。例如“User-Agent: wget/1.12”

您可能还想添加连接标头。
例如“连接:保持活动”或“连接:关闭”

如果您想诊断类似问题,只需加载 wireshark 之类的工具。它适用于 Windows、Linux 和 Mac。这是在查看 wget 为何也能正常工作时。我猜是 user-agent 字段,然后使用 telnet 手动验证它。果然 - 成功了!。

相关内容