1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RESTの原則について説明する

Posted at

RESTとは

RESTとは、ネットワークシステムの設計の考え方の一つです。

以下の4つの原則を持ち合わせています。

  • リソースのアドレス可能性
  • 統一インタフェース
  • 表現指向とハイパーメディア
  • ステートレスな通信

リソースのアドレス可能性

リソースとは、クライアントが要求する情報やデータのことです。
たとえば、URIはリソースです。

このリソースには動詞を含めず、名詞のみを使用します。
つまり、「何を」「どうするか」の、何の部分のみを指定するということです。

そしてこのリソースは、全てURIで表現される一意、つまり特定できるURIを持っています。

統一インタフェース

RESTでは、リソースに対しての操作が統一して決められています。
HTTPメソッドを使用して、リソースをどのように操作するのか、動詞の部分を指定します。

HTTPメソッドの一覧はこちら
基本的に多く使用されるのは上から4つです。

メソッド 意味
GET リソースの取得
POST リソースの作成、追加など
PUT リソースの更新、作成
DELETE リソースの削除
HEAD リソースのヘッダ(メタデータ)の取得
OPTIONS リソースがサポートしているメソッドの取得
TRACE プロキシ動作の確認
CONNECT プロキシ動作のトンネル接続への変更

表現指向とハイパーメディア

RESTでは、レスポンス(サーバーから返ってくる返事)に関連する別のリソースのリンクURIを含むことができます。
そのリンクを辿ることで、関連するリソースを取得できるので、知らないリンクにも飛ぶことができます。

ステートレスな通信

RESTでは、サーバーがセッション情報を保持しません。
そのため、すべての情報をクライアントからサーバーに送る必要があります。

ステートレスのわかりやすい例は、こちらを参照してください。
ステートレスとは

メリット

クライアントが増えると、対応するサーバーが異なることになります。
そのときに、サーバー側で情報を保持できていないという状況を避けるために、ステートレスな通信を使用します。

デメリット

送信するデータ量が多くなるため、パフォーマンスが低下します。
また、認証がある場合DBアクセスが増えるため、パフォーマンスが低下します。

そして、通信エラー時にうまくレスポンスが受け取れなかった場合でも、リクエストはすでに送信されており、もう一度リクエストを送ると二重にリクエストを送ったことになります。
一方、ステートフルの場合は、リクエストを受け付けたことを覚えているので二重にリクエストが送られません。

さいごに

HTTPとかRESTってかなり難しいので、『Webを支える技術』を読んだりアウトプットして理解することをおすすめします。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?