长链形成短链,短链URL 重定向访问原链接

1. 长链生成短链

  • 长链:是一个较长且包含复杂路径的 URL,例如一个网页地址、文件下载链接、或是带有多个参数的 URL。

  • 短链 :是一个较短的 URL,通常通过短链服务(如 Bitly、TinyURL、百度短链接等)生成,通常表现为:

    vbnet 复制代码
    https://short.ly/abc123

生成短链的过程主要通过短链服务的 数据库映射 来实现。短链服务会将长 URL 映射为一个短的标识符,并存储在其数据库中。这些短链通常是一个编码后的字符串。

  • 例如,长链:

    vbnet 复制代码
    https://example.com/this-is-a-long-url/with-many/parameters?name=value&other=value

    被映射到一个短链:

    vbnet 复制代码
    https://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. 短链服务如何工作

  1. 用户访问短链(例如 https://short.ly/abc123)。
  2. 短链服务查找数据库中与 abc123 对应的原 URL。
  3. 短链服务返回 301 或 302 重定向 状态码,告诉浏览器跳转到原始 URL。
  4. 浏览器跳转到原 URL,最终加载页面内容。

5. 常见的短链生成服务

常见的短链服务(如 Bitly、TinyURL、百度短链接等)会为每个长链生成一个唯一的短 URL。生成短链的过程通常包括:

  • 通过哈希算法或其他方法生成短链的标识符(如 abc123)。
  • 将该标识符与原始 URL 存储在服务的数据库中。
  • 当用户访问短链时,短链服务从数据库中查找原 URL,并通过 HTTP 重定向将用户引导到原网址。
相关推荐
锋行天下3 小时前
DeepSeek写Langgraph就是个大傻逼,一本正经胡说八道
前端·人工智能·后端
jktantan3 小时前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
计算机魔术师3 小时前
Anthropic官方插件被「寄生」,背后是同一类攻击又来了
前端
我命由我123454 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理
key_3_feng4 小时前
评估与对齐:Agent 自我进化的护栏
前端·数据库·agent
LaughingZhu5 小时前
Product Hunt 热榜 2026-10-30:Empacer、Scape、Floot in ChatGPT
java·前端·数据库·人工智能·chatgpt·notion
Lank_M5 小时前
抠图结果缩放后边缘发脏,该怪的不是插值
前端
jerrywus5 小时前
Skill、MCP、Workflow、Rules、Memory 有什么区别?拿几次真实开发任务讲清楚
前端·agent·claude
补码缩写5 小时前
canvas 与 sharp 缩放透明图:默认预乘,非预乘得拆通道
前端
静默回滚5 小时前
抠图 PNG 缩小再放大,边缘又糊又白是两件事
前端