SESSIONとCookieの違いがよく分かってなかったので、調べてまとめてみた。
Contents
SESSIONとCookieの違い
SESSIONとCookieの違いを解説していく。
結論を簡単に言ってしまうと、下記のようになる。

SESSION、Cookieともデータを一時的に保有しておくという点では同じ役割を持つ。
サーバ側で保有するのかブラウザ側で保存するのかという違いがある。
SESSIONとは
サーバ側で保有する、一時的なデータ保存の仕組みのこと。
ログイン情報など、ユーザーと紐づく情報をサーバー側に一定期間保存しておくことができる。
サーバ側にデータを保存するため、Cookieよりもセキュリティ面で優れている。

Cookieとは
ブラウザ側で保有する、一時的なデータ保存の仕組みのこと。
よくオンラインショッピングなどで、一定期間の間、ログイン中のユーザのショッピングカートの中身が保存された状態になっているのは、Cookieが働いているためである。

SESSIONについて詳しく
両者の違いがざっくりと理解できたところで、詳しく両者を解説していく。
まずはSESSIONの解説から。
SESSIONとは、詳細
セッションとは、webサイトにアクセスしてから出ていくまでの一連の行動のこと。
ブラウザ自体が閉じられても一セッション。
SESSIONが使われる例
一番代表的なのはログイン機能。
ユーザIDやパスワード情報をサーバ側にSESSIONとして保存しておくことで、
複数ページにわたるwebサービスでも同じ値を使い回すことができる

なぜSESSIONが必要なのか
通常、HTTPプロトコルでは、情報の保持ができない。
GETやPOSTで情報を送ることしかできない。
しかし、同じユーザとしてずっとログインできるのはこのセッションがあるからだ。
ちなみに筆者は開発現場でSESSIONを知らず、毎回パスワードやユーザIDをPOSTするよう実装しようとしてご指摘を受けた過去がある。
PHPでのSESSIONは、$_SESSION変数で扱う
抽象的なことしか言ってないが、実際にPHPでSESSIONを扱う方法は以下
session_start();
$_SESSION['キー名'] = バリュー;
session_start();は、セッションを使うお決まりの文句。
セッションを使うプログラムソースなら必ず書く。
んで、スーパグローバル変数$_SESSIONにキーと値を代入すればOK。
Cookieについて詳しく
次にCookieの解説。
Cookieとは、詳細
クッキーとは、ブラウザに保存される一時的なデータのことだ。
セッションと違い、ブラウザを閉じても大丈夫。
クッキーで設定された時間内であればずっとブラウザに情報は残り続ける。
Cookieが使われる例
同じくログイン機能と合わせて使われることが多いと思う。
例えばログイン機能があるwebサービス。
最初はログインするけど、その後頻繁にアクセスしている場合は、毎回ユーザIDとパスワード入れずとも、自動でログインされてしまうはずだ。これはブラウザに保存されているあなたのユーザIDとパスワードなどの情報(Cookie)がプログラムで自動的に読み取られ、勝手にプログラム側でログイン処理をしてくれているからだ。
久しぶりにアクセスしたwebサイトでログインを求められるのはよくあることだが、これはブラウザがCookie情報を時間切れで失っているからだ。
プログラムからブラウザにクッキーをセットさせる方法は、以下の関数で完結。
setcookie(クッキー名, 値, 保存期間, [以下オプションは省略]);
上記の関数でブラウザにクッキー情報を保存させることができる
phpでのCookieの取得方法 ($_COOKIE)
プログラムからブラウザのクッキー情報を取得する方法は、以下。
$_COOKIE['クッキー名']
スーパグローバル変数$_COOKIEに、setcookie()関数でセットしたクッキー名を、キーに指定してあげれば、値が取得可能。
以上が大体の理解
多分ここまで理解できればググりつつならphpでSESSIONもCookieも使えると思う。
大事な機能なので、自分も忘れないようにしたい。
SESSION = サーバー側で保有する、一時的なデータ保存の仕組み
Cookie = ブラウザ側で保有する、一時的なデータ保存の仕組み