2017-09-28 18 views
1

私はRESTはこの処理をどのように処理しますか?

RESTより良い(おそらくないだけに:))理解しようとしているので、クライアントとサーバーの間のこの相互作用をするとします。

client send login to SO. 
client sends create SO thread with a question regarding REST architecture. 

2つの操作間の状態は明らかにあります。つまり、ログインする前に投稿することはできません。

RESTはこれをどのように処理しますか?それでは、どのようそれは、その後、実際に働くだろう制服を使用してステートレスオペレーションの事前定義された一連

:私を混乱させる何

は、RESTはステートレスであると仮定されてeverywhereと言うことでしょうか?

P.S.ここで

は別の例です:

client send question to SO 
client send comment to the question from op 1. 

あなたが最初にそれにコメントをする前に質問を持っている必要がありますので、1と2の間の状態があります。

+0

サービスは、後続の呼び出しで使用できる結果を返すことができます。状態は呼び出し側によって維持されます。 –

+0

これは操作1と2の間の状態です。 –

答えて

1

RESTがステートレスであると言われるとき、それはそれに先行するapi呼び出しに応じてapi呼び出しの結果が変わらないことを意味します。 api呼び出しを介して状態を保持するとキャッシングが制限されるため、RESTfulとはみなされません。

つまり、それぞれのリクエストごとに認証トークン(または応答を変更する可能性のあるその他の情報)を送信することになっています。

+0

私の質問は残っています。呼び出しの間に状態がない場合、どのようにして2番目の呼び出しを行うことができますか?明らかに、ログインする前に投稿することはできません。 –

+0

要点は、ユーザーセッションとリクエストに固有の情報を保存しないことです。クライアントは、GETパラメータまたは要求ヘッダーを使用してすべての情報を提供することになっています。 – hspandher

+1

認証トークン(または情報)は、非常にそれぞれの要求と共に送信されるはずです。 – hspandher

0

ステートレスは、クライアントセッションがサーバー側に格納されないことを意味します。 セッション情報をクライアント側に保存できるため、サーバーに依存せず、すべてのクライアントがサーバー側の任意のサービスを呼び出すことができます。だから毎回クライアントの状態が必要ですが、毎回通過する必要があります。
ここで、サーバー上の各リクエストは独立したリクエストになります。

関連する問題