Giriş
Her gün milyonlarca insan lix.li/a1B2c3 gibi kısa linklere tıklıyor, ancak tıklama ile sayfanın yüklenmesi arasında geçen sürede ne olduğunu hiç düşünmüyor. Aslında o kısacık anda oldukça fazla şey gerçekleşiyor: sunucu doğru uzun URL'yi anında bulmalı, tarayıcıyı yönlendirmeli ve tıklama verisini kaydetmeli — bütün bunlar milisaniyeler içinde tamamlanıyor.
Bu yazıda URL kısaltıcıların arka planda nasıl çalıştığını inceleyeceğiz: hangi teknolojileri kullanıyorlar, kısa kodlar nasıl üretiliyor, analitik veriler nereden geliyor ve bu işin göründüğünden neden çok daha karmaşık olduğunu ele alacağız.
URL Kısaltıcı Nedir
URL kısaltıcı, uzun bir URL'yi (örneğin https://example.com/products/category/electronics/smartphones?ref=newsletter&utm_campaign=summer2026) lix.li/xY7z9Q gibi kompakt bir linke dönüştüren bir hizmettir. Kullanıcı kısa linke tıkladığında, otomatik olarak orijinal uzun adrese yönlendirilir.
Kulağa basit gelse de arkasında tam teşekküllü bir altyapı var: bir veritabanı, benzersiz tanımlayıcılar üretmek için algoritmalar, bir yönlendirme sistemi ve bir analitik motoru.
Temel Mekanizma: HTTP Yönlendirmeleri
Her URL kısaltıcının merkezinde HTTP yönlendirmesi bulunur — tarayıcıya "aradığınız içerik başka bir adreste" diyen standart bir web protokolü mekanizması. Biri kısa bir linke tıkladığında şunlar gerçekleşir:
- Tarayıcı, kısaltma hizmetinin sunucusuna bir istek gönderir (örneğin
lix.li/xY7z9Q). - Sunucu,
xY7z9Qkoduna karşılık gelen uzun URL'yi veritabanında arar. - Sunucu, orijinal URL'yi işaret eden bir
Locationbaşlığıyla birlikte 301 veya 302 HTTP durum kodu döndürür. - Tarayıcı otomatik olarak uzun URL'ye yeni bir istek gönderir ve hedef sayfayı yükler. Tüm bu süreç milisaniyeler içinde tamamlanır ve kullanıcı tarafından fark edilmez.
301 mi 302 mi: Aradaki Fark
Yönlendirme durum kodunun seçimi, tarayıcıların ve arama motorlarının davranışını etkileyen önemli bir teknik karardır:
- 301 (Moved Permanently) — kalıcı bir yönlendirme. Tarayıcılar ve arama motorları bunu önbelleğe alır ve ileride doğrudan nihai adrese istek gönderebilir. Bu, kısaltma hizmetinin sunucusundaki yükü biraz azaltır, ancak tekrarlanan ziyaretler artık sunucudan geçmeyebileceği için hassas tıklama takibini zorlaştırır.
- 302 (Found / Temporary Redirect) — geçici bir yönlendirme. Her tıklama zorunlu olarak kısaltma hizmetinin sunucusundan geçer, bu da eksiksiz ve doğru bir tıklama takibi sağlar. Bu nedenle Lix.li dahil olmak üzere analitiğe odaklı hizmetlerin çoğu 302 kullanır.
Kısa Kodlar Nasıl Üretilir
En ilginç mühendislik zorluklarından biri, milyonlarca link için kısa, benzersiz ve çakışmayan kodlar üretmektir. Bunun için birkaç yaygın yöntem bulunur.
1. base62 Kodlamalı Artan Sayaç
En yaygın kullanılan yöntemlerden biri. Her yeni linke, veritabanındaki otomatik artan bir sayaçtan sıralı bir numara (1, 2, 3…) atanır. Bu sayı, ondalık sistemden base62'ye dönüştürülür — 62 karakter kullanan bir sayı sistemi: a–z, A–Z, 0–9.
Neden 62 karakter? Çünkü hepsi URL'lerde güvenle kullanılabilir ve kompakt bir sonuç üretir. Örneğin, 125.000 sayısı base62'de yalnızca 4 karaktere dönüşür. Bu, sayaç arttıkça kodların öngörülebilir şekilde büyürken kısa kalmasını sağlar.
2. Hashleme
Bir diğer yaklaşım, orijinal URL'nin bir hash değerini (örneğin MD5 veya SHA-256) hesaplamak ve bu hash'in ilk birkaç karakterini kısa kod olarak kullanmaktır. Bu yöntem merkezi bir sayaç gerektirmediği için pratiktir, ancak çakışma riski taşır — farklı URL'lerin aynı hash önekini üretmesi — bu da ek bir çakışma yönetim mantığı gerektirir.
3. Benzersizlik Kontrolüyle Rastgele Üretim
Hizmet, sabit uzunlukta (genellikle 6–8 karakter) rastgele bir dizi üretir ve bu kodun veritabanında zaten kullanılıp kullanılmadığını kontrol eder. Kullanılıyorsa yenisi üretilir. Bu yaklaşım uygulanması en kolay olanıdır, ancak link sayısı