2.2 URL

URL是互联网最伟大的创意之一,也就是我们经常提的链接,通过URL请求可以查找到唯一的资源,格式如下:

<scheme>://<netloc>/<path>?<query>#<fragment>

比如,下面是一个最普通的URL:

http://www.foo.com/path/f.php?id=1&type=cool#new

对应关系是:

<scheme> - http
<netloc> - www.foo.com
<path> - /path/f.php
<query> - id=1&type=cool,包括<参数名=参数值>对
<fragment> - new

对于需要HTTP Basic认证的URL请求,甚至可以将用户名与密码直接放入URL中,在<netloc>之前,格式如:

http://username:password@www.foo.com/

我们接触最多的是HTTP/HTTPS协议的URL,这是Web安全的入口点,各种安全威胁都是伴随着URL的请求而进行的,如果客户端到服务端各层的解析没做好,就可能出现安全问题。

URL有个重点就是编码方式,有三类:escape、encodeURI、encodeURIComponent,对应的解码函数是:unescape、decodeURI、decodeURIComponent。这三个编码函数是有差异的,甚至浏览器在自动URL编码中也存在差异。