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)?