青山です。

On Wed, 24 May 2000 17:34:16 +0900,
Ryunosuke Ohshima <ryu / jaist.ac.jp> wrote:

> こちらは僕も最初は() 忘れだと思ったのですが、Cokkie#to_s()での動作を
> 考えると、「@path = ""」より、「@path = nil」に初期化された方が良い
> と思われます。

これはごもっともです。というか、勝手に path を付ける事自体が余計なお世
話なんですよね。本当は。ですが、そのコードのコメントにあるように、IE
というか、IE 5 に対応する為の策なのです。

どうも、IE 5 では、Cookie に path を付けないと、おかしな動作をする事が
あるようなのです。で、とにかくなんらかの path を付加させようという事で、
このようになっています。

という事で、nil にしてしまうと path そのものが付加されなくなってしまい
ますので、ここは不適切かもしれませんが、"" のままにしたいと思います。
また、おそらくはその前で path の値は得られると思いますので、この最後の
値は、保険みたいなものですね。まず使われる事は無いでしょう。

> 余談ですが、HTMLのタグのエレメントでも「&"<>」を含む場合は
> CGI::escapeHTML()する必要があるのですね。当然と言われれば当然なので
> すが、先ほどRFC1866の以下の部分を読むまで、気づきませんでした。

これは、RFC 1866 が勘違いしていると思われます。A エレメントの HREF 属
性のデータ型は、実体参照などの行われない CDATA 型なので、& の解釈は行
われず、逆に、展開されないという事は、実体参照で記述してはならないはず
ですから。

HTML 4.0 Strict DTD
> <!ENTITY % URI "CDATA"
略
> <!ELEMENT A - - (%inline;)* -(A)       -- anchor -->
> <!ATTLIST A
略
>   href        %URI;          #IMPLIED  -- URI for linked resource --

HTML 2.0, HTML 3.2 でも同じく CDATA となっています。また、少なくとも、
手元の Lynx, Netscape, mozilla, w3m などでは & のままで通りますし。

あ、もしかして、ここで勘違いしている?

RFC 1866
>        NOTE - There are SGML mechanisms, CDATA and RCDATA
>        declared content, that allow most `<', `>', and `&'
>        characters to be entered without the use of entity
>        references.

これって、実体参照無しが RCDATA の方になっていませんか? 読み違い?


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>