HTTPプロトコルはステートレスです。セッションは、HTTPリクエスト全体でクライアントの状態を保持する方法です。プラットフォームの組み込みセッション処理でそれを行うか、クエリ文字列パラメーターを使用して自分で行うかを選択できます。いずれにせよ、セッションの概念は多くのタスクに必要です。
あなたの同僚は、おそらく特定の実装を嫌うか、意図した目的のためにセッションを使用していません。HTTP要求間で特定のクライアント接続に関する情報を保持する必要がある場合は、何らかの形式のセッション永続性が必要です。
次の問題は実装固有です。
セッション変数の型指定されていない性質
セッション変数のグローバルスコープの性質
セッションを失う負荷分散サーバー
アプリケーションプール/サーバーの再起動
たとえば、私はほとんどの場合PHPで作業し、セッション情報をリレーショナルデータベースに保存します。したがって、セッション変数が入力されます。負荷分散とサーバーの再起動は、セッションの問題を引き起こしません。
これはもっと面白いです:
セッションのタイムアウトにより状態が失われる
セッションは、ほとんどの場合クッキーを介して保存されます。これらは、クライアントがいつでも削除できます。ただし、クエリ文字列パラメーターを介して保存することもできるため、クライアントでタイムアウトすることはありません。サーバーのタイムアウトはあなた次第です。したがって、この問題でさえも実装に固有です。
特定の実装が好きではないからといって、セッションの概念全体を捨てないでください。優れたWebアプリケーションフレームワークは、セッションを適切に使用してユーザーログインを保持したり、ユーザーの現在の訪問に固有のその他のものを保持したりするのに役立ちます。ユーザーのデータベースレコードは、ログイン時にユーザー固有の情報を保存するために使用できます(また、使用する必要があります)。ただし、匿名の訪問者は、最近のページの短いリストや既に見た通知を非表示にします。一般に、セッションストレージには適切な一時情報のみが適切です。
using things like query string parameters instead
-この1つのケースでは、可能であれば常にクエリ文字列パラメーターを使用します。そのタイプのパラメーターにセッションを使用すると壊れやすく、ユーザーが複数のタブを開いているときに奇妙なバグが発生する可能性があります。