MicroArchitectures
H.Ueda
Programmer
フレームワークの向こう側 Vol.1 — HTTP/WSGI/ASGI 基礎
HTTP/WSGI/ASGI 基礎
艶雨
【Django・FastAPI の「なぜ動くのか」を、コードを書きながら理解する一冊】
python manage.py runserver を実行したとき、その裏で何が起きているかを説明できますか?
LLM はリクエストを受け取ってレスポンスを返すコードを瞬時に書いてくれます。 しかし、ソケットがどう動いているのか、WSGI と ASGI はどう違うのか——こうした問いに答えられなければ、障害が起きたときに途方に暮れてしまいます。
本書は、Web フレームワークが隠している仕組みを、Python 標準ライブラリだけを使って自分の手で再現することで理解します。
■ 本書で学べること ・HTTP/1.1 リクエスト・レスポンスの構造と TCP ソケットの仕組み ・Python 標準ライブラリだけで動く最小 HTTP サーバの実装 ・WSGI 仕様(environ・start_response・iterable レスポンス)の完全理解 ・Werkzeug・Bottle が WSGI の上にどう積み重なっているか ・WSGI の同期モデルの限界と、ASGI が生まれた理由(長時間接続・WebSocket・async/await) ・scope・receive・send という ASGI の3要素と、最小 ASGI HTTP アプリの実装
■ 本書の構成(7章+付録2本) 第1章:対象読者とゴール、本書の学習アプローチ 第2章:HTTP/1.1 の構造、TCP ソケット、Python による実装 第3章:ソケットだけで動く最小 HTTP サーバ、ルーティング、POST ボディ処理 第4章:WSGI 仕様、environ、start_response、iterable レスポンス 第5章:request/response 抽象化・ルーティング・ミドルウェア・例外ハンドリング、Werkzeug と Bottle の内部 第6章:WSGI の同期モデルの限界、長時間接続と WebSocket、ASGI が生まれた理由 第7章:scope・receive・send による最小 ASGI HTTP アプリ、リクエストボディとストリーミング 付録A:最小 WSGI アプリ集 付録B:最小 ASGI アプリ集
■ こんな方におすすめ ・Django や FastAPI でアプリを作ったことはあるが、フレームワークの内部がよくわからない方 ・LLM が生成したコードを動かせているが、トラブル時に原因を追えないと感じている方 ・HTTP・WSGI・ASGI という言葉を見聞きしたことはあるが、自分の言葉で説明できない方 ・「なんとなく動く」から「なぜ動くかわかる」へステップアップしたい方
■ 必要な前提知識 Python の基礎(関数・クラス・デコレータが読めるレベル)があれば読み進められます。 ネットワークやサーバの知識は不要です。本書の中でゼロから積み上げます。
■ 著者プロフィール 40 年以上のプログラミング経験を持つエンジニア。LLM を開発パートナーとして活用しながら、変化の速い技術を自分で試して確かめ、フレームワークの内部を丁寧に解説します。
本シリーズは全3巻構成です。 Vol.2 では Django・FastAPI の内部構造(リクエストがビューに届くまでの経路)を、 Vol.3 では本番環境の設計と運用(Gunicorn 選定・並行処理・セキュリティ)を扱います。
目次
- 1 第1章 本書の対象読者とゴール 無料
- 2 第2章 HTTP は何をやりとりしているのか 無料
- 3 第3章 まずは 1 リクエストだけ処理するサーバを作る 無料
- 4 第4章 WSGI が生まれた背景 有料
- 5 第5章 WSGI の上に何が必要になるのか 有料
- 6 第6章 なぜ ASGI が必要になったのか 有料
- 7 第7章 最小の ASGI HTTP アプリ 有料
- 8 付録 A 最小 WSGI アプリ集 有料
- 9 付録 B 最小 ASGI アプリ集 有料