我创建了一个简单的 Node.js 应用程序,它记录以控制request.url
每个传入 HTTP 请求的电流。当我在 Mac OS X ML 上的 Chrome 中刷新页面时,我收到了对同一页面的两个请求。为什么?
相比之下,当我使用curl并请求同一个页面时,我只收到一个请求。如果我在 Safari 中刷新页面,则请求相同。
为什么 Chrome 会针对同一页面发送两个请求?
编辑:我已经调查request.headers
并发现了一个区别:accept
标题。
这是第一个请求的标头。请注意,它接受特定 mime 的列表。
{ 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
请求。