セッションIDはサーバー側またはクライアント側で生成されますか?
-
04-07-2019 - |
質問
このWebページ http://www.w3schools.com/ASP/prop_sessionid.asp は、ServerSideでセッションIDが生成されることを示しています。
この場合、サーバーは2番目の要求応答サイクルでまだ同じクライアントであることをどのように認識するのでしょうか?
確かにSessionIdはClientSideで生成されるため、クライアントは確実に同じ値をサーバーに渡すことができますか?
解決
SessionIDはサーバー側で生成されますが、Cookie内のクライアントに保存されます。その後、クライアントがサーバーに要求を行うたびに、SessionIDがクライアントの既存のセッションの認証に使用されます。
他のヒント
セッションIDは通常、サーバーで生成されます。次に、HTTPヘッダーのCookieとして、またはHTMLに含めることで、クライアントに送信されます。つまり、リンクはhref = my.html?sessionid = 1234になります。
クライアントの次のリクエストには、CookieまたはリクエストのGET部分にセッションIDが含まれます。
存在しない場合、サーバーはセッションIDを生成します。しかし、生成されると、クライアントはそのIDをサーバーに戻すことができます。クライアントがそのIDを変更すると、サーバーからエラーが発生し、新しいIDが生成される可能性があります。
IDはサーバーで生成されます。その後、クライアントはこれをセッションCookieに保存し、その後のリクエストでサーバーが取得します。
サーバーがCookieなしモードで実行されている場合、セッションキーはURLの一部となり、サーバーはそこから解析します。
ADDED:...サーバーがセッションCookieを使用することを期待しているが、クライアントのCookieが無効になっている場合、サーバーの観点からは、これは同じユーザーであることを認識できないため、すべての要求は新しいセッションです。