読書要点「Webを支える技術」:第1部「Web概論」


第1章 Webとは何か

Webの用途

私たちの生活を支えているWebは主に3つの用途で使われている。

1. Webサイト
様々なデバイスからアクセス可能で、ショッピング、SNSをはじめ多種多様なサービスが展開されている。

2. ユーザインターフェース
各種デバイスの設定画面のように、ユーザインターフェースとして利用されることも少なくない。

3. プログラム用API
APIとしてプログラミング向けのインターフェースも提供されている。

Webを支える技術

幅広い領域で使われるWebの背景には、Webを支え実現させるための技術がある。

HTTP、URI、HTML

Webを支える最も基本的な技術である。
HTTPは情報をやり取りするためのプロトコル、URIはあらゆる情報を指し示すための技術、HTMLは情報表現のためのフォーマット。
これらはシンプルな技術である。

ハイパーメディア

Webはハイパーメディアである。
メディアをハイパーリンクで結びつけていることで、ユーザはリンクを通じてメディアをたどることができる。
Web以前のハイパーメディアは高機能を目指したことで複雑になっている。
Webは基本的な機能を持つシンプルな技術である。

分散システム

処理を1台のコンピュータではなく、複数のコンピュータに分散させる仕組みを分散システムという。
Webが持つ巨大な規模を実現させるためには必要不可欠な技術。

第2章 Webの歴史

Web以前にもインターネットで情報をやり取りするための技術は存在していた。
しかし、現在のWebほど広汎に使われるようになることはなかった。
それらは普及の上で問題点を抱えていた。
Webはシンプルさ故に普及することになったが、その仕様の策定で議論、競争が生じた。

Web以前のハイパーメディアの問題点

旧来のハイパーメディアはWebと比べて多機能だった。
それに対してWebは単方向リンクしかサポートしていない、リンクが切れる可能性がある、バージョン管理やトランスクルージョンの機能がないといったように高度な機能は実装していない。
Webが持ち合わせていたのはシンプルさであり、普及の観点で言えば過去システムの欠点は複雑さ似合ったと考えられる。

Web以前の分散システムの問題点

Web以前の分散システムは、イントラネットを中心に利用されていたが、不特定多数にひらかれたインターネットで利用する上では問題点を抱えていた。

  • 性能劣化の問題
  • データ型変換の問題
  • インターフェースバージョンアップ時の互換性の問題
  • 負荷分散の問題

Webの誕生

Webの提案書は1990年11月12日にスイスの欧州原子核研究機構のTim Verners-Leeによって提出された。
Berners-Leeは年内に実装まで進めた。
1993年にイリノイ大学の米国立スーパーコンピュータ応用研究所が公開したブラウザMosaicにより一気に普及した。

ハイパーメディアとしても分散システムとしてもシンプルで、不特定多数を相手にしたオープンなシステムであるWebが普及することとなった。

第3章 REST

Webの標準化は多くの企業、集団により競争を経て進められた。
競争の末、Webのアーキテクチャスタイルとして、RESTがを採用するケースが標準化した。

RESTは、各々が作るWebサービスの設計指針となるもので、一人ひとりが作るWebサービス、APIでRESTの約束を守っていくことが重要。

RESTはRepresentational State Transferの略称で、Roy Fieldingにより発表された。

リソース

リソースとは、Web上に存在する名前を持った情報の総称で、その名前はURIである。
一つのリソースに複数のURIをもたせることができる。
リソースの表現も多様な形態を取ることができる。

スタイルを組み合わせてRESTを構成する

RESTは6つのアーキテクチャスタイルを組み合わせて構成されたアーキテクチャスタイルである。

  • クライアント/サーバ

  • ステートレスサーバ

  • キャッシュ

  • 統一インターフェース

  • 階層化システム

  • コードオンデマンド

Webを支える技術