RESTクライアントは通常、ブラウザでPHPセッションIDクッキーのように動作するたびに認証パラメータを送信します。しかし、RESTクライアントはブラウザではないので、サーバー側のコードではなぜ認証パラメータを使用せずに使用するのですか?セッションを使用してREST APIを実装するのは良いですか?
session_id($_GET('authentication_code'));
それは良い方法ですか?
RESTクライアントは通常、ブラウザでPHPセッションIDクッキーのように動作するたびに認証パラメータを送信します。しかし、RESTクライアントはブラウザではないので、サーバー側のコードではなぜ認証パラメータを使用せずに使用するのですか?セッションを使用してREST APIを実装するのは良いですか?
session_id($_GET('authentication_code'));
それは良い方法ですか?
答えはいいえ。 S REST
はstateless
のため、サーバーに何も保存することはできません。
RESTはRepresentational State Transferの略です.SはステートレスではなくStateを表します。答えはNoですが、あなたが言う理由ではありません。 –
@StuartGrimshaw真実ですが、毎回状態を転送するので、Sは文字通り 'ステートレス'を意味しませんが、それを表現します。あなたはもちろん、非常に正しいです。 –
@TomvanderWoerdt 'stateless'は非常に誤解を招きます。私はジュニアデベロッパーがこの答えを読んで、会合やインタビューでこの小さなナンセンスを広げていると想像しています。私はあなたの考えを理解していますが、この方法ではしないでください;) – ducin
RESTは6 constraintsになっています。クライアントとサーバー間の通信にはステートレスでなければならず、要求を完了するために必要なすべての情報が含まれている必要があります。サーバー上で
しかし、サーバはクライアントの認証コードをサーバに格納できる理由はありますが、クライアントが要求ごとにそのコードを渡すのはクライアント自身であり、サーバは認証を保存するセッションを使用できませんコード。
少なくとも、内容を確認して処理する必要があると思います –
PHPセッションの使用は、「ステートレス」[制約](http://en.wikipedia.org/wiki/Representational_state_transfer#Constraints)に準拠していません。 RESTについての短い答えは「いいえ」と言います。 – DaveRandom
"冪等人"が何を意味するかを調べる。 RESTサービスは、その単語を使用して記述する必要があります。 – duffymo