Open
Description
Long story short
Not sure if this is a user error, or a bug.
On a bad request, the server raise aiohttp.http_exceptions.BadStatusLine: invalid HTTP method
, and custom headers are ignored. I can't find any way to catch this exception.
My application works as it should, and custom headers are sent on both GET and POST, and also HEAD - using the on_prepare signal.
I want to use custom headers and hide the Server: Python/3.6 aiohttp/3.4.4
. But a simple request containing only "/" bypass all handlers, and display the default headers. And also raise a seemingly non-handable exception.
Expected behaviour
I'd expect being able to handle all requests, no matter how erranous.
Actual behaviour
In console, AioHttp drops
HTTP/1.0 400 Bad Request
Content-Type: text/html; charset=utf-8
Content-Length: 11
Date: Mon, 24 Sep 2018 14:13:37 GMT
Server: Python/3.6 aiohttp/3.4.4
Bad Request
and in logs:
Traceback (most recent call last):
File "site-packages\aiohttp\web_protocol.py", line 242, in data_received
File "aiohttp\_http_parser.pyx", line 523, in aiohttp._http_parser.HttpParser.feed_data
aiohttp.http_exceptions.BadStatusLine: invalid HTTP method
Steps to reproduce
- Start a barebone server (like in Getting started)
- telnet 127.0.0.1 8080, curl should work as well
- type "/"
Your environment
Windows
Python/3.6 aiohttp/3.4.4
aiohttp server