【HTTP】URL的基本概念和构成
通过一个链接,便可以从互联网中找到某个资源,这个链接就是URL。URL基本组成格式如下(其中中括号包括的内容代表非必要部分):
scheme://[username:password@]hostname[:port][/path][;parameters][?query][#fragment]
每一个字段名解释:
- scheme:协议。常用协议有 http、https、ftp 等。
- username、password:用户名和密码。某些情况下URL需要提供用户名和密码才能访问,这时可以把用户名和密码放在 host 前面。比如 https://admin:admin@ssr3.scrape.center 就可以直接访问该URL。
- 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。
- path:路径。指的是网络资源在服务器中的指定地址,比如 https://github.com/favicon.ico 中的 path 就是 favicon.ico ,指的是访问 GitHub根目录下的 favicon.ico。
- parameters:参数。用来指定访问某个资源时的附加信息,比如 https://8.8.8.8:12345/hello;user 中的 user 就是 parameters。现在用的很少,所以目前很多人会把该参数后面的 query 部分称为参数,但严格意义来说,parameters 是分号(;)后面的内容。
- query:查询。用来查询某类资源,如果有多个查询,可用 & 隔开。比如 https://www.baidu.com/s?wd=nba&ie=utf-8,其中 query 部分就是 wd=nba&ie=utf-8,这里指定 wd 是 nba,ie 是 utf-8。由于 query 使用频率比 parameters 高,所以平时我们见到的参数、GET请求参数、parameters、params 等称呼多数情况指代的也是 query。
- fragment:片段。它是对资源描述的部分补充,可以理解为资源内部的书签。目前它有两个主要应用,一个是用作单页面路由,比如现代前端框架 Vue、React 都可以借助它来做路由管理;另一个是用作 HTML 锚点,用它可以控制一个页面打开时自动下滑滚到某个特定的位置。