免責事項:私はRESTの考え方に慣れていないので、RESTスクールに集中しようとしています。
したがって、私はこのページ、「一般的なRESTの間違い」を読んでおり、関連性のないセッションのセクションに完全に困惑していることがわかりました。これはページが言うことです:
クライアントが「ログイン」または「接続を開始」する必要はないはずです。HTTP認証はすべてのメッセージで自動的に行われます。クライアントアプリケーションは、サービスではなくリソースのコンシューマです。したがって、ログインする必要はありません。REST Webサービスでフライトを予約しているとしましょう。サービスへの新しい「セッション」接続を作成しません。むしろ、「旅程作成者オブジェクト」に新しい旅程を作成するように依頼します。空白を埋め始めることができますが、その後、Webの他の場所にまったく異なるコンポーネントを取得して、他の空白を埋めることができます。セッションがないため、クライアント間でセッション状態を移行する問題はありません。「セッションアフィニティ」の問題もありません
さて、HTTP認証はすべてのメッセージで自動的に行われることになりますが、どうやって?ユーザー名/パスワードはすべてのリクエストで送信されますか?それだけで攻撃の表面積が増えるのではないですか?パズルの一部が欠けているような気がします。
たとえば、/session
GETリクエストを受け入れ、リクエストの一部としてユーザー名/パスワードを渡し、認証が成功した場合にセッショントークンを返すRESTサービスがあると悪いでしょう。後続のリクエストと一緒に渡されましたか?それはRESTの観点からは理にかなっていますか、それともポイントが不足していますか?