Closed
Description
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
Using the following test app:
from sanic import Sanic
from sanic.response import text
app = Sanic("MyHelloWorldApp")
@app.get("/")
async def hello_world(request):
return text('\n'.join(f'{k}: {request.headers.getall(k)}' for k in set(request.headers)))
Looking at the HTTP standard here:
https://www.rfc-editor.org/rfc/rfc9110.html#fields
I think the following should return the same result when sent to the test app:
curl -H "MYHEADER: a" -H "MYHEADER: b" http://127.0.0.1:8000
user-agent: ['curl/7.79.1']
host: ['127.0.0.1:8000']
accept: ['*/*']
myheader: ['a', 'b']
curl -H "MYHEADER: a,b" http://127.0.0.1:8000
user-agent: ['curl/7.79.1']
host: ['127.0.0.1:8000']
accept: ['*/*']
myheader: ['a,b']
If I am reading the standard correctly, the value of a header should be parsed as a comma-separated, value list.
It doesn't seem to be. I think the second example should return the same result as the first one.
Code snippet
see above
Expected Behavior
The following two headers should both result in a multi-valued key in request.headers
MYHEADER: a
MYHEADER: b
and
MYHEADER: a,b
How do you run Sanic?
Sanic CLI
Operating System
Linux
Sanic Version
22.9.0
Additional context
No response