当 wget 返回代码 500 但相同请求在普通浏览器中有效时,可能存在哪些问题?

当 wget 返回代码 500 但相同请求在普通浏览器中有效时,可能存在哪些问题?

当 wget 返回 500 但相同的 URL 在我的 Web 浏览器中工作正常时,我应该寻找什么?我没有看到任何access_log似乎与错误相关的条目。

由 linux-gnu 上的 Wget 1.14 创建的 DEBUG 输出。

<SSL negotiation info stripped out>

---request begin---
GET /survey/de/tools/clear-caches/password/<some-token> HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: testing.thesurveylab.net
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.0 500 Internal Server Error
Date: Wed, 12 Dec 2012 14:53:07 GMT
Server: Apache/2.2.3 (CentOS)
Set-Cookie: blueprint2-staging=8jnbmkqapl30hjkgo0u6956pd1; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Strict-Transport-Security: max-age=8640000;includeSubdomains
X-UA-Compatible: IE=Edge,chrome=1
Content-Length: 5
Connection: close
Content-Type: text/html; charset=UTF-8

---response end---
500 Internal Server Error

Stored cookie testing.thesurveylab.net -1 (ANY) / <session> <insecure> 
[expiry none] blueprint2-staging 8jnbmkqapl30hjkgo0u6956pd1
Closed 3/SSL 0x0000000001f33430
2012-12-12 15:53:07 ERROR 500: Internal Server Error.

答案1

造成这种情况的原因可能有无数种,但每当我遇到同样的问题时,无论是使用 wget 还是其他下载器,通常都是因为网站上的代码旨在以某种方式响应“普通”网络浏览器。然后出现了 wget 或类似程序,代码会崩溃,因为它没有代码,也没有适当的后备。这样的网站通常也会在非常旧的浏览器上崩溃。在这种情况下,您必须让下载器模拟常见的浏览器才能使其正常工作。

答案2

这个问题已经在这个帖子中提出并回答过了。

It's a bug in the webpage. 
The HTTP status is indeed seemingly incorrectly set to HTTP 500. Firefox/Firebug also confirms this. 
Basically, you're facing a HTTP 500 error page with "normal" content.

    Report it to the site admin.

https://stackoverflow.com/questions/6083102/http-500-error-in-wget

相关内容