Webを支える技術
遙か昔に読んだ記憶があるが、ほぼほぼ覚えていないので再読
Webの歴史はハイパーリンクとともにあり
文書同士をリンクさせるハイパーテキストを拡張して、動画や音声などのリンクをコンテンツに紐づけることで非線形的にコンテンツを関連づけることができる構想が考案され、それが今のWebとして形になっている
Web以前のパイパーリンクは複雑すぎて普及しなかった(XanaduやHyperCardなど)
また、Web以前の分散システムでは、一定数のクライアントを想定としたものになっており、ハードウェア/ソフトウェアの両面で課題点(性能劣化や負荷分散など)があった
1990年にCERN所属のTim Berners-LeeがWebを考案・実装した
当初は研究者が中心に使用していたが、ブラウザとサーバーを無償で公開したことにより、全世界で普及が加速した。加えて、NCSAが公開したMosaicという初期ブラウザがインターネット初期においてWebの普及に貢献した。
Webをインターネットを利用したハイパーメディアとして設計された
以前のハイパーメディアと違って、インターネットを利用するため、不特定多数のリンクを紐づけることができ、大規模なシステムと親和性があった
ただ、大規模すぎるが故にリンク切れを起こしたりなどの課題もあるが、それはWebが単一方向のリンクだけというシンプルなコンセプトに起因し、このシンプルさが普及の最大の要因だったと言える
クライアントとサーバー間のインターフェースプロトコルをHTTPに限定したことにより、PCやブラウザなどの特定の環境に依存せずにWebを利用することができる
今は無きInternet ExplorerやNetscapeなど、多種多様なブラウザが90年代に乱立したせいで、ブラウザ間でHTML/CSSのレンダリング性能に大きな差分が生まれてしまった(これはWebが爆発的に普及したことにより、標準化が進んでいなかったことが原因)
そのため、Berners-Leeを中心としてW3Cが立ち上げられ、HTML/CSSやHTTP, URIなどの各Web技術の標準化が進められた
当時、大学院生であったRoy FeildingはBerners-Leeらとともに、HTTPの仕様策定に参画していた
Feildingは研究として、Webが発展した要因や大規模なシステムが成立した要因をシステムアーキテクチャの観点から論文にまとめ、そのアーキテクチャスタイルを REST (Representational State Transfer) と名付けた
HTTP自体も Hypertext Trasfer Protocol という正式名称で、元々はハイパーテキストを転送するプロトコルとして作られた
ただ、実際にはハイパーテキスト以外の情報もやり取りをしており、それは リソースの状態の表現 もやり取りしているというのが Feilding の主張だった
(ちなみに私はRESTは Resource State Trasfer の略だと勘違いしていた…)
ハイパーメディアフォーマットとしてHTMLの他に、RSSや、その後継となるAtomなどが登場した
また、単純にデータを記述するだけのフォーマットとして、既存のHTMLやAtomなどでは記述が冗長すぎる(よりシンプルなものにしたい)ため、現在のデファクトスタンダードとなっている JSON が登場した