移転しました。
2013年2月〜
http://kanonji.info/blog/

2008年11月〜2013年1月
http://d.hatena.ne.jp/kanonji/

はてなダイアリーに移転してたけど、そっからさらにWordPressでのブログに移転しました。
 
201302061607
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
別窓 | スポンサー広告
----------
URLに使える文字 URLに使えない文字
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>について

読解中

・使用できないとされている文字と、でも使えそうな文字

読解中
スポンサーサイト
別窓 | 未分類 | コメント:0 | トラックバック:0
200703060927
| プログラマのチラシの裏 |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。