web-dev-qa-db-ja.com

ステートレスWebアプリケーションの利点は何ですか?

一部のWebアーキテクトは、ステートレスWebアプリケーションを目指しているようです。それは基本的にユーザーセッションを保存しないことを意味しますか?それともそれ以上のものがありますか?

ユーザーセッションの保存だけの場合、それを行わないことの利点は何ですか?

30
Genadinik
  1. メモリ使用量を削減します。グーグルがすべてのユーザーに関するセッション情報を保存したと想像してみてください
  2. サーバーファームのサポートが簡単。セッションデータが必要で、サーバーが複数ある場合は、サーバー間でそのセッションデータを同期する方法が必要です。通常、これはデータベースを使用して行われます。
  3. セッションの有効期限の問題を減らします。セッションの有効期限が切れると、問題を見つけてテストするのが難しい場合があります。セッションレスアプリケーションはこれらの影響を受けません。
  4. RLリンク可能性。一部のサイトでは、ユーザーがセッションで見ているもののIDが保存されています。これにより、ユーザーはURLをコピーして貼り付けたり、友達に送信したりすることができなくなります。

注:セッションデータは実際にはキャッシュされたデータです。これはそれが使用されるべきものです。再利用される高価なクエリがある場合は、それをセッションに保存します。後で入手しようとしたときに、そこにあるとは想定できないことを覚えておいてください。取得する前に、必ず存在するかどうかを確認してください。

34
tster

開発者の観点からは、ステートレスはアプリケーションをより保守しやすく、操作しやすくするのに役立ちます。作業中のWebサイトがステートレスであることがわかっている場合は、特定のページをロードする前に、セッションで正しく初期化されることを心配する必要はありません。

ユーザーの観点からは、ステートレスによりリソースをリンクできます。ページがステートレスの場合、友人をそのページにリンクすると、私が見ているものが彼らに表示されることがわかります。

スケーリングとパフォーマンスの観点から、tstersの回答を参照してください。

12
Jamie Wong