我创建了一个简单的Node.js应用程序,它记录每个传入的HTTP请求的当前request.url
。当我在Mac上以Chrome格式刷新页面时,我会收到两个相同页面的请求。为什么?
相比之下,当我使用curl并请求相同的页面时,我只收到一个请求。如果我在Safari中刷新页面,同样的请求。
为什么Chrome会为同一个页面发送两个请求?
编辑:--我查看了request.headers
,发现了一个不同之处:accept
头。
以下是第一个请求的头。注意,它接受一个特定mimes的列表。
{ host: 'www.pulsr.local:1337',
connection: 'keep-alive',
'cache-control': 'max-age=0',
accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',
'accept-encoding': 'gzip,deflate,sdch',
'accept-language': 'en-US,en;q=0.8',
'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
cookie: 'PULSRSESSID=BBtDAWMVgbQZ8lXA6wv4Wg/vwwI=; PULSRSESSID=dsGxP494UxJueit2/u79AFiM5fw=' }
这是第二个请求。这一次,它接受一切。
{ host: 'www.pulsr.local:1337',
connection: 'keep-alive',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17',
accept: '*/*',
'accept-encoding': 'gzip,deflate,sdch',
'accept-language': 'en-US,en;q=0.8',
'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
cookie: 'PULSRSESSID=VGWRSG9zIokHjA2vLa1b+/fUqu8=; PULSRSESSID=dsGxP494UxJueit2/u79AFiM5fw=' }
编辑2:我已经检查并看到两个请求都是GET
请求。
发布于 2013-02-07 14:15:13
我认为这与Chrome中的错误有关,在Chrome中,它在每个请求上都会发送一个请求。Firefox和其他浏览器在第一次请求时就会这样做,但是会缓存它。
发布于 2015-04-02 14:11:42
正如在另一个回答中所发现的,它可能是由图像或iframes上的空src
属性引起的。我也有同样的问题:当只进行一次页面刷新时,来自Chromium的4个请求位于完全相同的页面上-而不是偏袒页面上。在我的例子中,我发现这是由于link
标记上的空link
属性造成的:
<link rel="shortcut icon" href="" />
<link rel="icon" type="image/x-icon" href="" />
<link rel="icon" type="image/png" href="" />
所以我的页面重新加载了一个请求,上面三个链接中的每一个都有一个请求。
发布于 2020-04-03 15:42:02
注意萤火虫灯在铬上的扩展。那是我的问题
https://stackoverflow.com/questions/14753148
复制相似问题