#1.目的
「RFC2396 とは」に対して簡単な回答を記事にまとめます。
#2.動機
現場でRFC2396の非予約文字を調べる機会があったので覚書代わりに記事にしようと思いました。
#3.RFC2396 とは
RFC2396ですが、簡単に表現すると”URLで利用できる文字”です。
※RFC3986ってのもいますが今回は説明しません。
RFC2396では以下の文字が使用可能です。
・アルファベット A-Z a-z
・数字 0-9
#4.予約文字と非予約文字
予約文字
区切り文字などの特定目的で用いるために予約されている文字で、その目的以外ではURIに使用できません。
ただし、URLエンコードを使用すれば表現することが可能です。
URLエンコードは16進数で表した2桁の文字コードを「%」に続けた形式で記述します。
例:()をURLで使用したいときは以下のURLエンコードを利用すると使用できます。
・%28=(
・%29=)
http://e-words.jp/w/%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%87%E3%82%B8%E3%83%83%E3%83%88.html
↑実際にURLエンコードが使われているものです。(前回記事にしたものの参考記事)
非予約文字とは自由にURIに使用できる文字です。
以下の記号のことを指します。
・ mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
https://tools.ietf.org/html/rfc2396
↑RFC2396の仕様が書かれているものから引っ張ってきているのですが、仕様通りに非予約文字が利用できるかはアプリケーションの実装で同一性が担保されていないと使用できないこともあります。
#5.まとめ
RFC2396ではアルファベット A-Z a-z、数字 0-9、記号 "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"が使用可能です。
それ以外のものはURLエンコードを使って%○○で表現できます。