[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: w3m-expand-url



In the ML [emacs-w3m 01663] 
Katsumi Yamaoka <yamaoka@namazu.org> wrote:

> >>>>> In [emacs-w3m : No.01662]
> >>>>>	OKAZAKI Tetsurou <okazaki@be.to> wrote:

土屋さん> RFC1808 の BNF 定義を参照すると、http:file.html という書式が
土屋さん> 可能なのか、不可能なのか、よく分からなくなってしまいました。

岡崎> それに関して、RFC 2396 "Uniform Resource Identifiers (URI):
岡崎> Generic Syntax"の 5.2. Resolving Relative References to
岡崎> Absolute Form に次の様な説明があるのを見付けました。

岡崎> 3) If the scheme component is defined, indicating that the reference
岡崎>    starts with a scheme name, then the reference is interpreted as an
岡崎>    absolute URI and we are done.  Otherwise, the reference URI's
岡崎>    scheme is inherited from the base URI's scheme component.

岡崎>    Due to a loophole in prior specifications [RFC1630], some parsers
岡崎>    allow the scheme name to be present in a relative URI if it is the
岡崎>    same as the base URI scheme.  Unfortunately, this can conflict
岡崎>    with the correct parsing of non-hierarchical URI.  For backwards
岡崎>    compatibility, an implementation may work around such references
岡崎>    by removing the scheme if it matches that of the base URI and the
岡崎>    scheme is known to always use the <hier_part> syntax.  The parser
岡崎>    can then continue with the steps below for the remainder of the
岡崎>    reference components.  Validating parsers should mark such a
岡崎>    misformed relative reference as an error.

> ええと、互換のために http:file.html は relative として扱う必要が
> ある、ってことですね。(?)

そうです。ただし、そう解釈出来るための事前条件が 2 つあって、

・base URI で指定されている scheme と reference URI に指定されている
  scheme が一致する場合

かつ、

・scheme が常に <hier_part> を使うことが判っている場合

に限られます。具体例を挙げるとしたら、

base URI: http://localhost/a/b/
reference URI: mailto:foo@example.com?subject=test
  => mailto:foo@example.com?subject=test

base URI: http://localhost/a/b/
reference URI: ftp:file.html
  => ftp:file.html (error)

base URI: http://localhost/a/b/
reference URI: http:file.html
  => http://localhost/a/b/file.html

という感じでしょうか。

-- 
岡崎哲朗