コンテンツで使うため、jsを使って「c01.webserver.ne.jp」(仮名)に「datafile = 500」というcookieを保存していたのですが、他のサブドメインでもこのcookieを使うことになり、「webserver.ne.jp」にも「datafile = 500」というcookieを保存しました。
ここで、どうなるのかなと試しに「c01.webserver.ne.jp」に「datafile = 100」、「webserver.ne.jp」に「datafile = 500」という違う数値を設定して表示してみたところ「c01.webserver.ne.jp」では「datafile = 500」と表示されました。
プログラムの標準的な考え方では「datafile = 100」になると思ったのですが…
domain属性の優先度(どちらが強いか)はどういう仕様になっているのでしょうか?資料(できれば日本語…)があればURLなど教えてください。
・書いたサーバ名は仮名ですが、頭のアルファベットはテスト時と同じです。cとw。
・心配しているのは例えばサーバが「w01.center.ne.jp」「center.ne.jp」だった場合はこの結果が逆になってしまうのかということです。無ければいいのですが。
また500文字制限に引っかかった…長々書きすぎですかそうですね。
・「c01.webserver.ne.jp」と「webserver.ne.jp」なのでアルファベット後順?それとも後方一致で短いほうとか?
・pathのほうは「/html/」よりも「/html/file/」のほうが強いのに、なぜdomain属性は逆なのか。(ぶれすぎじゃないですかちょっと)
・それにpathのほうは資料がどっちゃり出てくるのに、なぜdomain属性は(普通つかわないもんね、しかたないね)
・ええ、二つ同じ名前が存在すること自体アカン。というお叱りのお言葉はごもっともです。
「domain属性の優先度」という考え方はちょっと違うかなと思いますが、先に回答ページを貼っておくと、これです。
http://www.imymode.com/exp/cookie.html
こんなにたくさん読みたくないよ!というならこちら
http://qiita.com/Kokudori/items/02af57c20ff62cf9eec6
質問の文面から察するに「知っている範囲の知識に現象を当てはめて理解したい」という印象を受けます(実際にそうであるかは別として私の主観)。
そういう思考方法自体は否定しませんが、であれば知識を相当広げる必要があります。
例えばドメインの評価順序です。
ドメインにはルートドメインというものがあり、これが最初に評価されます。
文字でいうと .(ピリオド)です。
これはドメインの末尾に付き(ブラウザでは表示されませんが)、そこから前方に向かって解決されていきます。
質問者さんの強い弱いという概念に当てはめるなら何の矛盾もない強さになるわけです(今回の件は強弱ではなくクッキーの範囲指定をデフォルトで済ませているからだと予想していますが)。
このあたりはDNSについて勉強すると身に付く部分です。
蛇足ですが、何でもかんでも知っている人間を目指すよりは都度調べる方が楽だと思うので、「何を調べるべきか」にピンとくるような物の考え方を練習する方がオススメです。
ドメインの場合、たとえば
「hoge1.example.com」や「hoge2.example.com」のように前方の文字列が変化しますが、
「example.com.hoge3」とはなりません。ですから、後方で一致させる仕様になっています。
>>
ドメイン文字列は文字列の尾部に一致する。
<<
5.1.2. 正準化ホスト名、5.1.3. ドメイン照合 辺りで定義されています。
「.example.com」が他のサブドメインとcookieを共有できるのは、こういった決まり事があるためです。
http://blog.tokumaru.org/2011/10/cookiedomain.html
上記URLは別件ですが、どちらのドメインが優先されるかはブラウザの実装によって差がある部分かもしれません。あいまいですみません。
>>
・ええ、二つ同じ名前が存在すること自体アカン。というお叱りのお言葉はごもっともです。
<<
時々ad.example.comと分けてある場合もありますので…
ブラウザ(絶対IE)によって曖昧だと怖いですね。