URL

统一资源定位符(或称统一资源定位器/定位地址、URL地址等[1],英语:Uniform / Universal Resource Locator,常缩写为URL),有时也被俗称为网页地址(网址)。如同在网络上的门牌,是因特网上标准的资源的地址(Address)。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址。现在它已经被万维网联盟编制为因特网标准RFC 1738。

协议类型:[//服务器地址[:端口号]][/路径]文件名[?查询][#片段]
scheme://login:password@address:port/path/to/resource?query_string#fragment

  1. 协议名称
  2. 层级URL的标记符号(此项固定不变)
  3. 访问资源需要的凭证信息
  4. 从哪个服务器获取数据
  5. 需要连接的端口号(可选项)
  6. 指向资源的层级UNIX文件路
  7. “查询字符串”参数(可选项)
  8. “片段ID”(可选项)

如果客户端到服务端各层的解析没有做好,就可能出现安全问题。

保留字符和百分号编码或URL编码
URL有个重点就是编码方式。有三类,
编码:escape、encodeURI、encodeURIComponent,
解码:unescape、decodeURI、decodeURIComponent,
这三个编码函数是有差异的,甚至浏览器在自动URL编码也存在差异。

Chrome 58、Firefox 52、IE 11运行结果如下

字符 escape encodeURI encodeURIComponent
: %3A : %3A
/ / / %2F
? %3F ? %3F
# %23 # %23
[ %5B %5B %5B
] %5D %5D %5D
@ @ @ %40
! %21 ! !
$ %24 $ %24
& %26 & %26
' %27 ' '
( %28 ( (
) %29 ) )
* * * *
+ + + %2B
, %2C , %2C
; %3B ; %3B
= %3D = %3D

解码情况是unescape可以解码上述字符的所有字符,
decodeURI只能解码上述%5B和%5D两个字符,
decodeURLComponent能解码上述的所有字符。

你可能感兴趣的:(URL)