ぼちぼちクラウド

クラウド系SEのぼちぼち技術ブログ

【読書記録】Webを支える技術 第1部①

本書の構成

第1部

  • Webの歴史と技術的特徴
  • HTTP、URI、HTMLがどのようなアーキテクチャの原則に従って設計されているか

第2部

第3部

第4部

第5部

第1章 Webとは何か

Webの用途

  • 人間向け

 ・Webサイト:YahooやAmazonなど
 ・各種デバイスの設定画面
  :プリンタなどネットワークに接続するデバイスの設定(PCの方がリモコン等より効率的)

  • プログラム向け

 ・プログラム用API:プログラムで解釈・処理を行う。データフォーマットはJSONXMLなど。本書では「Web API」と表現。

Webを支える基本的な3つの技術

  • HTTP:アプリケーションプロトコルURIで操作対象を指定し、情報を取得
  • URI:リソース識別子。HTMLのリンクとして利用され、情報の場所を指し示す
  • HTML:ハイパーメディアフォーマット。情報を表現。HTTPでやり取りされる

Webの特徴

  • ハイパーメディアの1つである:ハイパーリンクでさまざまなメディアを結び付け、非線形的にユーザが自分でリンクを選択する

 ⇔逆の例:書籍や映画。先頭から順に読んだり視聴したりする
 

  • 分散システムである:世界中に配置されたサーバに世界中のブラウザがアクセスできる。プロトコルがシンプルなのが特徴

<補足>分散システム:複数のコンピュータを組み合わせて処理を分散させる形式。膨大な情報の操作、複数コンピュータ上の情報を一元的に扱うことなどが可能
 ⇔集中システム:1つの中央コンピュータがすべてを処理
 

第2章 Webの歴史

Web以前

初期のインターネットにはWebがなかった

インターネット
  • 起源は1969年、米国内の大学などの間を回線接続し全米をつなぐネットワークが存在していた
  • メールは英数字のみ。TCP/IP(リアルタイム通信)だけではなくUUCP(バケツリレー式)も存在したため、メール到達に遅延があった
  • ファイル交換のためのFTPUNIXホストにリモート接続するためのtelnetなども生まれた
ハイパーメディア
  • 1945年の米国研究者で提唱されていた(情報検索システムについての論文。本やファイルを相互リンクで辿れる)
  • 1965年にNelsonがハイパーメディアを考案(Xanadu)。しかし開発は失敗に終わる
  • 1987年、AppleHyperCardが開発された。ネットワークでデータをやりとりする機能はなかった
  • 当時Webはリンクが切れる可能性があるなど不完全だと思われていたが、必要最低限のリンク機能だけを備えていることから現在普及している。上記は複雑すぎるのが問題点だったと言える
分散システム
  • 通信相手がある程度限られているイントラネット環境まででしか動作しなかった

Webの誕生

  • 1990年、ハイパーメディアを用いたインターネットベースの分散情報管理システムとして提案された
  • 1993年、IEFirefoxの源流となるブラウザMosaicが公開され、Webの普及が進んだ
  • WebとWeb以前のシステムの違いは、「インターネットを使った」ハイパーメディアとして設計されたこと
  • インターネットを用いることで、不特定多数の情報をリンクさせあうことができる
  • HTTPを用いてクライアントとサーバの間のインタフェースを固定したことで、不特定多数のクライアントにサービスを提供できるようになった

Webの標準化

  • 様々な企業がWebに参画したことでHTTP、URI、HTMLなどの標準化が求められ、1994年に団体が設立された
  • 「ブラウザ対応」という言葉はこの時代から存在した
  • HTTPの仕様策定に携わった人物が、Webの成功要因の分析を行い、その結果1つのアーキテクチャスタイルとして「REST」を提唱した
  • HTTPは「リソースの状態」の「表現」を運ぶためのプロトコルであるという思想

Web APIをめぐる論争「SOAP VS REST」

  • 1990年代後半からWebの用途の多様化により、プログラムでWebを操作したいという要望が出るようになった
  • 2004年から始まったWeb2.0の流れの中でGoogleAmazonがREST形式のWeb APIを提供し始めた
  • SOAPはメッセージ転送の方法だけを定めた仕様のため、標準化が困難だった
  • Amazonが2002年にSOAP形式とREST形式(定められたURIをHTTPでGETする方式。技術的には正確ではないがこう呼ばれた)を用いてAWSを開発
  • Web2.0ではマッシュアップが重要。いろいろなWeb APIが提供する情報を組み合わせて一つのアプリを実現する手法。RESTでは簡単にHTTPやURIでリソースを操作できたため、受け入れられた

そして現在

  • Ajaxなどの技術的ブレークスルーもあり、WebでUIが統一されるようになった
  • 常に最新の情報をWebを通じて提供できる

補足:ハイパーメディアフォーマットの歴史

  • 初期のWebではHTMLが唯一のハイパーメディアフォーマット(情報の表現様式)
  • microformats:HTMLの構造はそのままにHTMLにさまざまな意味を持たせることができる技術
  • RSS:Webの最新情報をサーバで配信しチェックする技術。最終的にAtomに標準化された
  • JSON:データを記述するためのフォーマット。(HTMLやAtomXMLベースのため、表記が冗長になりデータ表記には向かない)