Path属性【Path attribute】
概要

Cookieにはいくつかの属性を付与でき、ブラウザはそれらの条件に合致したリクエストにのみCookieを添付して送信する。Path属性はその一つで、ブラウザはリクエスト先のパスがPath属性で指定した文字列から始まるかどうかを基準に、送信の可否を判断する。
例えば、「Path=/shop」と設定されたCookieは、「/shop/cart」や「/shop/item/123」などへのリクエスト時には送信されるが、同じサーバ上のURLでも「/blog」や「/about」へのリクエストには添付されない。
Path属性に「/」を指定すると、同一ドメイン内のすべてのパスが対象となる。ログイン状態や設定情報など、サイト全体で共有するCookieにはこの値が広く使われる。一方、Path属性を省略した場合は、そのCookieを発行したURLのディレクトリが自動的に基準となる。例えば、「https://example.jp/shop/item.html」からCookieを発行した場合、既定のPath属性は「/shop/」となり、「/news/」など別のパスへのリクエストには送信されない。
Path属性を用いてCookieの送信範囲を絞ることで、同一ドメインで複数のサービスを運営する際に、あるサービス向けのCookieが別サービスへのリクエストに混入することを防げる。また、不要なCookieの送信を抑えることで、通信量をわずかに削減する効果もある。なお、この属性はあくまで送信対象のパスを制御するものであり、Cookieの保存期間や暗号化の有無には影響しない。
なお、Path属性は単体ではセキュリティ機構としてあまり強固ではないことが知られている。同一オリジン(同じサーバの同じポート)内のページはJavaScriptを通じて他のパスのCookieにアクセスできる場合があるため、機密性を確保したい場合はHttpOnly属性やSecure属性など他の属性と組み合わせて利用する必要がある。