Asynchronous HTTP client/server framework for asyncio and Python
Protocol
.
#5111 <https://github.com/aio-libs/aiohttp/issues/5111>
_#4901 <https://github.com/aio-libs/aiohttp/issues/4901>
_#4957 <https://github.com/aio-libs/aiohttp/issues/4957>
_typing_extensions
library.
#5107 <https://github.com/aio-libs/aiohttp/issues/5107>
_ThreadedResolver.resolve
to
return the resolved IP as the hostname
in each record, which prevented
validation of HTTPS connections.
#5110 <https://github.com/aio-libs/aiohttp/issues/5110>
_#5115 <https://github.com/aio-libs/aiohttp/issues/5115>
_#5116 <https://github.com/aio-libs/aiohttp/issues/5116>
_#5124 <https://github.com/aio-libs/aiohttp/issues/5124>
_web.run_app()
about Python version checking on Windows
#5127 <https://github.com/aio-libs/aiohttp/issues/5127>
_on_response_prepare
hooks, directly before headers are sent to the client.
#1958 <https://github.com/aio-libs/aiohttp/issues/1958>
_quote_cookie
option to CookieJar
, a way to skip quotation wrapping of cookies containing special characters.
#2571 <https://github.com/aio-libs/aiohttp/issues/2571>
_AccessLogger.log
with the current exception available from sys.exc_info()
.
#3557 <https://github.com/aio-libs/aiohttp/issues/3557>
_web.UrlDispatcher.add_routes
and web.Application.add_routes
return a list
of registered AbstractRoute
instances. AbstractRouteDef.register
(and all
subclasses) return a list of registered resources registered resource.
#3866 <https://github.com/aio-libs/aiohttp/issues/3866>
_#3882 <https://github.com/aio-libs/aiohttp/issues/3882>
_OSError
on reading/writing instead.
#4080 <https://github.com/aio-libs/aiohttp/issues/4080>
_#4189 <https://github.com/aio-libs/aiohttp/issues/4189>
_ClientSession.timeout
property.
#4191 <https://github.com/aio-libs/aiohttp/issues/4191>
_#4224 <https://github.com/aio-libs/aiohttp/issues/4224>
_loop.sendfile()
instead of custom implementation if available.
#4269 <https://github.com/aio-libs/aiohttp/issues/4269>
_#4393 <https://github.com/aio-libs/aiohttp/issues/4393>
_#4402 <https://github.com/aio-libs/aiohttp/issues/4402>
_read_bufsize
argument.
#4453 <https://github.com/aio-libs/aiohttp/issues/4453>
_#4513 <https://github.com/aio-libs/aiohttp/issues/4513>
_method
and url
attributes to TraceRequestChunkSentParams
and TraceResponseChunkReceivedParams
.
#4674 <https://github.com/aio-libs/aiohttp/issues/4674>
_#4711 <https://github.com/aio-libs/aiohttp/issues/4711>
_#4850 <https://github.com/aio-libs/aiohttp/issues/4850>
_None
is passed in as the host.
#4894 <https://github.com/aio-libs/aiohttp/issues/4894>
_http_parser
to 2.9.4
#5070 <https://github.com/aio-libs/aiohttp/issues/5070>
_Fix keepalive connections not being closed in time
#3296 <https://github.com/aio-libs/aiohttp/issues/3296>
_
Fix failed websocket handshake leaving connection hanging.
#3380 <https://github.com/aio-libs/aiohttp/issues/3380>
_
Fix tasks cancellation order on exit. The run_app task needs to be cancelled first for cleanup hooks to run with all tasks intact.
#3805 <https://github.com/aio-libs/aiohttp/issues/3805>
_
Don't start heartbeat until writer is set
#4062 <https://github.com/aio-libs/aiohttp/issues/4062>
Fix handling of multipart file uploads without a content type.
#4089 <https://github.com/aio-libs/aiohttp/issues/4089>
_
Preserve view handler function attributes across middlewares
#4174 <https://github.com/aio-libs/aiohttp/issues/4174>
_
Fix the string representation of ServerDisconnectedError
.
#4175 <https://github.com/aio-libs/aiohttp/issues/4175>
_
Raising RuntimeError when trying to get encoding from not read body
#4214 <https://github.com/aio-libs/aiohttp/issues/4214>
_
Remove warning messages from noop.
#4282 <https://github.com/aio-libs/aiohttp/issues/4282>
_
Raise ClientPayloadError if FormData re-processed.
#4345 <https://github.com/aio-libs/aiohttp/issues/4345>
_
Fix a warning about unfinished task in web_protocol.py
#4408 <https://github.com/aio-libs/aiohttp/issues/4408>
_
Fixed 'deflate' compression. According to RFC 2616 now.
#4506 <https://github.com/aio-libs/aiohttp/issues/4506>
_
Fixed OverflowError on platforms with 32-bit time_t
#4515 <https://github.com/aio-libs/aiohttp/issues/4515>
_
Fixed request.body_exists returns wrong value for methods without body.
#4528 <https://github.com/aio-libs/aiohttp/issues/4528>
_
Fix connecting to link-local IPv6 addresses.
#4554 <https://github.com/aio-libs/aiohttp/issues/4554>
_
Fix a problem with connection waiters that are never awaited.
#4562 <https://github.com/aio-libs/aiohttp/issues/4562>
_
Always make sure transport is not closing before reuse a connection.
Reuse a protocol based on keepalive in headers is unreliable.
For example, uWSGI will not support keepalive even it serves a
HTTP 1.1 request, except explicitly configure uWSGI with a
--http-keepalive
option.
Servers designed like uWSGI could cause aiohttp intermittently
raise a ConnectionResetException when the protocol poll runs
out and some protocol is reused.
#4587 <https://github.com/aio-libs/aiohttp/issues/4587>
_
Handle the last CRLF correctly even if it is received via separate TCP segment.
#4630 <https://github.com/aio-libs/aiohttp/issues/4630>
_
Fix the register_resource function to validate route name before splitting it so that route name can include python keywords.
#4691 <https://github.com/aio-libs/aiohttp/issues/4691>
_
Improve typing annotations for web.Request
, aiohttp.ClientResponse
and
multipart
module.
#4736 <https://github.com/aio-libs/aiohttp/issues/4736>
_
Fix resolver task is not awaited when connector is cancelled
#4795 <https://github.com/aio-libs/aiohttp/issues/4795>
_
Fix a bug "Aiohttp doesn't return any error on invalid request methods"
#4798 <https://github.com/aio-libs/aiohttp/issues/4798>
_
Fix HEAD requests for static content.
#4809 <https://github.com/aio-libs/aiohttp/issues/4809>
_
Fix incorrect size calculation for memoryview
#4890 <https://github.com/aio-libs/aiohttp/issues/4890>
_
Add HTTPMove to all_.
#4897 <https://github.com/aio-libs/aiohttp/issues/4897>
_
Fixed the type annotations in the tracing
module.
#4912 <https://github.com/aio-libs/aiohttp/issues/4912>
_
Fix typing for multipart __aiter__
.
#4931 <https://github.com/aio-libs/aiohttp/issues/4931>
_
Fix for race condition on connections in BaseConnector that leads to exceeding the connection limit.
#4936 <https://github.com/aio-libs/aiohttp/issues/4936>
_
Add forced UTF-8 encoding for application/rdap+json
responses.
#4938 <https://github.com/aio-libs/aiohttp/issues/4938>
_
Fix inconsistency between Python and C http request parsers in parsing pct-encoded URL.
#4972 <https://github.com/aio-libs/aiohttp/issues/4972>
_
Fix connection closing issue in HEAD request.
#5012 <https://github.com/aio-libs/aiohttp/issues/5012>
_
Fix type hint on BaseRunner.addresses (from List[str]
to List[Any]
)
#5086 <https://github.com/aio-libs/aiohttp/issues/5086>
_
Make web.run_app()
more responsive to Ctrl+C on Windows for Python < 3.8. It slightly
increases CPU load as a side effect.
#5098 <https://github.com/aio-libs/aiohttp/issues/5098>
_
#3376 <https://github.com/aio-libs/aiohttp/issues/3376>
_ttl_dns_cache
default value
#3512 <https://github.com/aio-libs/aiohttp/issues/3512>
_#4201 <https://github.com/aio-libs/aiohttp/issues/4201>
_Optional[str]
to Optional[bool]
#4204 <https://github.com/aio-libs/aiohttp/issues/4204>
_ttl_dns_cache
type from int to Optional[int].
#4270 <https://github.com/aio-libs/aiohttp/issues/4270>
_#4272 <https://github.com/aio-libs/aiohttp/issues/4272>
_#4285 <https://github.com/aio-libs/aiohttp/issues/4285>
_#4312 <https://github.com/aio-libs/aiohttp/issues/4312>
_#4314 <https://github.com/aio-libs/aiohttp/issues/4314>
_#4810 <https://github.com/aio-libs/aiohttp/issues/4810>
_#4986 <https://github.com/aio-libs/aiohttp/issues/4986>
_aiohttp-sse-client
library to third party usage list.
#5084 <https://github.com/aio-libs/aiohttp/issues/5084>
_#2856 <https://github.com/aio-libs/aiohttp/issues/2856>
, #4218 <https://github.com/aio-libs/aiohttp/issues/4218>
, #4250 <https://github.com/aio-libs/aiohttp/issues/4250>
_It contains several bufixes.
#4077 <https://github.com/aio-libs/aiohttp/issues/4077>
_Iterable
type hint instead of Sequence
for Application
middleware
parameter. #4125 <https://github.com/aio-libs/aiohttp/issues/4125>
_sock_read
timeout each time data is received for a
aiohttp.ClientResponse
. #3808 <https://github.com/aio-libs/aiohttp/issues/3808>
_#4063 <https://github.com/aio-libs/aiohttp/issues/4063>
_ClientConnectorError
;
self.ssl == None
means default SSL context, not SSL disabled #4097 <https://github.com/aio-libs/aiohttp/issues/4097>
_#4106 <https://github.com/aio-libs/aiohttp/issues/4106>
_#2469 <https://github.com/aio-libs/aiohttp/issues/2469>
_#4100 <https://github.com/aio-libs/aiohttp/issues/4100>
_#4108 <https://github.com/aio-libs/aiohttp/issues/4108>
_#4102 <https://github.com/aio-libs/aiohttp/issues/4102>
_#4056 <https://github.com/aio-libs/aiohttp/issues/4056>
_#4068 <https://github.com/aio-libs/aiohttp/issues/4068>
_ssl.OP_NO_COMPRESSION
is
unavailable because the runtime is built against
an outdated OpenSSL.
#4052 <https://github.com/aio-libs/aiohttp/issues/4052>
_#4057 <https://github.com/aio-libs/aiohttp/issues/4057>
_#3723 <https://github.com/aio-libs/aiohttp/issues/3723>
_#3629 <https://github.com/aio-libs/aiohttp/issues/3629>
_Transfer-Encoding: chunked
header from websocket responses to be compatible with more http proxy servers.
#3798 <https://github.com/aio-libs/aiohttp/issues/3798>
_#3980 <https://github.com/aio-libs/aiohttp/issues/3980>
_Raise a ClientResponseError instead of an AssertionError for a blank
HTTP Reason Phrase.
#3532 <https://github.com/aio-libs/aiohttp/issues/3532>
_
Fix an issue where cookies would sometimes not be set during a redirect.
#3576 <https://github.com/aio-libs/aiohttp/issues/3576>
_
Change normalize_path_middleware to use 308 redirect instead of 301.
This behavior should prevent clients from being unable to use PUT/POST
methods on endpoints that are redirected because of a trailing slash.
#3579 <https://github.com/aio-libs/aiohttp/issues/3579>
_
Drop the processed task from all_tasks()
list early. It prevents logging about a task with unhandled exception when the server is used in conjunction with asyncio.run()
.
#3587 <https://github.com/aio-libs/aiohttp/issues/3587>
_
Signal
type annotation changed from Signal[Callable[['TraceConfig'], Awaitable[None]]]
to Signal[Callable[ClientSession, SimpleNamespace, ...]
.
#3595 <https://github.com/aio-libs/aiohttp/issues/3595>
_
Use sanitized URL as Location header in redirects
#3614 <https://github.com/aio-libs/aiohttp/issues/3614>
_
Improve typing annotations for multipart.py along with changes required
by mypy in files that references multipart.py.
#3621 <https://github.com/aio-libs/aiohttp/issues/3621>
_
Close session created inside aiohttp.request
when unhandled exception occurs
#3628 <https://github.com/aio-libs/aiohttp/issues/3628>
_
Cleanup per-chunk data in generic data read. Memory leak fixed.
#3631 <https://github.com/aio-libs/aiohttp/issues/3631>
_
Use correct type for add_view and family
#3633 <https://github.com/aio-libs/aiohttp/issues/3633>
_
Fix keepalive field in slots of RequestHandler
.
#3644 <https://github.com/aio-libs/aiohttp/issues/3644>
Properly handle ConnectionResetError, to silence the "Cannot write to closing
transport" exception when clients disconnect uncleanly.
#3648 <https://github.com/aio-libs/aiohttp/issues/3648>
_
Suppress pytest warnings due to test_utils
classes
#3660 <https://github.com/aio-libs/aiohttp/issues/3660>
_
Fix overshadowing of overlapped sub-application prefixes.
#3701 <https://github.com/aio-libs/aiohttp/issues/3701>
_
Fixed return type annotation for WSMessage.json()
#3720 <https://github.com/aio-libs/aiohttp/issues/3720>
_
Properly expose TooManyRedirects publicly as documented.
#3818 <https://github.com/aio-libs/aiohttp/issues/3818>
_
Fix missing brackets for IPv6 in proxy CONNECT request
#3841 <https://github.com/aio-libs/aiohttp/issues/3841>
_
Make the signature of aiohttp.test_utils.TestClient.request
match asyncio.ClientSession.request
according to the docs
#3852 <https://github.com/aio-libs/aiohttp/issues/3852>
_
Use correct style for re-exported imports, makes mypy --strict
mode happy.
#3868 <https://github.com/aio-libs/aiohttp/issues/3868>
_
Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of View
#3880 <https://github.com/aio-libs/aiohttp/issues/3880>
_
Made cython HTTP parser set Reason-Phrase of the response to an empty string if it is missing.
#3906 <https://github.com/aio-libs/aiohttp/issues/3906>
_
Add URL to the string representation of ClientResponseError.
#3959 <https://github.com/aio-libs/aiohttp/issues/3959>
_
Accept istr
keys in LooseHeaders
type hints.
#3976 <https://github.com/aio-libs/aiohttp/issues/3976>
_
Fixed race conditions in resolve_host caching and throttling when tracing is enabled.
#4013 <https://github.com/aio-libs/aiohttp/issues/4013>
For URLs like "unix://localhost/..." set Host HTTP header to "localhost" instead of "localhost:None".
#4039 <https://github.com/aio-libs/aiohttp/issues/4039>
_
#3526 <https://github.com/aio-libs/aiohttp/issues/3526>
_if __name__ == '__main__':
in server examples.
#3775 <https://github.com/aio-libs/aiohttp/issues/3775>
_#3783 <https://github.com/aio-libs/aiohttp/issues/3783>
_web.BaseRequest.path
and web.BaseRequest.raw_path
.
#3791 <https://github.com/aio-libs/aiohttp/issues/3791>
_#3964 <https://github.com/aio-libs/aiohttp/issues/3964>
_