私はフラグメント識別子を使用して、AJAX Webアプリのイベント この男に似ています 。のパーマリンクを作成しています。
http://www.myapp.com/calendar#filter:year/2010/month/5
かなりの検索を行いましたが、フラグメントidenitiferの有効な文字のリストが見つかりません。 W3C仕様 は何も提供しません。
一般に持っているURLと同じ文字をエンコードする必要がありますか?
これに関する良い情報はどこにもありません。
RFC 3986 を参照してください。
fragment = *( pchar / "/" / "?" )
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
pct-encoded = "%" HEXDIG HEXDIG
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
したがって、!
、$
、&
、'
、(
、)
、*
、+
、,
、;
、=
、何かに一致する%[0-9a-fA-F]{2}
、何かに一致する[a-zA-Z0-9]
、-
、.
、_
、~
、:
、@
、/
、および?
http://tools.ietf.org/html/rfc3986#section-3.5 :
fragment = *( pchar / "/" / "?" )
そして
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
pct-encoded = "%" HEXDIG HEXDIG
そのため、結合したフラグメントcannotには#
、生の%
、^
、[
、]
、{
、}
、\
、"
、<
および>
RFCによると。
他のRFCはそれについて述べています: RFC-1738
URL schemeparts for ip based protocols:
HTTP
httpurl = "http://" hostport [ "/" hpath [ "?" search ]]
hpath = hsegment *[ "/" hsegment ]
hsegment = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
search = *[ uchar | ";" | ":" | "@" | "&" | "=" ]