Pythonクイックリファレンス 第4版
by Alex Martelli, Anna Martelli Ravenscroft, Steve Holden, Paul McGuire, 鈴木 駿, 株式会社クイープ
20章HTTPの処理
Webブラウザ(またはその他のWebクライアント)がサーバーにページをリクエストすると、サーバーから静的なコンテンツが返される場合と動的なコンテンツが返される場合がある。動的コンテンツを提供するには、多くの場合はデータベースに格納されている情報に基づいて、サーバー側のWebプログラムがコンテンツをその場で生成して配信する必要がある。
Webの初期の歴史では、サーバー側プログラミングの標準はCGI(Common Gateway Interface)であり、クライアントが動的コンテンツをリクエストするたびにサーバーが別のプログラムを実行する必要があった。プロセスの起動にかかる時間、インタープリタの初期化、データベースへの接続、スクリプトの初期化が合わさると、無視できないほどのオーバーヘッドになる。CGIはあまりスケーラブルではなかった。
最近のWebサーバーは、オーバーヘッドを削減するためにサーバーに特化したさまざまな方法をサポートしており、ヒットごとに新しいプロセスを開始するのではなく、複数のヒットに対処できるプロセスから動的コンテンツを提供する。このため本書では、CGIは取り上げない。既存のCGIプログラムをメンテナンスするか、いっそのこと、より現代的なアプローチに移行させる方法については、オンラインドキュメントを読み(特に勧告についてはPEP 594†1を参照)、標準ライブラリモジュールcgi†2およびhttp.cookies†3を調べてみよう†4。
マイクロサービス†5ベースのシステムが登場したこともあり、HTTPは分散システムの設計においてこれまで以上に根本的なものとなっており、頻繁に使われるJSONコンテンツをプロセス間で転送するための便利な手段となっている。インターネット上では、何千ものHTTPデータAPIが一般に公開されている。 ...