現在のサイトでは、セッションを使用してすべての商品を顧客のショッピングカートに保存しています。もちろん、セッションはそれほど長くは続かないので、訪問者がおそらく数時間、または翌日などに戻ってきた場合、ショッピングカートのアイテムは忘れられます。
クッキーを使用した場合、カートにアイテムを1か月ほど保持できます。そのため、戻ってきた場合は、覚えて再検索する必要なしに、注文したい商品がわかるようになります。
では、Cookieを使用する方が良いのでしょうか。業界標準はありますか、そしてセッションを使用する人々に正当な理由はありますか?セッションを使用してより多くのデータを保存できることはわかっていますが、これは数個の項目の配列にすぎないため、とにかく大量のデータであってはなりません。
セッションはサーバーに保存され、Cookieはユーザーのデスクトップに保存されます。
セッションでは、セッションの有効期限が切れた後(通常、最大で30分)、カートの情報を取得する方法はありません。緑のシャツよりも赤いシャツを選ぶのに苦労したポーラの時間の2時間を捨てます。
Cookieのサイズと数は 確かに制限されています であり、カートの半分だけを保存しておくとイライラします。
別の違いは、一部の人々はクッキーを受け入れないということです。セッションソリューションはどこでも機能します。
さらに2つの公平なオプションがあります。
データベース:メールをプッシュできるようにして、彼にアイテムを購入するようにプッシュします。または、ユーザーが任意のデバイスでカートにアクセスしたくない場合。
localstorage:基本的にはcookie 2.0です。ただし、非常に古いブラウザでは機能しません。
特別な必要がない場合は、Cookieまたはローカルストレージが適しています。
実際には、これらの2つのオプションに限定されません。
最初に、いくつかの混乱を明らかにしましょう。
すべてのセッションには、特定のブラウザをサーバーに格納されているデータのセットと照合するために使用される識別子があります。その識別子は何らかの方法でユーザーのデバイスに保存する必要があります- cookies または trans_sid を使用します。 session.use_trans_sid
アプローチは、リソースIDを使用してセッションIDを渡すため、これを処理するための一般的な方法ではありません。ほとんどの場合、セッションはとにかくクッキーを使用します。それはあなたが確信できないことを意味します:
別の違いは、一部の人々はクッキーを受け入れないということです。セッションソリューションはどこでも機能します。
たとえば、PHPはデフォルトでセッションにCookieを使用します。つまり、ユーザーがCookieを無効にしている場合、セッションも機能しない可能性があります。
あなたはセッションの有効期限を制御する方法を持っています-ソーシャルネットワークサイトが何ヶ月もあなたを覚えているかを見てください。セッションの存続期間は、次の2つの部分で構成されます。
Cookieを使用してセッションIDを保存している場合は、その存続期間を延ばします-あなたが言ったように、1か月ほど。次に、サーバーの自動クリーンアッププロセスを設定して、その月ほどセッションを維持します。
URLでIDを渡す場合、ユーザーがそのURLを持っている限り、IDは保存されますが、サーバーの構成もそれに応じて調整する必要があります。
上記のように、セッションが期限切れになったり失われたりした場合(ユーザーがCookieを消去したり、ブラウザを再インストールしたり、別のデバイスからログオンしたりした場合)、カートを実際のユーザーアカウントまたは電子メールに関連付けることをお勧めします。お客様のメールアドレスまたはユーザー名を使用していつでも再起動し、データをプリロードできます。
Cookieのもう1つのポイントは、ユーザーのコンテンツをユーザーが表示できることです。追跡情報をそこに保存すると、ユーザーによって表示または変更される可能性があります。
どちらにしても、質問はStackoverflowに属しているように感じます