2012-09-17 56 views
1

当我在任何浏览器中打开http://en.wikipedia.org/wiki/Category:Births_by_year,我看到许多子类分类页面和一子页面是http://en.wikipedia.org/wiki/Park_Sung-Baek为什么我会看到维基百科的不同页面?

但是,当我与Java读同一页上,我得到类别页面不同的内容。而不是上面提到的子页面,它包含http://en.wikipedia.org/wiki/User:Mijotoba/Ruth_Stella_Correa_Palacio

它是怎么回事?为什么维基百科提出不同的页面

设置User-Agent没有帮助。

头请求 “正常” 的内容

GET http://en.wikipedia.org/wiki/Category:Births_by_year HTTP/1.1 
Accept: text/html, application/xhtml+xml, */* 
Accept-Language: ru-RU,zh-CN;q=0.5 
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) 
Accept-Encoding: gzip, deflate 
Connection: Keep-Alive 
Host: en.wikipedia.org 

头,要求 “修改” 内容

GET http://en.wikipedia.org/wiki/Category:Births_by_year HTTP/1.1 
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) 
Host: en.wikipedia.org 
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 
Connection: keep-alive 
+2

我在这里看到“http://en.wikipedia.org/wiki/User:Mijotoba/Ruth_Stella_Correa_Palacio”,试着用Ctrl + F5重新载入浏览器缓存。 – slugonamission

+0

因为我在Fiddler2中看到内容,所以这不是浏览器缓存。 Ctrl + F5没有帮助。我在所有浏览器中看到第一个版本(IE,FF,GC) –

+0

同样在这里,OSX 10.8 + Chrome/Safari - > Ruth Stella Correa Palacio。 – harism

回答

2

是的,它看起来像维基百科的前端缓存暂时性的问题。具体地,当我请求the page in question从我的浏览器(其将请求发送报头Accept-Encoding: gzip, deflate),我看到响应包含标题:

Last-Modified: Thu, 13 Sep 2012 16:46:55 GMT 

如果我请求使用LWP从命令行(在同一页不发送一个Accept-Encoding头),头部看起来非常不同:

Last-Modified: Sat, 25 Aug 2012 12:52:42 GMT 

而且,事实上,后者的响应包含您报告与您的Java客户端接收相同的过时的内容。

我怀疑发生了什么事情,在过去的某个时候,服务器故障导致过时的副本在页面更改时不会从缓存中清除。在这个特定的例子中,你可以通过purging the page修复它。更一般的情况是,如果您继续看到将来会出现如此过时的缓存页面,则可能需要将问题报告给Wikipedia server admins,以防需要修复的缓存出现问题。

Ps。为什么你用Java取回维基百科前端HTML页面呢?一般来说,您应该使用MediaWiki API

相关问题