ホームページ  >  記事  >  バックエンド開発  >  SESSIONに関するいくつかの質問

SESSIONに関するいくつかの質問

WBOY
WBOYオリジナル
2016-06-23 13:46:03838ブラウズ

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 分を超えません。不親切な?


すべてのセッション ストレージではありません

サービスを使用する必要があり、バックグラウンドは他の言語で実装されており、メモリ キャッシュがあり、最終的な実装はデータベースにあります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。