web-dev-qa-db-ja.com

ショッピングカートの場合、セッションまたはCookieを使用しますか?

現在のサイトでは、セッションを使用してすべての商品を顧客のショッピングカートに保存しています。もちろん、セッションはそれほど長くは続かないので、訪問者がおそらく数時間、または翌日などに戻ってきた場合、ショッピングカートのアイテムは忘れられます。

クッキーを使用した場合、カートにアイテムを1か月ほど保持できます。そのため、戻ってきた場合は、覚えて再検索する必要なしに、注文したい商品がわかるようになります。

では、Cookieを使用する方が良いのでしょうか。業界標準はありますか、そしてセッションを使用する人々に正当な理由はありますか?セッションを使用してより多くのデータを保存できることはわかっていますが、これは数個の項目の配列にすぎないため、とにかく大量のデータであってはなりません。

4
Source

セッションはサーバーに保存され、Cookieはユーザーのデスクトップに保存されます。

セッションでは、セッションの有効期限が切れた後(通常、最大で30分)、カートの情報を取得する方法はありません。緑のシャツよりも赤いシャツを選ぶのに苦労したポーラの時間の2時間を捨てます。

Cookieのサイズと数は 確かに制限されています であり、カートの半分だけを保存しておくとイライラします。

別の違いは、一部の人々はクッキーを受け入れないということです。セッションソリューションはどこでも機能します。

さらに2つの公平なオプションがあります。

  1. データベース:メールをプッシュできるようにして、彼にアイテムを購入するようにプッシュします。または、ユーザーが任意のデバイスでカートにアクセスしたくない場合。

  2. localstorage:基本的にはcookie 2.0です。ただし、非常に古いブラウザでは機能しません。

特別な必要がない場合は、Cookieまたはローカルストレージが適しています。

7
Foucha

実際には、これらの2つのオプションに限定されません。

最初に、いくつかの混乱を明らかにしましょう。

すべてのセッションには、特定のブラウザをサーバーに格納されているデータのセットと照合するために使用される識別子があります。その識別子は何らかの方法でユーザーのデバイスに保存する必要があります- cookies または trans_sid を使用します。 session.use_trans_sidアプローチは、リソースIDを使用してセッションIDを渡すため、これを処理するための一般的な方法ではありません。ほとんどの場合、セッションはとにかくクッキーを使用します。それはあなたが確信できないことを意味します:

別の違いは、一部の人々はクッキーを受け入れないということです。セッションソリューションはどこでも機能します。

たとえば、PHPはデフォルトでセッションにCookieを使用します。つまり、ユーザーがCookieを無効にしている場合、セッションも機能しない可能性があります。

あなたはセッションの有効期限を制御する方法を持っています-ソーシャルネットワークサイトが何ヶ月もあなたを覚えているかを見てください。セッションの存続期間は、次の2つの部分で構成されます。

  1. ユーザーデバイスがセッションを記憶する期間。つまり、セッションIDを保存し、認証に使用します。そして
  2. サーバーが関連するデータを保存する期間、つまり、対応する訪問中に生成および保存されたデータのセットで提供されるセッションIDと一致させることができる期間

Cookieを使用してセッションIDを保存している場合は、その存続期間を延ばします-あなたが言ったように、1か月ほど。次に、サーバーの自動クリーンアッププロセスを設定して、その月ほどセッションを維持します。

URLでIDを渡す場合、ユーザーがそのURLを持っている限り、IDは保存されますが、サーバーの構成もそれに応じて調整する必要があります。

上記のように、セッションが期限切れになったり失われたりした場合(ユーザーがCookieを消去したり、ブラウザを再インストールしたり、別のデバイスからログオンしたりした場合)、カートを実際のユーザーアカウントまたは電子メールに関連付けることをお勧めします。お客様のメールアドレスまたはユーザー名を使用していつでも再起動し、データをプリロードできます。

Cookieのもう1つのポイントは、ユーザーのコンテンツをユーザーが表示できることです。追跡情報をそこに保存すると、ユーザーによって表示または変更される可能性があります。

どちらにしても、質問はStackoverflowに属しているように感じます

1
aexl