0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ステートフルとステートレスなサービス、クッキーの関係

Last updated at Posted at 2024-09-29

サービスにおけるステートフルとステートレスの違い、そしてクッキーに関して勉強したので、それを記録に残します。

サービスにおけるステートフルとステートレスの違い

ステートフルとステートレスの違いを表にまとめました。

特徴 ステートレス ステートフル
リクエスト処理 各リクエストが独立 過去の処理内容を記録
負荷分散 容易 困難
スケーラビリティ 1 高い 低い
障害時の影響 小さい 大きい

ステートフルとステートレスの違い

ステートフルとステートレスの違いを商品の注文の受け方で例えてみます。

ステートフルな注文の例:メモを用いて注文を受けます

メリット:

  • 注文の途中でも、注文内容の変更や確認が可能です
  • 注文担当者が交代しても、前の担当者がメモした情報に基づいて続けることができます

デメリット:

  • メモの管理が必要です
  • 同時に多くの注文に対応しにくいです

ステートレスな注文の例:メモを用いずに注文を受けます

メリット:

  • 同時に多くの注文に対応しやすいです
    • ウェイターが厨房に持ってくる注文の量は想定可能です
  • メモの管理が不要です
    • メモがなくなった時のトラブルとかはありません

デメリット:

  • 注文の途中でその注文内容を変更することができません

どのようなサービスに用いられるか

  • ステートフル:
    • 柔軟な対応が求められるサービス
    • スケーラビリティがそれほど重要はならない比較的小規模なサービス
  • ステートレス:
    • Webサービス
      • 一般的に大量のリクエストを受け付けます
      • 負荷分散も用途によっては必要となります

クッキーとは

上述したように、Webサービスは、基本的にステートレスに設計されています。しかし、ユーザーごとに異なる情報を管理したい場合(例えば、ログイン状態を保持したい場合)があります。例えば、ネットショッピングサイトなどはその例です。

これを解決するのがクッキーです。クッキーを用いることで、ステートレスなWebの世界でもステートフルなサービスを提供できます。

クッキーのメリット

  • ユーザーの状態を保持できます

クッキーのデメリット

  • セキュリティリスクがあります(Cookieに機密情報を保存するのは危険)
  • クッキーのサイズが制限されています
  • ブラウザの設定でクッキーを拒否される可能性があリマス

まとめ

サービスはステートフルとステートレスなものに分類できます
その中でも、Webサービスはステートレスに分類されます
クッキーはステートレスなWebサービスをステートフルなものへと扱えるようにする仕組みです

  1. スケーラビリティが高いサービスは、たくさんのリクエストがあっても、安定に稼働します。
    逆に、スケーラビリティが低いサービスは、たくさんのリクエストがあったとき、サーバーが落ちたり、レスポンスが遅くなったりします。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?