SESSION はサーバー上に配置され、ユーザーは SESSIONID に基づいてアクセスします。セッションが終了すると、SESSIONID は失われます。 。当然のことながら、ユーザーは元の SESSION ファイルを見つけることができません。
----------------------------------------------- -------------------------------------------------- - ------------------------
それでは、質問があります。 。 SESSION を使用して、淘宝網や JD.com のようなショッピング カート システムをどのように実装できますか?
1. SESSIONを使用すると、ブラウザを閉じるとデータが見つからないため、2回目を見るとショッピングカートが空になるのではありませんか?
2. COOKIE を使用してクライアントに保存すると、コンピューターを変更してもショッピング カートは空になりますか?
3. それがデータベースに配置され、すべてのユーザーがアクセスするたびにデータベース クエリが呼び出される場合、サーバーの負荷が大きすぎませんか?
4. サーバー上の SESSION のデフォルトの保存時間は 1440 秒です。私の理解が正しければ、ブラウザを閉じると SESSION ファイルが見つからず、2 番目のファイルを呼び出すことができないため、この時間は役に立ちません。時間を 5 分に設定するとよいでしょうか。
----------------------------------------------- -------------------------------------------------- - -----------------------------
私は PHP を初めて使用するため、SESSION について正しく理解していない可能性があります。たくさんのアドバイスをいただければ幸いです。
1、2、3 はすべてデータベースを使用しており、ユーザー ID をインデックスとして設定するのは非常に高速であり、サーバーではありません。お話によると、ログインするたびにデータベースを確認する必要があり、非常にストレスがかかるのでは? !
4. 先ほどの 1440 秒は、ユーザーが 1 つのページに滞在する時間です。この時間が経過すると、他のページにセッション情報は表示されなくなります。ブラウザを閉じた後のショッピング カートがどうなるかわかりません。データがまだ存在する場合、そのデータはユーザー名を一意の識別子としてデータベースに保存されます。サーバーに大きな負荷がかかりますが、ファイルに保存すると負荷がかからないのはどうですか?
セッションの 1440 秒は、セッションの最小保持時間を指します。つまり、最後のアクセスから 1440 秒後にのみ削除できます。なぜ 1440 秒で、これは統計的な量なのでしょうか。操作中に一時的に何かをした場合 (喫煙、飲酒、電話に出るなど)、5 分間の一時停止後に再度ログインする必要がある場合でも、通常は 24 分を超えません。不親切な?
すべてのセッション ストレージではありません
サービスを使用する必要があり、バックグラウンドは他の言語で実装されており、メモリ キャッシュがあり、最終的な実装はデータベースにあります