✨ URL(Uniform Resource Locator,统一资源定位符)是 互联网 上资源的 唯一标识符,通过URL可以定位和访问互联网上的资源。它类似于我们在现实生活中使用的地址,用于定位一个具体的地点或资源。
一、概述
URL 提供了一种定位因特网上任意资源的手段,大多数 URL 语法都由以下九个结构的通用格式组成:
scheme://[username:password@]hostname[:port][/path][;params][?query][#frag]
🌾: [ ] 扩住的内容,表示非必需。 没有扩住的是必须要有的。
其中,各部分的含义如下:
scheme:协议。常用的协议有http、https、ftp等,另外 scheme 也被常称为protocol, 二者都代表协议的意思。
username、password:用户名 和 密码。 在某些情况下URL需要提供用户名和密码才能访问,这时候可以把用户名和密码放在host前面。比如“https://ssr3.scrape.center”这个URL需要用户名和密码才能访问,直接写成“https://admin:admin@ssr3.scrape.center”则可以正常访问。
hostname:主机地址。可以是域名或者IP地址、比如 “https://www.baidu.com” 这个 URL 中的 hostname 就是 www.baidu.com,这就是百度的二级域名。比如“https://8.8.8.8”这个URL 中的 hostname 就是 8.8.8.8,它是一个IP地址。
port:端口。这是服务器设定的服务端口,比如“https://8.8.8.8:12345”这个 URL 中的端口就是12345。但是有些 URL 中没有端口信息,这是使用了默认的端口。http 协议的默认端口是80,https 协议的默认端口是443。所以“https://www.baidu.com”其实相当于“https://www.baidu.com:443”, 而“http://www.baidu.com”其实相当于“http://www.baidu.com:80”。
path:路径。指的是网络资源在服务器中的指定地址,比如“https://github.com/favicon.ico”中的path 就是favicon.icon, 指的是访问 GitHub 根目录下的 favicon.icon。
params:参数。用来指定访问某个资源时的附加信息,比如“https://8.8.8.8:12345/hello;user” 中的user就是params。但是params现在用得很少,所以目前很多人会把该参数后面的query部分称为参数,甚至把params 和 query混用。严格意义上来说,params就是分号(;)后面的内容。
query:查询。用来查询某类资源,如果有多个查询,则用 & 隔开。query 其实非常常见,比如“https://www.baidu.com/s?wd=nba&ie=utf-8”,其中的 query 部分就是 wd = nba & ie = utf-8, 这里指定了 wd 是 nba, ie 是 utf-8。由于query比刚才所说的params 使用频率高很多, 所以平时我们见到的参数,GET请求参数、params、parameters 等称呼多数情况指代的也是query。从严格意义上说,应该用query来表示。
fragment:片段。它是对资源描述的部分补充,可以理解为资源内部的书签。目前它有两个主要的应用,一个是用作单页面路由,比如现代前端框架Vue、React 都可以借助它来做路由管理;另外一个是用作 HTML 锚点,用它可以控制一个页面打开时自动下滑滚动到某个特定的位置。