まえがき
筆者がインターネットを利用し始めたころ、本屋にはPerl、PHP、CGIといったコーナーができて、それまで主流だったデスクトップアプリケーションの棚をどんどん侵食していきました。そのうちに、JavaやRubyがウェブ開発用の言語として広く使われるようになるにつれて、CGIではない、ウェブアプリケーションサーバー方式が広く使われるようになりました。現在では本屋に並ぶ書籍の半分以上が何らかの形でウェブと関わりがある書籍になっています。
本書では、変化が大きくない領域である、HTTP(Hypertext Transfer Protocol)というウェブの転送用のプロトコル1にフォーカスして紹介します。CGIとウェブアプリケーションサーバー、または最近でてきたサーバーレスアーキテクチャなど、ウェブサービスの裏で実装に使われる言語や仕組みはここ20年で大きく移り変わりましたが、実際にブラウザとサーバーの通信に関わる部分のコンセプトは20年近く、あまり変わっていません。「コンピュータ業界は、日進月歩で新しい技術などが出続けるため、学び続けないといけない」とよく言われます。それは半分正しくて半分間違っています。コンピュータサイエンスにあたるような内容、業界標準のプロトコル、テストしやすく見通しのよいコードの書き方、アルゴリズム、データベースなどは、一度学んでも無駄になることはありません2。
本書はウェブの時代の書籍の役割・使命として、HTTPに関する内容を一冊に集めて、知識のベースラインを提供することを目指して企画されました。陳腐化はあまりないといっても、そのプロトコルの周辺で日々追加される機能は膨大です。筆者もHTTPに関わるコードを仕事や趣味でそれなりの分量を書いてきましたが、その都度調べて、それぞれ別のサイトで紹介されている情報をザッピングして学ぶことが多くありました。実際、サーバーのAPIの使い方は学んだけれど、実際のHTTP通信がどうなっているか想像ができないという読者も多いでしょう。「ウェブを探せば必要な情報は手に入る」時代ですが、古い情報をフィルタリングしつつ全体像を理解するにも知識が必要です。基礎をしっかりと押さえることで、さまざまな新しい技術をキャッチアップする時間を短縮することにもつながります。 ...