url 的结构
URL (Uniform Resource Locator) 统一资源定位符
完整的 URL 由以下几个部分组成:
scheme://host:port/path?query#hash
- scheme: 通信协议,通常有:http, https, ftp, mailto 等
- host: 主机域名或者 ip 地址
- port: 端口号,可选。省略时使用协议默认的端口号,比如 http 的默认端口是 80
- path: 路径由零个或者多个 "/" 符号隔开的字符串组成,一般用来表示主机上的一个目录或者文件地址
- query: 查询,可选。用于传递参数,可以有多个,参数之间用 "&" 隔开,每个参数的名和值之间用 "=" 隔开
- hash: 信息判断字符串,也可以称为锚点,可以指定网络资源中的片段,就是定位到网页中的某一个部分。
比如:
https://www.baidu.com/index.html?id=1&page=1#name1
用 javascript 获得其中的各个部分如下:
- window.location.href:整个 URl 字符串,返回值:
"https://www.baidu.com/index.html?id=1&page=1#name1"
。 - window.location.protocol:协议部分,返回值:
"https:"
。 - window.location.host:主机部分。返回值:
"www.baidu.com"
。 - window.location.port:端口部分。如果采用了协议默认的端口,则返回空字符。本例返回值:
""
。 - window.location.pathname:路径部分。返回值:
"/index.html"
。 - window.location.search:查询(参数)部分。返回值:
"?id=1&page=1"
。 - window.location.hash:锚点。返回值:
"#name1"
。