Webとはなにか
Webの用途
リモコンやハードウェアの限定されたボタンで操作を行うよりも、pcのキーボードで操作した方が楽な場合にはWEBが用いられることがある。また、HTMLが編集ソフトなどによって記述しやすく、多様な環境でブラウザが利用できることも、WEBが用いられている理由である。
プログラム用APIとしてのWEBの用途もあり、言い換えるならば、プログラム用のインターフェース。
Webを支える技術
Webを支える最も基本的な技術はHTTP、URI(Uniform Resource Identifier)、HTMLである。HTTPはメソッドが8つしかないないなど、Webはとてもシンプルな技術で作られている。
※URLはURIの一種。
WEBはハイパーメディア。テキストや画像、音声、映像などをリンクして結びつけたもの。線形的ではなく非線形的にユーザーが選択して情報を得られることが特徴。
WEBは大規模分散システム。プロトコルがシンプルであるが故に、大規模分システムとして普及した。
Webの歴史
webがなぜこのようなアーキテクチャになっているのか。
Web以前のインターネット。
初期のインターネットにWebはなかった。
Web以前のハイパーメディア
- Memex
- Xanabu
- HyperCard
等のハイパーメディアの構想、システムがあった。そしてこれまでに最も普及したハイパーメディアこそがWeb
Web以前の分散システム
RPCという分散システムがあった。現在でもNFS(Network File System)として使われている。ただし、接続する機械の数が決まっている環境に適した技術である。Webはインターネットを用いたハイパーメディアであるため、不特定多数の相手にした大規模分散システムとしてなりたっている。
Webの標準化
とてつもない速度でWebが普及していく中、Webの標準化が求められた。W3Cという機関でHTML、XML、CSS、HTTP、URIなどの技術の標準化、RESTというWebアーキテクチャの提案などがあった。
RESTと異なるアーキテクチャとしてSOAPなどのアーキテクチャの提案などがあった。しかし、マッシュアップという様々なWeb APIを組み合わせて1つのアプリケーションを作る手法がWeb2.0では重要だったため、シンプルな実装であるRESTに軍配が上がり、RESTが普及していった。
REST
アーキテクチャスタイルとしてのREST
RESTはインターネットのアーキテクチャスタイル。現実的にはWebに用いられるのがほとんどなので、Web = RESTといっても差し支えはない。
リソース
RESTではリソースにURIでアクセスする。
RESTの構成
- クライアント・サーバー
- ステートレス
- キャッシュ
- 統一インターフェース
- 階層化システム
- コードオンデマンド
の組み合わせでRESTは成り立っている。必要に応じて、例えばコードオンデマンドはなくすが、他の要素はRESTに則って作っている場合でも、RESTを実装していると言える。
RESTを忠実に実装している状態をRESTfulといい、この状態のものが多ければ多いほどWebは全体的によくなる。
また、リソースをリンクで接続して1つのアプリケーションを構成するという考え方はRESTの基幹をなす構想で、接続性とも呼ばれている。