web-dev-qa-db-ja.com

PHPのセッションとCookieの違いは何ですか?

PHPのSessionsCookiesの違いは何ですか?

61
Harsh

Cookieは、ブラウザによって保存され、リクエストごとにサーバーに送信されるデータのビットです。

セッションは、サーバーに保存され、特定のユーザーに関連付けられたデータのコレクションです(通常、IDコードを含むCookieを介して)

88
Quentin

Cookiesは、セッションを識別するために使用されます。 Cookieを使用しているサイトにアクセスし、Chrome inspect要素をプルアップしてから、Firefoxを使用している場合はネットワークまたはFireBugをプルアップします。

サーバーに送信され、Cookieと呼ばれるヘッダーもあることがわかります。通常、これにはサーバー上でセッションを識別するために使用できる個人情報(IDなど)が含まれています。これらのCookieはコンピューターに残り、ブラウザーは、Cookieで識別されるドメインにのみ送信します。

Cookieがない場合は、GETまたはPOSTを介して、すべてのリクエストで一意のIDを送信します。 Cookieは静的IDのようなもので、しばらくの間コンピューターに残ります。

sessionは、Cookie情報に関連付けられているサーバー上の情報のグループです。 PHPを使用している場合、session.save_pathの場所を確認し、実際に「セッションを見る」ことができます。これらは、サーバーファイルシステム上のファイルか、データベースにバックアップされています。

Screenshot of a Cookie

50
toomasr

セッションは、HTTPリクエスト間の状態を維持するサーバーで維持されるデータの塊です。 HTTPは基本的にステートレスプロトコルです。セッションは、ステートフルネスを与えるために使用されます。

Cookieは、クライアントとの間で送受信されるデータのスニペットです。 Cookieは、どのクライアントがどのセッションを処理したかをサーバーに伝えるため、facilitateセッションによく使用されます。これを行う他の方法(クエリ文字列のマジックなど)がありますが、これはおそらくCookieが最も一般的です。

12
seand

セッションとCookieの主な違いは、セッションデータはサーバーに保存されるのに対して、Cookieは訪問者のブラウザーにデータを保存することです。

セッションは、サーバーに保存されるため、Cookieよりも安全です。ブラウザからCookieをオフにすることができます。

Cookieに保存されたデータは、Cookieの寿命に応じて、数か月または数年保存できます。ただし、Webブラウザーを閉じると、セッションのデータは失われます。

11
Armin John

Cookiesはブラウザにテキストファイル形式で保存されます。最大で4kb [4096bytes]までの限られた量のデータを保存します。単一のCookieは複数の値を保持できませんが、はい複数のCookieを持つことができます。

Cookieは簡単にアクセスできるため、安全性が低いです。 setcookie()関数はタグの前である必要があります。

セッションはサーバー側に保存されます。セッションにはそのような保存制限はありません。セッションは複数の変数を保持できます。セッションには簡単にアクセスできないため、Cookieよりも安全です。

5
Elangovan

Cookie:Cookieは、ユーザーを識別するためによく使用されます。 Cookieは、サーバーがユーザーのコンピューターに埋め込む小さなファイルです。同じコンピューターがブラウザーでページを要求するたびに、Cookieも送信します。

セッション:セッションは、ユーザーセッションに関する情報を保存したり、ユーザーセッションの設定を変更したりするために使用されます。セッション変数は、単一のユーザーに関する情報を保持し、1つのアプリケーションのすべてのページで使用できます。

1
Gaurank Verma

セッション

セッションは、サーバーとユーザー間の対話を維持するために使用されます。サーバーに保存されているため、より安全です。簡単にアクセスできません。ユーザーのコンピューターにCookieを埋め込みます。無制限のデータを保存します。

クッキー

Cookieはローカルコンピューターに保存されます。基本的に、ユーザーIDを維持します。つまり、訪問者の記録を追跡します。セッションよりも安全性が低くなります。限られた量のデータを保存し、限られた時間維持されます。

1
user7166162

これらすべての説明で欠けている部分の1つは、CookieとセッションIDによるCookieのリンク方法です。 Cookieは、クライアントとサーバー間を行き来します。サーバーは、CookieのセッションID部分によってユーザー(およびそのセッション)をリンクします。 Cookieがクライアントによって無効になっている場合、SessionIDをURL経由で送信することもできます(ベストプラクティスではありません)。

これは正しかったですか?

1
Sam-T