PHPのSessionsとCookiesの違いは何ですか?
Cookieは、ブラウザによって保存され、リクエストごとにサーバーに送信されるデータのビットです。
セッションは、サーバーに保存され、特定のユーザーに関連付けられたデータのコレクションです(通常、IDコードを含むCookieを介して)
Cookiesは、セッションを識別するために使用されます。 Cookieを使用しているサイトにアクセスし、Chrome inspect要素をプルアップしてから、Firefoxを使用している場合はネットワークまたはFireBugをプルアップします。
サーバーに送信され、Cookieと呼ばれるヘッダーもあることがわかります。通常、これにはサーバー上でセッションを識別するために使用できる個人情報(IDなど)が含まれています。これらのCookieはコンピューターに残り、ブラウザーは、Cookieで識別されるドメインにのみ送信します。
Cookieがない場合は、GETまたはPOSTを介して、すべてのリクエストで一意のIDを送信します。 Cookieは静的IDのようなもので、しばらくの間コンピューターに残ります。
sessionは、Cookie情報に関連付けられているサーバー上の情報のグループです。 PHPを使用している場合、session.save_pathの場所を確認し、実際に「セッションを見る」ことができます。これらは、サーバーファイルシステム上のファイルか、データベースにバックアップされています。
セッションは、HTTPリクエスト間の状態を維持するサーバーで維持されるデータの塊です。 HTTPは基本的にステートレスプロトコルです。セッションは、ステートフルネスを与えるために使用されます。
Cookieは、クライアントとの間で送受信されるデータのスニペットです。 Cookieは、どのクライアントがどのセッションを処理したかをサーバーに伝えるため、facilitateセッションによく使用されます。これを行う他の方法(クエリ文字列のマジックなど)がありますが、これはおそらくCookieが最も一般的です。
セッションとCookieの主な違いは、セッションデータはサーバーに保存されるのに対して、Cookieは訪問者のブラウザーにデータを保存することです。
セッションは、サーバーに保存されるため、Cookieよりも安全です。ブラウザからCookieをオフにすることができます。
Cookieに保存されたデータは、Cookieの寿命に応じて、数か月または数年保存できます。ただし、Webブラウザーを閉じると、セッションのデータは失われます。
Cookiesはブラウザにテキストファイル形式で保存されます。最大で4kb [4096bytes]までの限られた量のデータを保存します。単一のCookieは複数の値を保持できませんが、はい複数のCookieを持つことができます。
Cookieは簡単にアクセスできるため、安全性が低いです。 setcookie()関数はタグの前である必要があります。
セッションはサーバー側に保存されます。セッションにはそのような保存制限はありません。セッションは複数の変数を保持できます。セッションには簡単にアクセスできないため、Cookieよりも安全です。
Cookie:Cookieは、ユーザーを識別するためによく使用されます。 Cookieは、サーバーがユーザーのコンピューターに埋め込む小さなファイルです。同じコンピューターがブラウザーでページを要求するたびに、Cookieも送信します。
セッション:セッションは、ユーザーセッションに関する情報を保存したり、ユーザーセッションの設定を変更したりするために使用されます。セッション変数は、単一のユーザーに関する情報を保持し、1つのアプリケーションのすべてのページで使用できます。
セッションは、サーバーとユーザー間の対話を維持するために使用されます。サーバーに保存されているため、より安全です。簡単にアクセスできません。ユーザーのコンピューターにCookieを埋め込みます。無制限のデータを保存します。
Cookieはローカルコンピューターに保存されます。基本的に、ユーザーIDを維持します。つまり、訪問者の記録を追跡します。セッションよりも安全性が低くなります。限られた量のデータを保存し、限られた時間維持されます。
これらすべての説明で欠けている部分の1つは、CookieとセッションIDによるCookieのリンク方法です。 Cookieは、クライアントとサーバー間を行き来します。サーバーは、CookieのセッションID部分によってユーザー(およびそのセッション)をリンクします。 Cookieがクライアントによって無効になっている場合、SessionIDをURL経由で送信することもできます(ベストプラクティスではありません)。
これは正しかったですか?