Docs học tập
Backend nền tảng

J3 · Thiết kế dịch vụ rút gọn URL

Long URL → Base62 (aZ3x9K) → short code.

J3 · Middle

Đổi địa chỉ nhà dài thành mã số ngắn; tra mã là ra địa chỉ.

Cốt lõi

  • Long URL → Base62 (aZ3x9K) → short code.
  • DB mapping short → long; 301 redirect; Analytics theo dõi lượt click; Rate limiter; hết hạn link.

Đánh đổi

Hệ thống đọc cực nhiều → cache mạnh. 301 (cache được, mất analytics) vs 302 (đi qua server, đếm được click).

Trong thực tế

Bitly dùng Base62, 301 redirect + analytics; TinyURL.

Bug thường gặp

Sinh mã ngẫu nhiên không kiểm tra trùng → hai URL khác nhau dùng chung một mã.

Tự hỏi lại

7 ký tự Base62 = 62^7 ≈ 3.5 nghìn tỷ mã. Sinh ID không trùng thế nào (counter, Snowflake)?

On this page