『Real World HTTP 第2版 ―歴史とコードに学ぶインターネットとウェブ技術』
- 渋川 よしき 著
- 2020年4月21日発売予定
- 480ページ(予定)
- ISBN978-4-87311-903-8
- 定価3,960円(税込)
本書はHTTPに関する技術的な内容を一冊にまとめることを目的とした書籍です。HTTPが進化する道筋をたどりながら、ブラウザが内部で行っていること、サーバーとのやりとりの内容などについて、プロトコルの実例や実際の使用例などを交えながら紹介しています。GoやJavaScriptによるコード例によって、単純なHTTPアクセス、フォームの送信、キャッシュやクッキーのコントロール、Keep-Alive、SSL/TLS、プロトコルアップグレード、サーバープッシュ、Server-Sent Events、WebSocketなどの動作を理解します。
第2版ではHTTP/3の規格化など、初版の発行後に起きたウェブ技術への変化にともなう内容のアップデートに加え、DNSやCDN、またウェブアプリケーションの基礎など、ウェブ技術を扱うときに知っておきたい周辺技術に関する新章も追加しました。本書は、幅広く複雑なHTTPとウェブ技術に関する知識を整理するのに役立ち、また、さまざまな新しい技術をキャッチアップする一助となるでしょう。
本書の「まえがき」から一部を抜粋してご紹介します。
「まえがき」より
筆者がインターネットを利用し始めたころ、本屋にはPerl、PHP、CGIといったコーナーができて、それまで主流だったデスクトップアプリケーションの棚をどんどん侵食していきました。そのうちに、JavaやRubyがウェブ開発用の言語として広く使われるようになるにつれて、CGIではない、ウェブアプリケーションサーバー方式が広く使われるようになりました。現在では本屋に並ぶ書籍の半分以上が何らかの形でウェブと関わりがある書籍になっています。
本書では、変化が大きくない領域である、HTTP(Hypertext Transfer Protocol)というウェブの転送用のプロトコル[1]にフォーカスして紹介します。CGIとウェブアプリケーションサーバー、または最近でてきたサーバーレスアーキテクチャなど、ウェブサービスの裏で実装に使われる言語や仕組みはここ20年で大きく移り変わりましたが、実際にブラウザとサーバーの通信に関わる部分のコンセプトは20年近く、あまり変わっていません。「コンピュータ業界は、日進月歩で新しい技術などが出続けるため、学び続けないといけない」とよく言われます。それは半分正しくて半分間違っています。コンピュータサイエンスにあたるような内容、業界標準のプロトコル、テストしやすく見通しのよいコードの書き方、アルゴリズム、データベースなどは、一度学んでも無駄になることはありません[2]。
本書はウェブの時代の書籍の役割・使命として、HTTPに関する内容を一冊に集めて、知識のベースラインを提供することを目指して企画されました。陳腐化はあまりないといっても、そのプロトコルの周辺で日々追加される機能は膨大です。筆者もHTTPに関わるコードを仕事や趣味でそれなりの分量を書いてきましたが、その都度調べて、それぞれ別のサイトで紹介されている情報をザッピングして学ぶことが多くありました。実際、サーバーのAPIの使い方は学んだけれど、実際のHTTP通信がどうなっているか想像ができないという読者も多いでしょう。「ウェブを探せば必要な情報は手に入る」時代ですが、古い情報をフィルタリングしつつ全体像を理解するにも知識が必要です。基礎をしっかりと押さえることで、さまざまな新しい技術をキャッチアップする時間を短縮することにもつながります。
主にHTTPのクライアント側(ブラウザ等)の視点で書いていますが、ウェブサービス開発者を想定読者から外しているわけではなく、むしろそちらがメインだと考えています。ただ、どの言語のサーバー側のフレームワークも、高度に抽象化されすぎていてクライアント側に比べてHTTPレイヤーは遠くなっています。クライアントは学びやすい上に、サーバー実装者も他のAPIを呼び出す場合はクライアントの立場になるため実用的でもあります。クライアントとサーバーは表裏一体ですし、クライアントを学ぶことでサーバーへの理解が進むでしょう。
それに加えて、第2版ではサーバー視点での章も2つ追加しました。1つは開発環境の上で動くサーバーで、もう1つはクラウド環境です。開発環境周りも、ウェブのフロントエンドとサーバーの同時開発など、構成が複雑になってきています。クラウドサービスも利用するにはより高度なHTTPやネットワークの知識が必要となりますので、新規にクラウドのインフラに関わる人に知っていて欲しい前提知識は何か、という視点で書いています。
本書はこれからウェブに関係する開発をする人、あるいはかつての筆者のようにその場その場で学ぶことでお茶を濁してきた人に手にとってもらいたいと考えています。初版では「これはウェブに関するうんちく集ではないか」という感想が寄せられたりもしましたが、大半の内容は実際に開発にあたって調べたことをもとに書いています。現時点では必要ないと思われることも多いかもしれませんが、本書を読んだ人の多く[3]は「これReal World HTTPでみたやつだ」と感じる瞬間を経験しています。もし、そのような機会がありましたら、そのようにツイートしていただければ幸いです。
[1] | 約束事のこと。 |
[2] | もちろん、使われなくなるものもありますが、新しく登場するものは、その前のものをベースとした改良であったりすることがほとんどです。キャッチアップは難しくないでしょう。 |
[3] | 本書の編集をしてくださった瀧澤さんも、筆者自身も体験しています。 |
全国の有名書店、Amazon.co.jpにて予約受付中です。