Skip to content

Instantly share code, notes, and snippets.

@rvagg
Created February 15, 2013 11:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rvagg/4959884 to your computer and use it in GitHub Desktop.
Save rvagg/4959884 to your computer and use it in GitHub Desktop.
Get the original headers from a Node HTTP request.
var http = require('http')
http.createServer(function (req, res) {
console.log('Original Headers:', req.socket._originalHeaders)
console.log('Messed up Headers:', req.headers)
res.end('BINGO')
})
.on('connection', function (socket) {
if (!socket.parser._onHeadersComplete)
socket.parser._onHeadersComplete = socket.parser.onHeadersComplete
socket.parser.onHeadersComplete = function (headers) {
socket._originalHeaders = {}
for (var i = 0; i < headers.headers.length; i += 2) {
socket._originalHeaders[headers.headers[i]] = headers.headers[i+1]
}
return this._onHeadersComplete.apply(this, arguments)
}
})
.listen(1337)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment