You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
FileResponse (and by extension, add_static) may return Transfer-Encoding: chunked and the empty chunked body when returning a 304 Not Modified, in violation of RFC 2616 §10.3.5, which states: "The 304 response MUST NOT contain a message-body, and thus is always terminated by the first empty line after the header fields."
Expected behaviour
A 304 response with no body.
Actual behaviour
A 304 response with Transfer-Encoding: chunked and a 1-byte body (0).
Steps to reproduce
Run this with an empty index.html in the same directory:
from aiohttp import web
from pathlib import Path
app = web.Application()
app.router.add_static('/', Path(__file__).parent)
web.run_app(app, port=8080)
Send an HTTP/1.1 request with an If-Modified-Since that triggers a 304 Not Modified, e.g.
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a [new issue] for related bugs.
If you feel like there's important points made in this discussion, please include those exceprts into that [new issue].
[new issue]: https://github.com/aio-libs/aiohttp/issues/new
Long story short
FileResponse
(and by extension,add_static
) may returnTransfer-Encoding: chunked
and the empty chunked body when returning a 304 Not Modified, in violation of RFC 2616 §10.3.5, which states: "The 304 response MUST NOT contain a message-body, and thus is always terminated by the first empty line after the header fields."Expected behaviour
A 304 response with no body.
Actual behaviour
A 304 response with
Transfer-Encoding: chunked
and a 1-byte body (0
).Steps to reproduce
index.html
in the same directory:If-Modified-Since
that triggers a 304 Not Modified, e.g.The response will be something like:
Your environment
This is using aiohttp 2.2.3, the newest version at this time.
The text was updated successfully, but these errors were encountered: