- Extract BaseRequest from web.Request, introduce web.Server (former RequestHandlerFactory), introduce new low-level web server which is not coupled with web.Application and routing #1362
- Make TestServer.make_url compatible with yarl.URL #1389
- Implement range requests for static files #1382
- Support task attribute for StreamResponse #1410
- Drop TestClient.app property, use TestClient.server.app instead (BACKWARD INCOMPATIBLE)
- Drop TestClient.handler property, use TestClient.server.handler instead (BACKWARD INCOMPATIBLE)
- TestClient.server property returns a test server instance, was asyncio.AbstractServer (BACKWARD INCOMPATIBLE)
- Follow gunicorn's signal semantics in Gunicorn[UVLoop]WebWorker #1201
- Call worker_int and worker_abort callbacks in Gunicorn[UVLoop]WebWorker #1202
- Has functional tests for client proxy #1218
- Fix bugs with client proxy target path and proxy host with port #1413
- Fix bugs related to the use of unicode hostnames #1444
- Preserve cookie quoting/escaping #1453
- FileSender will send gzipped response if gzip version available #1426
- Don't override Content-Length header in web.Response if no body was set #1400
- Introduce router.post_init() for solving #1373
- Fix raise error in case of multiple calls of TimeServive.stop()
- Allow to raise web exceptions on router resolving stage #1460
- Add a warning for session creation outside of coroutine #1468
- Avoid a race when application might start accepting incoming requests but startup signals are not processed yet e98e8c6
- Fix bug with https proxy acquired cleanup #1340
- Fix BodyPartReader.read_chunk bug about returns zero bytes before EOF #1428
- Fix static file serving in fallback mode #1401
- Make TestServer.make_url compatible with yarl.URL #1389
- Generate informative exception on redirects from server which doesn't provide redirection headers #1396
- Support root resources for sub-applications #1379
- Allow starting variables with an underscore #1379
- Properly process UNIX sockets by gunicorn worker #1375
- Fix ordering for FrozenList
- Don't propagate pre and post signals to sub-application #1377
- Fix documentation generation #1120
Drop deprecated WSClientDisconnectedError (BACKWARD INCOMPATIBLE)
Use yarl.URL in client API. The change is 99% backward compatible but ClientResponse.url is an yarl.URL instance now. #1217
Close idle keep-alive connections on shutdown #1222
Modify regex in AccessLogger to accept underscore and numbers #1225
Use yarl.URL in web server API. web.Request.rel_url and web.Request.url are added. URLs and templates are percent-encoded now. #1224
Accept yarl.URL by server redirections #1278
Return yarl.URL by .make_url() testing utility #1279
Properly format IPv6 addresses by aiohttp.web.run_app #1139
Use yarl.URL by server API #1288
- Introduce resource.url_for(), deprecate resource.url().
- Implement StaticResource.
- Inherit SystemRoute from AbstractRoute
- Drop old-style routes: Route, PlainRoute, DynamicRoute, StaticRoute, ResourceAdapter.
Revert resp.url back to str, introduce resp.url_obj #1292
Raise ValueError if BasicAuth login has a ":" character #1307
Fix bug when ClientRequest send payload file with opened as open('filename', 'r+b') #1306
Enhancement to AccessLogger (pass extra dict) #1303
Show more verbose message on import errors #1319
Added save and load functionality for CookieJar #1219
Added option on StaticRoute to follow symlinks #1299
Force encoding of application/json content type to utf-8 #1339
Fix invalid invocations of errors.LineTooLong #1335
Websockets: Stop async for iteration when connection is closed #1144
Ensure TestClient HTTP methods return a context manager #1318
Raise ClientDisconnectedError to FlowControlStreamReader read function if ClientSession object is closed by client when reading data. #1323
Document deployment without Gunicorn #1120
Add deprecation warning for MD5 and SHA1 digests when used for fingerprint of site certs in TCPConnector. #1186
Implement sub-applications #1301
Don't inherit web.Request from dict but implement MutableMapping protocol.
Implement frozen signals
Don't inherit web.Application from dict but implement MutableMapping protocol.
Support freezing for web applications
Accept access_log parameter in web.run_app, use None to disable logging
Don't flap tcp_cork and tcp_nodelay in regular request handling. tcp_nodelay is still enabled by default.
Improve performance of web server by removing premature computing of Content-Type if the value was set by web.Response constructor.
While the patch boosts speed of trivial web.Response(text='OK', content_type='text/plain) very well please don't expect significant boost of your application -- a couple DB requests and business logic is still the main bottleneck.
Boost performance by adding a custom time service #1350
Extend ClientResponse with content_type and charset properties like in web.Request. #1349
Disable aiodns by default #559
Don't flap tcp_cork in client code, use TCP_NODELAY mode by default.
Implement web.Request.clone() #1361