違いは何であるlocal.test.com
とは.local.test.com
?スクリーンショットはChromeのものです。
違いは何であるlocal.test.com
とは.local.test.com
?スクリーンショットはChromeのものです。
回答:
local.test.com
ドメインに使用されますが、.local.test.com
サブドメインにも使用されます。
local.test.com
には適用されませんがx.local.test.com
、との.local.test.com
両方に適用さlocal.test.com
れx.local.test.com
ますか?
先頭のドットは、Cookieがサブドメインにも有効であることを意味します。それにもかかわらず、最近のHTTP仕様(RFC 6265)はこのルールを変更したため、最近のブラウザーは先頭のドットを気にする必要はありません。ドットは、非推奨のRFC2109を実装している古いブラウザで必要になる場合があります。
たとえば、Domain属性の値が「example.com」の場合、ユーザーエージェントはexample.com、www.example.com、およびwww.corp.exampleにHTTPリクエストを送信するときにCookieヘッダーにCookieを含めます。 com。(先頭の%x2E( "。")が存在する場合、その文字は許可されていなくても無視されますが、末尾の%x2E( "。")が存在する場合、ユーザーエージェントは属性を無視することに注意してください。 )
記事からCookieドメインの決定的なガイドとwwwプレフィックスがあなたのウェブサイトをより安全にする理由:
結論
定義は多少異なりますが、次のようにこれらの実装のいずれかについて単純化できます。
その他の価値のある観察:
Cookieにドメインが設定されていない場合、Cookieはリクエストの正確なホスト名とのみ一致する必要があります。[注:これは、ドットのないドメインでSet-Cookieを返すこととは異なります!]サブドメインや部分一致はありません。これは、単にドメイン属性を含めないことを意味します–空のドメイン属性を設定することは無効です。残念ながら、Internet Explorerは、これをサブドメインとともにホスト名として扱っているようです。
Cookieにドメインを設定する場合、安全な選択は、.erik.ioのようにドメインの前にドットを付けることです。Cookieはすべてのサブドメインと一致します。
erik.ioのように、前にドットを付けずにCookieドメインを設定することは、RFC 2109実装では無効であり、他の実装で前にドットを付ける場合と同じ動作を生成します。サブドメインが含まれていない限り、Cookieを特定の明示的に設定されたドメインに制限する方法はありません。
すべてのRFCで、指定されたCookieドメインは、通常の一致に従って、現在のホスト名と一致する必要があります。ドメインwww.erik.ioのCookieはerik.ioと一致しないため、erik.ioからの応答でwww.erik.ioのCookieを設定することは無効であり、前者の方が具体的です。
RFC 6265では、Set-Cookieヘッダーを解析するときに、ドメインは明示的に小文字になります。
「.local.test.com」の先頭のドットは、「Domain = local.test.com」(または同じ「Domain = .local.test.com」)が設定されたCookieをChromeがどのように表示するかを示しています。
「Domain = something」のないSet-Cookie定義は、先頭のドットなしでドメイン(= host)を表示します。
したがって、クロムの先頭のドットは、先頭のドットがサーバーから使用されたかどうかではなく、そのCookieの定義にサーバーからの「Domain = something」が含まれていたかどうかを反映していません。(もしあれば、Cookieはサブドメインにも送信されます)。
少なくともこれは私のテストが示していることです。Chromeはこれを読みやすくする必要があります。たとえば、Cookieを定義した正確な文字列とCookieがいつ受信されたかを表示します。