1. 长链生成短链
-
长链:是一个较长且包含复杂路径的 URL,例如一个网页地址、文件下载链接、或是带有多个参数的 URL。
-
短链 :是一个较短的 URL,通常通过短链服务(如 Bitly、TinyURL、百度短链接等)生成,通常表现为:
vbnethttps://short.ly/abc123
生成短链的过程主要通过短链服务的 数据库映射 来实现。短链服务会将长 URL 映射为一个短的标识符,并存储在其数据库中。这些短链通常是一个编码后的字符串。
-
例如,长链:
vbnethttps://example.com/this-is-a-long-url/with-many/parameters?name=value&other=value
被映射到一个短链:
vbnethttps://short.ly/abc123
这个短链就变成了一个唯一的标识符,指向原来的长 URL。
2. 短链重定向到长链
- 当用户点击短链(例如
https://short.ly/abc123
)时,短链服务会读取该短链标识符abc123
,然后查找数据库中与该标识符关联的原始 URL(即长链)。 - 找到原 URL 后,短链服务通过 HTTP 重定向 将用户引导到原始 URL。
3. HTTP 重定向的工作原理
在前端(浏览器端),HTTP 重定向是通过设置 3xx 状态码 来完成的,常见的包括:
- 301 Moved Permanently:表示资源被永久转移到新的位置。
- 302 Found(临时重定向):表示资源被临时转移。
- 303 See Other 和 307 Temporary Redirect 也常用于重定向。
例如,短链服务会返回一个响应,像这样:
http
HTTP/1.1 301 Moved Permanently
Location: https://example.com/this-is-a-long-url/with-many/parameters?name=value&other=value
浏览器收到这个响应后,会自动跳转到新的 URL,也就是原始长链的内容。
4. 短链服务如何工作
- 用户访问短链(例如
https://short.ly/abc123
)。 - 短链服务查找数据库中与
abc123
对应的原 URL。 - 短链服务返回 301 或 302 重定向 状态码,告诉浏览器跳转到原始 URL。
- 浏览器跳转到原 URL,最终加载页面内容。
5. 常见的短链生成服务
常见的短链服务(如 Bitly、TinyURL、百度短链接等)会为每个长链生成一个唯一的短 URL。生成短链的过程通常包括:
- 通过哈希算法或其他方法生成短链的标识符(如
abc123
)。 - 将该标识符与原始 URL 存储在服务的数据库中。
- 当用户访问短链时,短链服务从数据库中查找原 URL,并通过 HTTP 重定向将用户引导到原网址。