WSGIとASGIってなんだ?
PythonでWebアプリケーションを開発していると出てくるWSGIとASGI。
特に直さなくてもローカルでは動くので無視していたが、どうしても気になるので調べてみた
Webアプリの仕組みは、要は、↓ こんな感じ
https://scrapbox.io/files/671e00e634347121e416ac3a.png
WSGI (Web Server Gateway Interface)
同期処理
静的サイト向け
WSGIサーバの例:gunicorn(HTTP/1.1をサポート)
ASGI (Asynchronous Server Gateway Interface)
非同期処理に対応
動的サイト向け(チャットアプリ)
ASGIサーバの例:uvicorn(HTTP/2、WebSocketをサポート)
補足:HTTPの歴史
HTTP/1.1:1つのリクエストが完了するまで次のリクエストが送れない(順番が重要だから)
HTTP/2:順番待ちなしで並列処理が可能