重新认识一下 URL

608 阅读3分钟

最近在做短链服务,发现 URL 还挺有趣的,简单梳理一下。

URL 组成

scheme: [ // [ userinfo@ ] host [ :port ] ] [ / ] [ path ] [ ?query ] [#fragment ]

www.welcometothejungle.com:443/en/jobs?que…

组成情况:

组成部分说明
协议(Scheme)指定获取资源时使用的协议。如 httphttpsftp 等。它通常以冒号和两个斜杠(://)跟资源的其余部分隔开。https
子域名(Subdomain)可选,用于指定特定的子域名。www
域名(Domain Name)提供资源的服务器的主机名或IP地址。welcometothejungle.com
端口号(Port)可选,指定服务器上的端口号,未指定时使用默认端口(HTTP的80端口,HTTPS的443端口)。443
路径(Path)指定资源在服务器上的路径。/en/jobs
查询字符串(Query String)可选,传递额外的参数给服务器,参数以key=value形式出现,多个参数用&分隔。query=Developer&page=1
片段标识符(Fragment Identifier)可选,用于指定页面中的一个特定部分,对应HTML文档中ID相同的元素。fra

协议头

常见协议代表类型示例
file访问本地计算机的资源file:///Users/uzong/xxx
ftp访问共享主机的文件资源ftp://ftp.baidu.com/movies
http超文本传输协议, 访问远程网络资源image.baidu.com/channel/wal…
https安全的ssl加密传输协议,访问远程网络资源image.baidu.com/channel
mailto访问电子邮件地址mailto:null@qq.com

PathParam 和 QueryParam 参数

一个是路径上的参数,一个是动态查询参数。

  • Query 参数: 适用于动态的筛选、排序、分页等场景。
  • Path 参数: 适用于明确标识特定资源的情况,例如获取某个产品的信息或删除某个用户。

Query 参数的灵活性较高,用户可以自由添加和调整参数。而 Path 参数则通常在 URL 结构中固定,表示特定的资源。

Path 参数使得 URL 更具结构化,便于识别和理解资源的层级关系。而 Query 参数则在 URL 末尾以查询字符串的形式出现,适合用于附加的过滤和排序条件。

URL 和 URI 的区别

URI(统一资源标识符)

  • 定义:URI 是一个字符串,它提供了一种方式来标识互联网上的资源。资源可以是任何东西,比如文档、图片、服务等。
  • 组成:URI 可以包括 URL 和 URN(Uniform Resource Name,统一资源名称)两种形式。
  • 目的:URI 的主要目的是标识资源,但不一定能定位资源。
  • 例子urn:isbn:0-486-27557-4(这是一个 URN,用于标识特定的书籍)。

URL(统一资源定位符)

  • 定义:URL 是 URI 的一种,它不仅标识一个资源,还提供了如何定位这个资源的具体信息。
  • 组成:URL 包括协议(如 httphttps)、域名(或 IP 地址)、端口(可选)、路径(可选)、查询字符串(可选)和片段标识符(可选)。
  • 目的:URL 的主要目的是定位资源,即它提供了访问资源的途径。

简而言之,URL 是 URI 的一个子集,它提供了一种具体的定位和访问资源的方式,而 URI 是一个更广泛的概念,包括了 URL 和 URN,用于标识资源

参考地址

URL构建:www.welcometothejungle.com/cs/articles…

query/path 区别:apifox.com/apiskills/q…