-
-
Notifications
You must be signed in to change notification settings - Fork 33.3k
Closed
nodejs/llhttp
#157Labels
httpIssues or PRs related to the http subsystem.Issues or PRs related to the http subsystem.
Description
Version
14.9.2
Platform
all
Subsystem
http
What steps will reproduce the bug?
http accepts any http version and treats it as http1, and passes it along (>= 0 and <= 9.9 in my tests). this may be a feature, but if so could use some documentation since it's a little unexpected maybe.
copying comment from here:
'use strict'
const http = require('http')
const host = 'localhost'
const port = 3000
const handlerequest = function (req, res) {
console.log(req)
console.log(req.httpVersion)
res.writeHead(200)
res.end(`Your Request HTTP Version is ${req.httpVersion}
with Major ${req.httpVersionMajor} and Minor ${req.httpVersionMinor}`)
}
const server = http.createServer(handlerequest)
server.listen(port, host, () => {
console.log(`Server is running on http://${host}:${port}`)
})
with:
telnet 127.0.0.1 3000
GET / HTTP/5.6
and the response is
HTTP/1.1 200 OK
Date: Sun, 15 May 2022 15:17:11 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked
46
Your Request HTTP Version is 5.6
with Major 5 and Minor 6
0
How often does it reproduce? Is there a required condition?
no special requirements/conditions
What is the expected behavior?
request being rejected. http 505 maybe? requesting with GET / NOTHTTP/1.1
gives 400 bad request.
What do you see instead?
the node server treats all requests regardless of version as http1
Additional information
No response
mcollinaaradwann
Metadata
Metadata
Assignees
Labels
httpIssues or PRs related to the http subsystem.Issues or PRs related to the http subsystem.