RESTful APIでのセッションの使用は本当にRESTfulnessに違反していますか?私は多くの意見がどちらの方向にも進んでいるのを見てきましたが、セッションがRESTなしであるとは思いません。私の視点から:
- 認証はRESTfulnessで禁止されていません(そうでなければRESTfulサービスではほとんど使用されません)
- 認証は、リクエストで認証トークンを送信することで行われ、通常はヘッダー
- この認証トークンは何らかの方法で取得する必要があり、取り消すことができます。その場合、更新する必要があります
- 認証トークンはサーバーによって検証される必要があります(そうでなければ、認証ではありません)
では、セッションはこれにどのように違反しますか?
- クライアント側、セッションはcookieを使用して実現されます
- Cookieは単なる追加のHTTPヘッダーです
- セッションCookieはいつでも取得して取り消すことができます
- セッションCookieは、必要に応じて無限の寿命を持つことができます
- セッションID(認証トークン)はサーバー側で検証されます
そのため、クライアントにとって、セッションCookieは、他の独自のヘッダーのCookie
代わりにヘッダーを使用することを除いて、他のHTTPヘッダーベースの認証メカニズムとまったく同じAuthorization
です。サーバー側のCookie値にセッションがアタッチされていない場合、なぜ違いが生じるのでしょうか?サーバーが RESTfulに動作する限り、サーバー側の実装はクライアントに関係する必要はありません。そのため、Cookie自体はAPIをRESTlessにすべきではなく、セッションは単にクライアントへのCookieです。
私の仮定は間違っていますか?セッションCookieをRESTレスにするものは何ですか?