LoginSignup
2
3

More than 3 years have passed since last update.

「WEBを支える技術」のまとめ1

Posted at

「Webを支える技術」のまとめです

1章 Web概論

リソースとは

・リソースとは、Web上に存在する情報である
・世界中の無数のリソースとは、それぞれURLで一一意の名前を持つ
・URLを用いることで、プログラムはリソースが表現する情報にアクセスできる

サーバととクライアントの間でリソースのやり取りが発生することを、「リソースの表現」と言う。

1つのリソースは複数の表現を持つことが出来る。
-HTMLやPDFなど、、

また、リソースには「状態」があり、時間の経過で状態を変化させることが出来る。
そして、状態が変化すると、リソースの表現も変化する。

RESTとは

・クライアント/サーバ
・ステートレスサーバ
・キャッシュ
・統一インターフェイス
・階層化システム
・コードオンデマンド
の6つを組み合わせたアーキテクチャスタイルのこと

クライアント/サーバ

Webが通信するときに使用されるアーキテクチャスタイル。HTTPとういうプロトコルを用いて通信する。クライアントがサーバに対してリクエストを送り、サーバがレスポンスを返す。
クライアントとサーバに分離させることによって、単一のコンピュータで処理を行わなくても済むようになっている。

ステートレスサーバ

クライアント/サーバに最初に追加するアーキテクチャスタイル。
クライアントサーバにアプリケーション状態を管理しないことを意味します。
逆に、HTTPをステートフルにするのが、Cokkieを使用したセッション管理である。
クライアント/サーバにステートレス性を導入すると、アーキテクチャスタイルは「クライアント/ステートレスサーバ」になる。

キャッシュ

リソースの鮮度に基づいて、一度取得したリソースをクライアント側で使いまわす方式。
サーバとクライアント間の通信を減らすことで、より効率的に処理ができる。しかし、古いキャッシュを利用してしまい、情報の信頼性が落ちてしまうことがある。
キャッシュを追加したアーキテクチャスタイルは、「クライアント/キャッシュ/ステートレスサーバ」と呼ばれる。

統一インターフェース

URLで指し示したリソースに対する操作を、統一した限定的なインターフェースで行うアーキテクチャスタイルのこと。
例えば、HTTP1.1では、GETやPOSTなど、8個のメソッドに限定されている。この制約のおかげで全体のアーキテクチャがシンプルになるだけでなく、クライアントとサーバの実装の独立性が向上する。
統一インターフェースを追加したアーキテクチャスタイルは「統一/クライアント/キャッシュ/ステートレスサーバ」と呼ばれる。

階層化システム

統一インターフェースの利点の一つに、システム全体が階層化しやすいということがある。
例えばWebサービスでは、サーバとクライアントの間にロードバランサを設置して負荷を分散したり、プロキシを設定してアクセスを制限したりします。
クライアントからすると、サーバもプロキシも同じインターフェースで接続できるので、接続先がサーバからプロキシに変わったことを意識する必要がない。これは、サーバやプロキシなど、各コンポーネント間のインターフェースをHTTPで統一しているから実現できる。
このようにシステムをいくつかの階層に分離することが出来る。
階層化システムを追加したアーキテクチャスタイルは「統一/階層化/クライアント/キャッシュ/ステートレスサーバ」と呼ばれる。

コードオンデマンド

プログラムコードをサーバからダウンロードして、クライアント側でそれを実行すること。
コードオンデマンドの利点は、クライアントプログラムに予め用意していた絹だけでなく、新しい機能を拡張していけることにある。
ただし、コードオンデマンドを利用すると、ネットワーク通信のプロトコルの可視化の低下に繋がることだ。
コードオンデマンドを追加したアーキテクチャスタイルは「統一/階層化/コードオンデマンド/クライアント/キャッシュ/ステートレスサーバ」と呼ばれる。

RESTはアーキテクチャスタイルなので、システムを設計する際には、そのシステムのアーキテクチャを作らなければならない。
RESTを構成するスタイルのうち、いくつかを使用しないこともあり得る。

RESTの二つの側面

RESTは、ハイパーメディアと分散システムにより、世界的な成功を収めた。

RESTとハイパーメディア

リソースをリンクで表現することで、1つのアプリケーションを表現するという考え方。RESTの基幹となる思想である。
ハイパーメディアを用いたアプリケーションは、リソースのURLさえ分かれば、そのアプリケーションが提供しているリソースを他のアプリケーションでも簡単に再利用出来るという利点がある。
リソースをリンクで接続することで1つのアプリケーションを構成するという考え方は、「接続性」とも呼ばれる。

RESTと分散システム

RESTに基づいたWebでは、統一インターフェースによってインターフェースが固定されているため、互換性の問題が発生しない。
リソースで適応できるHTTPメソッドは常に固定であり、HTTPを実装したクライアントであれば同じように接続できる。

まとめ

WebはRESTという分散ネットワークシステムの理論があったからこそ、ここまで成長したとも言える。
個別のWebサービスやWeb APIがRESTfulになると、Webは全体として良くなる。
以降の章で、THHP、URI、そしてHTMLなどのハイパーメディアフォーマットをどのようにRESTfulに使うか、どのように設計するのかを見ていく。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3