LoginSignup
1
0

More than 1 year has passed since last update.

RESTとは何か

Last updated at Posted at 2023-01-01

RESTとは

RESTとは、Webのアーキテクチャスタイルです。

アーキテクチャスタイル(アーキテクチャパターン)とは、複数のアーキテクチャに共通する様式のことです。

「アーキテクチャ」というのは「構造」を表す用語です。

Webの構造様式がRESTということになります。

Webとは何かに関しては以下を参照してください。

RESTの中身

ネットワークシステムにおいて最も有名なアーキテクチャスタイルは「クライアント/サーバ」です。

RESTは、クライアント/サーバにいくつかのアーキテクチャスタイルを追加して(制約を加えて)いったものです。

結論をいうと、RESTとは、以下の6つを組み合わせたアーキテクチャスタイルということになります。

クライアント/サーバー
ステートレスサーバ
キャッシュ
統一インターフェース
階層化システム
コードオンデマンド

クライアント/サーバー

webの場合、HTTPというプロトコルでクライアント(ブラウザ)とサーバ(ウェブサーバ)が通信するスタイルを採っています。これによってユーザインターフェース(ユーザが操作する画面)と処理(バックエンド)を分離することができます。

ステートレスサーバ

これはクライアントのアプリケーション状態をサーバ側で管理しない方式です。

しかし、実際はCookieを使ったセッション管理などステートフルなWebサービスはたくさんあります。

キャッシュ

これは一度取得したリソースをクライアント側で使い回す方式です。

Webに限らずいろんなシステムで使われている方式ですね。

統一インターフェース

これはURIで指し示したリソースに対する操作を統一された限定的なアクションとする方式です。

HTTPではGETやPOSTなど8個に限定されたメソッドだけが定義されています。

階層化システム

これはシステムをいくつかの階層に分離する方式です。

例えば、クライアント-サーバ間にロードバランサーやプロキシサーバを加えることで役割を階層化します。

各階層間のインターフェース(接続部分)をHTTPで統一しているため階層化を実現できます。例えば、クライアント側からは、直接ロードバランサーにつながっているのか、Webサーバにつながっているのか、アプリケーションサーバにつながっているのかを意識する必要がありません。

コードオンデマンド

これはプログラムコードをサーバからダウンロードし、クライアント側で実行する方式です。

例えば、Javascriptの実行はこれに当たります。

まとめ

RESTは、Webのアーキテクチャスタイルです。
6つのアーキテクチャスタイルが組み合わさって構成されています。

個々のWebサービスがRESTful(RESTに忠実)な設計になっているとWeb全体としてRESTfulになります。

ただし、RESTが絶対というわけではありません。

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