学有二三事之能,终身用之有余,
URL(Uniform Resource Locator)统一资源定位符,完整的 URL 由下面几个部分组成:
scheme://host:port/path?query#fragment
scheme:通信协议
常用的 http , https , ftp , matio 等
host:主机
服务器(计算机)域名系统(DNS)主机名或 IP 地址。
port:端口号
整数,可选,省略时使用方案的默认端口,如 HTTP 的默认端口为 80。
path:路径
由零或多个/
符号隔开的字符串,一般用来表示主机上的一个目录或者文件地址。
query:查询
可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可以有多个参数,用&
符号隔开,每个参数的名歌值用=
隔开。
fragment:信息片段
字符串,用于指定网络资源中的片段。例如一个网页中有多个名词解释,可使用 fragment 直接定位到某一个名词解释。(也称为锚点)
例子
对于以下的 URL,我们可以使用 js 的 Window.location 去获取其中的各个部分。
http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
① window.location.href
返回值:整个 URI 字符串(浏览器地址栏中完整的地址)
http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
② window.location.protocol
返回值:URL 的协议部分
http
③ window.location.host
返回值:URL 的主机部分
www.x2y2.com
④ window.location.port
返回值:URL 的端口部分
PS: 如果采用默认的 80 端口(即便添加了:80),返回值并不是默认的 80 而是空字符,以上的例子返回的就是空字符。
⑤ window.location.pathname
返回值:URL 的路径部分
/fisker/post/0703/window.location.html
⑥ window.location.search
返回值:查询(参数)部分
除了给动态语言赋值以外,我们同样可以给静态页面,并使用 javascript 来获得相应的参数值
?ver=1.0&id=6
⑦ window.location.hash
返回值:锚点,# 及其后面的内容
#imhere
猪头
2020.4.13