|
移転しました。
|
||
|
移転先はこちらです。
kanonjiの日記 |
||
200902130507 |
||
|
タグ
|
||
|
|
||
|
|
||
---------- |
||
|
URLにはどんな文字が使えるのか、ちょっと気になったので少しRFCを読んでみた。
※なおチラシの裏なので、間違いを含む可能性は多分にあります。 RFC2396 "Uniform Resource Identifiers (URI): Generic Syntax"(訳:大橋正典氏) RFC2396に書いてあるが、ざっくりとまとめてみる。 ・まずURIに使用可能な文字は大きく以下の3つに分類される。 uric = reserved | unreserved | escaped ※uricはURI Characters ・予約文字(URIの中で、区切り文字など特定の役割・意味を持つ文字) reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," ※URIはいくつかのパーツ(成分)から構成されているが、その箇所によって予約文字は異なる。 上記reservedの中でも、パーツによっては予約されていないこともあるようだ。 実際、クエリー部分に$や@が値として含まれているのを見たこともある。 ・普通に使える文字 unreserved = alphanum | mark mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" ※alphanumは英数字のこと。 RFCにはちゃんと列記してあるが、流石に長いので書かない。 ちなみに大文字アルファベット、小文字アルファベット、数字から構成される。 ・URLエンコードされた文字 escaped = "%" hex hex hex = digit | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f" ※日本語などunreserved以外の文字をURLに含めるには%00などの形式に変換する必要がある。 16進数で表現した文字コードを、頭に%をつけて3文字で表現する。 文字コードを直接書くようなものなので、当然S-JISやEUC-JPなど、どの文字コードかによって値は異なる。 日本語はマルチバイトのため、2組で1文字(UTF-8の場合は3組の場合もある)を表現することになる。 ・URLのパーツ(成分) <scheme>://<authority><host><path>?<query>#<fragment> <scheme>はURLに限ればhttpかhttpsとか。 <authority>はセキュリティ上の配慮でIEでは使えなくなった気がするし、使う気も無いのでスルー。 <host>はドメインの部分。 <path>はドメイン配下のファイルまでを表す部分。 <query>はプログラムなどで生成するページに何か値を渡す際に使われるところ。 <fragment>はアンカーでnameが付けられている場合、それを指したりする。 プログラムを書くときに気になるのは、バリデートとクエリーでどんな文字が扱えるかという部分かな。 バリデート:<host><path>?<query>#<fragment> に注目 クエリ:<query> に注目したら良さそう。 ・<query>について <query>ではuricが使用できて、予約文字もreservedがすべて予約されている。 ・<host>について 読解中 ・<path>について 読解中 ・<fragment>について 読解中 ・使用できないとされている文字と、でも使えそうな文字 読解中 |
||
|
|
||
200703060927 |
||
|
|
|
|
COMMENT |
||
| 管理者だけに閲覧 | ||
|
|
||
|
|
|
|
TRACKBACK |
||
|
| プログラマのチラシの裏 |
|