LoginSignup
0
0

More than 3 years have passed since last update.

Webを支える技術(REST)

Last updated at Posted at 2020-05-16

Webを支える技術を読んだので、知識の整理も兼ねて、学んだことをご紹介いたします。

RESTとは

RESTとはWeb全体のアーキテクチャスタイル(システムを設計するための指針)です。
RESTにしたがって個別のWebサービスを作ることで、Webは全体としてより良くなります。
RESTは次の6つを組み合わせたアーキテクチャスタイルになります。

クライアント/サーバ

クライアントはサーバにリクエストを送り、サーバーはそれに対してレスポンスを返します。

クライアントとサーバに分けることで、単一のコンピュータで処理するのではなく、分離して処理できます。そのため、クライアントは色々な種類のデバイスからアクセスできます。
また、データストレージの機能を持つサーバを複数組み合わせることで可用性をあげることができます。

ステートレスサーバ

ステートレス(Stateless)とは状態を持たないという意味です。
ステートレスサーバとは、クライアントのアプリケーション状態をサーバで管理しないことを意味します。
利点はサーバの実装を簡略化できます。また、クライアントのリクエストに応えたあとすぐにサーバの計算機リソースを開放できます。

キャッシュ

一度取得したリソースをクライアント側で再度利用する仕組みです。
サーバとクライアントの通信を減らすことで、効率的に処理できるようになります。

統一インタフェース

統一インタフェースとは、URIで指し示したリソースに対する操作を、統一した限定的なインタフェースで行うアーキテクチャスタイルのことです。

HTTPではGETやPOSTなどの8個のメソッドが定義されています。
限定的にすることで、全体のアーキテクチャがシンプルになり、クライアントとサーバの実装の独立性が向上します。

階層化システム

先ほどの統一インタフェースの利点のひとつに、システム全体が階層化しやすいことがあります。
クライアントとサーバの間にロードバランサを設置して負荷分散したり、
プロキシを設置してアクセスを制限したりします。

コードオンデマンド

プログラムコードをサーバからダウンロードし、クライアントでそれを実行するアーキテクチャスタイルです。

JavaScriptやFlash、Javaアプレットなどが該当します。
利点は、クライアントプログラムに新しい機能を追加することができます。

RESTとはつまり

・クライアント/サーバ : ユーザインタフェースと処理を分離する
・ステートレスサーバ : サーバ側でアプリケーション状態を持たない
・キャッシュ : クライアントとサーバの通信回数と量を減らす
・統一インタフェース : インタフェースを固定する
・階層化システム : システムを階層に分離する
・コードオンデマンド : プログラムをクライアントにダウンロードして実行する

上記のRESTの制約にしたがって、RESTらしいことをRESTfulと呼びます。

0
0
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
0
0