最近在做短链服务,发现 URL 还挺有趣的,简单梳理一下。
URL 组成
scheme: [ // [ userinfo@ ] host [ :port ] ] [ / ] [ path ] [ ?query ] [#fragment ]
www.welcometothejungle.com:443/en/jobs?que…
组成情况:
组成部分 | 说明 | 值 |
---|---|---|
协议(Scheme) | 指定获取资源时使用的协议。如 http、https、ftp 等。它通常以冒号和两个斜杠(://)跟资源的其余部分隔开。 | 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 包括协议(如 http、https)、域名(或 IP 地址)、端口(可选)、路径(可选)、查询字符串(可选)和片段标识符(可选)。
目的:URL 的主要目的是定位资源,即它提供了访问资源的途径。
简而言之,URL 是 URI 的一个子集,它提供了一种具体的定位和访问资源的方式,而 URI 是一个更广泛的概念,包括了 URL 和 URN,用于标识资源
作者:uzong
链接:https://juejin.cn