tech-invite   World Map     

3GPP     Specs     Glossaries     Architecture     IMS     UICC       IETF     RFCs     Groups     SIP     ABNFs       Search

SIP        SIP URIs        SIP Headers        SIP Private Headers        SDP       
HTTP        Generic URI        IRI        IMF        MSRP        RTSP        ABNF Notation

URI (Uniform Resource Identifier) Generic Syntax – RFC 3986

 

Here        Top

 

|   URI Reference   |   Scheme   |   Authority   |   Path   |   Query   |   Fragment   |   Characters   |


URI-reference   =
URI  /  relative-ref
Up

URI   =
scheme   ":"   hier-part   [ "?"   query ]   [ "#"   fragment ]
Up

absolute-URI   =
scheme   ":"   hier‑part   [ "?"   query ]
Up

relative-ref   =
relative-part   [ "?"   query ]   [ "#"   fragment ]
Up

hier-part   =
relative-part   =

 

|   URI Reference   |   Scheme   |   Authority   |   Path   |   Query   |   Fragment   |   Characters   |


scheme   =
ALPHA   *( ALPHA   /   DIGIT   /   "+"   /   "-"   /   "." )

; Examples:
;     "sip"
;     "sips"
;     "tel"
;     "http"
;     "https"
;     "mailto"
;     "pres"
;     "ftp"
;     "file"
;     "rtsp"
;     "msrp"

Up

 

|   URI Reference   |   Scheme   |   Authority   |   Path   |   Query   |   Fragment   |   Characters   |


authority   =
userinfo   "@" ]   host   [ ":"   port ]
Up


userinfo   =
*( unreserved  /  pct‑encoded  /  sub‑delims  /  ":" )
Up


host   =
IP-literal   =
"["   ( IPv6address  /  IPv6addrz  /  IPvFuture )   "]"
Up

IPv6addrz   =
IPv6address   "%25"   ZoneID   ;  see   RFC 6874
Up

ZoneID   =
1*( unreserved  /  pct‑encoded )
Up

IPvFuture   =
"v"   1*HEXDIG   "."   1*( unreserved  /  sub‑delims  /  ":" )
Up

IPv6address   =
                                             6( h16   ":" )   ls32   /
                                     "::"   5( h16   ":" )   ls32   /
[                        h16 ]   "::"   4( h16   ":" )   ls32   /
[ *1( h16   ":" )   h16 ]   "::"   3( h16   ":" )   ls32   /
[ *2( h16   ":" )   h16 ]   "::"   2( h16   ":" )   ls32   /
[ *3( h16   ":" )   h16 ]   "::"       h16   ":"     ls32   /
[ *4( h16   ":" )   h16 ]   "::"                        ls32   /
[ *5( h16   ":" )   h16 ]   "::"       h16   /
[ *6( h16   ":" )   h16 ]   "::"
Up
Up

ls32   =
h16   ":"   h16 )  /  IPv4address
Up

h16   =
1*4HEXDIG
Up
Up

IPv4address   =
dec-octet   "."   dec-octet   "."   dec-octet   "."   dec-octet
Up
Up

dec-octet   =
DIGIT   /     ;  0-9
%x31-39   DIGIT   /     ;  10‑99
"1"   2DIGIT   /     ;  100‑199
"2"   %x30‑34   DIGIT   /     ;  200‑249
"25"   %x30‑35     ;  250‑255
Up

reg-name   =
*( unreserved  /  pct‑encoded  /  sub‑delims )
Up

 


port   =

 

|   URI Reference   |   Scheme   |   Authority   |   Path   |   Query   |   Fragment   |   Characters   |


path   =
path‑abempty  /    ;  begins with "/" or is empty
path‑absolute  /    ;  begins with "/" but not "//"
path‑noscheme  /    ;  begins with a non‑colon segment
path‑rootless  /    ;  begins with a segment
path‑empty    ;  zero characters
Up

path-abempty   =
*( "/"   segment )
Up

path-absolute   =
"/"   [   segment‑nz   *( "/"   segment )   ]
Up

path-noscheme   =
segment‑nz‑nc   *( "/"   segment )
Up

path-rootless   =
segment‑nz   *( "/"   segment )
Up

path-empty   =
0<pchar>
Up

segment   =
segment-nz   =
1*pchar

segment-nz-nc   =
1*( unreserved  /  pct‑encoded  /  sub‑delims  /  "@" )
;  non-zero-length segment without any colon ":"

pchar   =
unreserved  /  pct‑encoded  /  sub‑delims  /  ":"  /  "@"

 

|   URI Reference   |   Scheme   |   Authority   |   Path   |   Query   |   Fragment   |   Characters   |


query   =
*(  pchar   /   "/"   /   "?"  )
Up

 

|   URI Reference   |   Scheme   |   Authority   |   Path   |   Query   |   Fragment   |   Characters   |


fragment   =
*(  pchar   /   "/"   /   "?"  )
Up

 

|   URI Reference   |   Scheme   |   Authority   |   Path   |   Query   |   Fragment   |   Characters   |


pct-encoded   =
"%"   HEXDIG   HEXDIG
Up

unreserved   =
ALPHA   /   DIGIT   /   "-"   /   "."   /   "_"   /   "~"
Up

reserved   =
gen-delims   =
":"   /   "/"   /   "?"   /   "#"   /   "["   /   "]"   /   "@"
Up

sub-delims   =
"!"   /   "$"   /   "&"   /   "'"   /   "("   /   ")"   /   "*"   /   "+"   /   ","   /   ";"   /   "="
Up