I have a simple node server. All it does is log the req.headers and res (I am learning!).
let http = require('http'); function handleIncomingRequest(req, res) { console.log('---------------------------------------------------'); console.log(req.headers); console.log('---------------------------------------------------'); console.log(); console.log('---------------------------------------------------'); res.writeHead(200, {'Content-Type': 'application/json'}); res.end(JSON.stringify( {error: null}) + '\n'); } let s = http.createServer(handleIncomingRequest); s.listen(8080); When I use curl to test the server it sends 1 request. When I use chrome it sends 2 different requests.
{ host: 'localhost:8080', connection: 'keep-alive', 'cache-control': 'max-age=0', 'upgrade-insecure-requests': '1', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'accept-encoding': 'gzip, deflate, sdch, br', 'accept-language': 'en-GB,en;q=0.8' } and
{ host: 'localhost:8080', connection: 'keep-alive', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', accept: 'image/webp,image/*,*/*;q=0.8', referer: 'http://localhost:8080/', 'accept-encoding': 'gzip, deflate, sdch, br', 'accept-language': 'en-GB,en;q=0.8' } This is in incognito mode as in normal mode there are 3 requests! What is the browser doing and why?