URL Ayrıştırıcı
Herhangi bir URL’yi protokol, host, yol, sorgu parametreleri ve hash olarak parçala
URL
Bileşenler
URL Ayrıştırıcı nedir?
Bir URL yapıştır, araç onu gerçekten önemsediğin parçalara böler — protokol, host, port, yol, sorgu parametreleri, hash. Çıktı JSON, yani bir test fixture’ına, debug log’una ya da bileşenlere yapısal formda ihtiyacın olan başka herhangi bir yere doğrudan kopyalayabilirsin. Ayrıştırıcı, modern her tarayıcının dahili olarak kullandığı WHATWG URL Standard’ı takip eder.
Neden ayrıştırıcı? Çünkü beş yüzde-kodlu sorgu parametresi ve bir hash fragmenti olan uzun bir URL’yi okumak işkence. Tarayıcı bunu zaten URL API üzerinden yapıyor, ama bunun için hızlı bir yapıştır-ve-gör arayüzün yok. Bu o. Sorgu parametreleri de çözülür — %20 bir boşluğa, %5B [’a dönüşür, tekrarlayan anahtarlar diziye dönüşür — URLSearchParams ile aynı davranış.
Her şey tarayıcında çalışır. Yükleme yok, sunucu yok, log yok. URL ayrıştırma deterministiktir — yapay zeka yok, tahmin yok, sadece RFC 3986’nın tanımladığı ve WHATWG spec’inin rafine ettiği aynı algoritma.
URL Ayrıştırıcı nasıl kullanılır
Üç adım. Her biri bu sayfadaki bir butona karşılık geliyor.
Bir URL yapıştır veya örneği yükle
Sol panele bir URL bırak. Yüzde kodlama, tekrarlayan sorgu anahtarları ve hash fragmenti içeren gerçekçi bir örnek yüklemek için Örnek’e tıkla. Örnek URL:
https://api.shop.example.com/v1/orders?customer=Ava%20Chen&status=active&total%5Bgte%5D=49.99&page=2#summaryURL constructor’ın kabul ettiği her şey çalışır — <code>file://</code>, <code>mailto:</code>, özel şemalar, IPv6 host’lar ve userinfo (<code>user:pass@host</code>) dahil.
Bileşenleri oku
Sağ panel ayrıştırılmış URL’yi JSON olarak gösterir: protocol, host, port, pathname, pathSegments (yolun bir diziye bölünmüş hali), searchParams (çözülmüş anahtar-değer çiftleri, tekrarlayan anahtarlar için dizilerle) ve hash. Yazarken güncellenir.
Kopyala veya indir
JSON’u panoya göndermek için Kopyala’ya, .json dosyası olarak kaydetmek için İndir’e tıkla. Bir log satırı için lazımsa Sıkıştır, JSON’u tek satıra sıkıştırır. Baştan başlamak için girdi panelinde Temizle’yi kullan.
Bunu gerçekten ne zaman kullanacaksın
Yönlendirme ve analytics URL’lerinde hata ayıklama
Reklam takip yönlendirmesinden gelen on iki sorgu parametreli bir URL adres çubuğunda okunamaz. Buraya yapıştır, parametreleri satır satır çözülmüş olarak gör, hedef url parametresi tamamen açılmış halde. URL Cleaner’ımızdaki (çıkınca) tracker temizlemeyle iyi gider.
Webhook ve OAuth callback URL’lerini incelemek
OAuth callback’leri ve webhook payload’ları, durum bilgisini sorgu dizesine tıkıştırır. Bunu ayırmak; state token’ının eksik olup olmadığını, code’un kesilip kesilmediğini ya da redirect_uri’nin iki kez kodlanmış olup olmadığını apaçık ortaya koyar. RFC 6749 bu parametreleri zorunlu kılar ve araç hepsini bir kerede yüzeye çıkarır.
Test fixture’ları oluşturmak
Bir URL’ye karşı test yazarken, onu genelde string olarak değil yapısal nesne olarak istersin. URL’yi yapıştır, JSON’u kopyala, fixture dosyana at. Bugün beşinci kez protocol: 'https:' elle yazmaktan kurtulursun.
Müşteri destek biletlerini sağlık kontrolü
"Bu linke tıkladığımda bozuldu" — link 400 karakter uzunluğunda, çift kodlanmış eğik çizgilerle. Ayrıştırıcı sana tarayıcının göreceği şeyi tam olarak gösterir; %252F’nin gerçek bir %2F mi yoksa proxy üzerinden geçerken iki kez kodlanmış bir yol ayırıcı mı olduğu dahil.
Sık sorulan sorular
Göreli URL’lerde çalışır mı?
Hayır — URL constructor mutlak bir URL’ye ihtiyaç duyar (https:// veya file:// gibi bir protokolle). Göreli URL’ler için önce https://example.com gibi bir baz ekle, sonra sonuçtan çıkar. WHATWG spec tarayıcıların dahili olarak kullandığı iki argümanlı formu (new URL(relative, base)) açıklar.
Tekrarlayan sorgu anahtarlarını nasıl ele alır?
Tekrarlayan anahtarlar bir diziye katlanır. Yani ?tag=red&tag=blue çıktıda "tag": ["red", "blue"]’a dönüşür. Bu, sunucu framework’lerinin çoğunun (Express, FastAPI, ASP.NET) sorgu dizelerini ayrıştırma şekliyle uyuşur.
?items[]=1&items[]=2 gibi köşeli parantez dizi notasyonu peki?
Ayrıştırıcı parantezleri anahtarın bir parçası olarak ele alır — yani "items[]": ["1", "2"] görürsün. Bu, kablodaki byte’lara dürüst bir davranış. Framework’e özgü bir decoder’a (PHP, Rails, qs.js) ihtiyacın varsa, son işlemeyi ayrıştırılmış çıktı üzerinde yap.
URL’lerde kimlik bilgilerini (user:pass@host) buraya yapıştırmak güvenli mi?
Ayrıştırma tamamen tarayıcında olur — URL makineni asla terk etmez. Bununla birlikte, kimlik bilgilerini bir URL’ye koymak genel olarak önerilmez (RFC 3986 §3.2.1 güvenlik risklerini belirtir) ve çoğu tarayıcı bunları sessizce siler. Yine de yapıştırırsan, çıktıda username ve password alanları görünür.
Uluslararasılaştırılmış alan adlarını (IDN) ele alabilir mi?
Tarayıcının URL constructor’ı IDN alan adlarını ele alır, ancak çıktı Unicode formu yerine Punycode formunu (xn--...) gösterebilir. URL kabloda gerçekten bu şekilde gönderilir. İkisi arasında dönüştürmen gerekiyorsa, özel bir Punycode aracı bu bölüme yakında gelecek.
Çıktı neden "JSON" yerine "Bileşenler" olarak adlandırılıyor?
JSON evet — ama çerçeveleme önemli. Çıktı, URL’nin parçalarının yapısal halidir. Sayfayı "URL → JSON dönüştürücü" olarak görürsen, asıl noktayı kaçırırsın: değer parçalamada, formatta değil.
Diğer URL ve JSON araçları
Ayrıştırma tek bir işlem. Buna doğal olarak eşlik edenler: