Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我会看到维基百科上不同的页面?_Java_Html_Http_Web_Wikipedia - Fatal编程技术网

Java 为什么我会看到维基百科上不同的页面?

Java 为什么我会看到维基百科上不同的页面?,java,html,http,web,wikipedia,Java,Html,Http,Web,Wikipedia,当我在任何浏览器中打开时,我都会看到包含许多子类别的类别页面,其中一个子页面是 但是当我用Java阅读同一个页面时,我会得到不同内容的分类页面。它不包含上面提到的子页面,而是包含 怎么可能?为什么维基百科呈现不同的页面 设置用户代理没有帮助 请求“正常”内容的标题 GET http://en.wikipedia.org/wiki/Category:Births_by_year HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accep

当我在任何浏览器中打开时,我都会看到包含许多子类别的类别页面,其中一个子页面是

但是当我用Java阅读同一个页面时,我会得到不同内容的分类页面。它不包含上面提到的子页面,而是包含

怎么可能?为什么维基百科呈现不同的页面

设置
用户代理
没有帮助

请求“正常”内容的标题

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
请求“修改”内容的标题

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

是的,这看起来像是维基百科前端缓存的暂时问题。具体地说,当我从浏览器请求时(它发送请求头
接受编码:gzip,deflate
),我看到的响应包含头:

Last-Modified: Thu, 13 Sep 2012 16:46:55 GMT
如果我从命令行(不发送
Accept Encoding
标题)使用请求相同的页面,标题看起来非常不同:

Last-Modified: Sat, 25 Aug 2012 12:52:42 GMT
事实上,后一个响应包含与您报告的Java客户端接收到的内容相同的过期内容

我怀疑发生的事情是,在过去的某个时候,服务器故障导致页面更改时无法从缓存中清除过时的副本。在这个特定的例子中,您可能可以通过以下方法修复它。更一般地说,如果您以后一直看到这样的过时缓存页面出现,您可能希望将问题报告给,以防缓存出现需要修复的问题


另外,你为什么要用Java获取Wikipedia前端HTML页面?通常情况下,您应该改用。

I see“”此处,请尝试使用Ctrl+F5重新加载浏览器缓存。这不是浏览器缓存,因为我在Fiddler2中看到了内容。Ctrl+F5没有帮助。我在所有浏览器(IE、FF、GC)中都看到了相同的第一个版本,OSX 10.8+Chrome/Safari-->Ruth Stella Correa Palacio.Chrome Dev在这里。你在世界的哪个地区?你确定它正在访问en.wikipedia.org吗?据我所知,这是
接受编码:gzip,deflate
行。服务器上可能有一个gzip缓存版本?