問題タブ [stateless]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
design-patterns - 戦略パターンはステートレスにする必要がありますか?
「ギャング オブ フォー」戦略であるクラスは、完全にステートレス (つまり、フィールドがない) である必要がありますか、それとも不変の状態 (つまり、最終フィールド) を含むことができますか?
http - HTTP の twiki での DBI_QUERY の置き換え
現在、DBI_QUERY 機能を使用して DB からデータを取得し、テーブル列の 1 つにハイパーリンクを備えたテーブルを生成している twiki ページの一部の機能を置き換えています。ページの読み込み時に twiki が作成する HTTP リクエストから取得したコンマ区切りファイルから同様のテーブルを生成する方法はありますか? または、データを JSON としてプルすることもできます。
ありがとう、
SetJmp
asp.net-mvc - Web アプリまたは Web サイトのステートレス状態とは
Web アプリケーション開発の基礎を学びたいと思っています。ASP.Net Web Forms、ASP.Net MVC などのさまざまなアプローチを読んでいたので。ほとんどのチュートリアルでは、MVC などについて説明するときに「ステートレス」という用語に言及しています。用語を正しく取得できませんでした。それについて少し説明していただけませんか。
ありがとう
php - RESTクライアントアプリケーションでPHPセッションを使用する方法は?
PHPは、ブラウザのCookie PHPSESSIDを使用してセッション値(たとえば12345)を保存します。これは、デフォルトでサーバー上の各セッションのファイルを作成することによって行われます(session_12345.txt)。リクエストがブラウザからではなく、RESTプロトコルを介してアクセスするモバイルセルアプリケーションからのものである場合はどうなりますか。私の残りのクライアントがそれ自体を識別するために一意の値を送信している場合、たとえば12345とすると、この値がCookie PHPSESSIDからのものであるかのように、この値を使用してsession_12345.txtを作成するようにPHPに指示できますか?
前もって感謝します。
java - トランザクションが成功した後、XMPPメッセージを送信するにはどうすればよいですか?
私のプロジェクトでは、すべてのサービスをステートレスセッションBeanとして設計しています。ワークフロー中に、新しいデータが作成され、これをクライアントに報告する必要があります。トランザクションが正常にコミットされたときにのみ、このメッセージを送信したいと思います。
xmppパケット(smackライブラリ)をディスパッチするServletContextListenerを登録しています。パケットを受信すると、ディスパッチするステートフルセッションBeanを見つけて、要求の処理を開始します。
複数のBeanにまたがるワークフロー中に、この生成されたメッセージを収集するにはどうすればよいですか?ディスパッチBeanからこのリストを返し、後でメッセージを送信します。私の簡単な解決策は、メッセージを追加するリストをルーティングすることですが、よりエレガントな方法はありますか?
すべてのBeanからアクセスする必要があるXMPPリソース(名簿http://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smack/Roster.html )があります。どうすればそれを達成できますか?それを静的変数に格納し、それへのアクセスを同期するのはあまり良くありません。
php - REST認証の統計性
'statlessness'は言葉ではないと思いますが、それでもかまいません:)
RESTサービス(PHP)の認証を作成しようとしています。私はサービスを可能な限りステートレスにしようとしています。私はここ(ヒント#4)を読みましたが、これは理にかなっている$ _SESSIONを使用すべきではありませんが、代わりにCookieを使用することをお勧めします。「ステートレス」とは何かを誤解したかもしれませんが、Cookieがどのように受け入れられるかわかりません。トークンが、その方法であると考えました。
ステートレスなRESTアプリケーションとセッションでCookieがどのように受け入れられるかを誰かが説明できますか?
session - Java Web アプリケーションでの認証にサーバー側セッションを使用しないようにするにはどうすればよいですか?
Web アプリケーションのリソースへのアクセスを保護したいので、標準のメカニズムを使用してユーザーを認証し、サーバー側のセッションを使用して認証済みの状態を維持します。
負荷分散された構成で複数のシステムに展開したいのですが、インフラストラクチャ全体でセッション状態の同期を開始したくありません。必要な状態をクライアントにプッシュするなど、サーバー側セッションなしでユーザーの認証状態を保持する方法 (Java EE の仕様駆動型機能または Spring Security などの一般的に利用可能なライブラリのいずれかを使用) はありますか? もしそうなら、私が認識する必要がある追加のリスクはありますか?
更新 - Java EE webapp 仕様に従って宣言型セキュリティを使用し、LDAP リポジトリを介して認証しています。
oop - ステートレスオブジェクト指向プログラミングと関数型プログラミング?
最近、関数型プログラミングへの注目が高まっている主な理由の1つは、マルチスレッド/処理の台頭と、スケーラビリティを簡単にするための副作用のないステートレス計算にFPが焦点を当てていることの利点です。
ただし、確かに、オブジェクト指向プログラミングでは、すべてのオブジェクトが状態を変化させることのないステートレスパラダイムに移行することもできます。これは慣例である場合もあれば、言語によって暗黙的にサポートされている場合もあります。たとえば、オブジェクトフィールドとメソッド間の均一なアクセスを強制する言語では、セッターメソッドを許可しないだけでこれを実現できます。
私の質問は、オブジェクト指向はステートレスを利用でき、オブジェクトについてはステートフル性を要求しないので、OOPは事実上FPのスーパーセットですか?マルチスレッドをOOPよりも実用的にするFPの追加の利点/機能はありますか?
java - 設計: 春のステートレス プロトタイプ
Service、DAO、または Controller オブジェクトの Spring Bean を Singleton として作成することに慣れました。まあ、それは私には自然に思えます。現在、私の同僚は、そのようなオブジェクトをすべてプロトタイプにするのが好きです。
それに対する理由は何ですか?それともプロ?
私が言える唯一のことは、Bean が参照されるたびに新しいインスタンスを作成するオーバーヘッドです。このアプローチは非常に間違っていると思いますが、もっと理由があるはずです。
java - ステートレスWebアプリケーションでの二重送信を防ぐための手法はありますか?
既存のJavaWebアプリケーション(実際にはstruts)に二重送信防止を実装したいと思います。アーキテクチャに関しては、2〜N個の可能なアプリケーションサーバー(tomcat)と1台の単一データベースサーバー(mysql)について話します。個々のサーバーはお互いを認識しておらず、メッセージを交換することはできません。アプリケーションサーバーの前には、スティッキーセッションを実行する機能を持つ単一のロードバランサーがあります。
つまり、基本的にはクライアント側とサーバー側の2種類の二重提出防止があります。可能であれば、サーバー側に移動したいと思います。ブラウザでCookieやJavaScriptを無効にすると、すべてのクライアント側の手法が失敗するように見えるからです。
これにより、データベースロックを介してミューテックスのような同期を行うというアイデアが残ります。ユーザーが入力したデータのチェックサムを計算し、それを専用のデータベーステーブルに保持することは可能かもしれないと思います。提出するたびに、アプリケーションは、指定された提出が重複していることを示す等しいチェックサムの存在をチェックする必要があります。もちろん、このテーブルのチェックサムは定期的にクリアする必要があります。問題は、データベースに重複するチェックサムがすでに存在するかどうかをチェックし、存在しない場合はチェックサムを挿入するプロセス全体が非常に重要なセクションであるということです。したがって、チェックサムテーブルは事前にロックし、セクションの後で再度ロックを解除する必要があります。
テーブルロックについて考えると、デッドロックとボトルネックのアラームベルが鳴り始めます。だから私の質問は:ステートレスなWebアプリケーションでの二重提出を防ぐための賢明な方法はありますか?
ストラットは、Cookieが無効になっていると無残に失敗するため、ここでは適用できないことに注意してくださいTokenInterceptor
(これは、セッションCookieなしでは存在しないHTTPセッションに依存しています)。