URL ayrıştırma nasıl çalışır
Ayrıştırıcı, herhangi bir href için tarayıcının kullandığı algoritmayı temel alan WHATWG URL standardıyla çalışır. Dizeyi yerel URL yapıcısına iletip her bileşeni bir özellik olarak geri okuruz.
- Girişi doğrula. Boş bir dize, boş giriş bildirimini gösterir. Aksi hâlde metni
new URL(metin)'e geçiririz; TypeError, dizenin geçerli bir mutlak URL olmadığı anlamına gelir. - Yapısal bileşenleri oku. URL nesnesinden
protocol,username,password,host,hostname,port,pathname,search,hashveorigin'i okuruz. Her biri kendi satırına yerleşir ve ayrı ayrı kopyalanabilir. - Sorgu dizesini işle.
url.searchParams.entries()'i yineleyerek her anahtar için bir tablo satırı oluştururuz. Ham değer,decodeURIComponent(value)'un yanında yer alır; böylece yüzde kodlu içerikler (boşluklar, artı işaretleri, Unicode) düz metin olarak okunabilir. - İsteğe bağlı yeniden oluştur. Herhangi bir hücreyi düzenleyin, bir satırı silin veya yeni bir parametre ekleyin, ardından URL Oluştur'a tıklayın. Araç, düzenlemelerinizden yeni bir URL nesnesi oluşturur ve sonucu giriş kutusuna yazar.
- Canlı mod. Canlı modu etkinleştirdiğinizde her tuş vuruşu, 150 ms gecikmeyle URL'yi yeniden ayrıştırır. Günlükten parçalar yapıştırırken anında geri bildirim almak istediğinizde kullanışlıdır.
Neden URL'yi tarayıcınızda ayrıştırmalısınız
- Sekmeden hiçbir şey çıkmaz. URL'ler, üçüncü taraf bir hizmetin elinde bulundurmak istemeyeceğiniz token'lar, oturum kimlikleri, OAuth durumu ve imzalı sorgu parametreleri içerir. Bu ayrıştırıcı, tarayıcınızın yerel olarak zaten çalıştırdığı URL algoritmasını kullanır — yükleme yok, ağ çağrısı yok.
- Kodunuzun gördüğüyle eşleşir. Node.js, Deno, modern tarayıcılar ve Cloudflare Workers, WHATWG URL uygulamasını bünyesinde barındırır. Burada bir URL'yi incelemek, üretimde
new URL(input)çağrısının size vereceği bileşen ayrımını sağlar. - Sorgu dizelerini insanların anladığı gibi okur. Ham ve çözülmüş değerler yan yana yer aldığından,
q=hello%20worldçifti hem ham baytları hem de okunabilirhello world'ü tek bakışta gösterir. Zihinsel URL çözme gerekmez. - Gidiş-dönüş düzenleme. Bir izleme parametresini kaldırın, yolda bir yazım hatasını düzeltin, port'u değiştirin — ve URL'yi yeniden oluşturun. Çıktı, URL yapıcısından tekrar geçer; bu sayede geçersiz olan her şey kopyalamadan önce ortaya çıkar.
Yaygın uygulamalar
URL ayrıştırma, bir URL'nin yalnızca bir bağlantıdan fazlası olduğu durumlarda günlük geliştirici, güvenlik ve analitik çalışmalarında karşımıza çıkar.
- API uç noktalarını hata ayıklama: curl veya Postman isteği göndermeden önce temel URL'yi, yolu ve sorgu parametrelerini doğrulayın.
- İzleme parametresi denetimleri: açılış sayfası URL'sindeki her UTM, gclid, fbclid veya kampanya anahtarını listeleyin ve hangilerini saklayacağınıza karar verin.
- Bağlı kuruluş ve iş ortağı bağlantılarını doğrulama: derin bağlantıyı yapıştırın, yayınlamadan önce hedef host'u ve gömülü yönlendirme hedefini onaylayın.
Çalışmalı bir örnek
https://example.com/search?q=hello%20world&lang=en'i giriş alanına yapıştırın. Protokol https:, hostname example.com, yol adı /search, arama ise ?q=hello%20world&lang=en olarak okunur. Sorgu tablosu iki satır gösterir: q, ham değer hello%20world ve çözülmüş değer hello world; ardından lang, hem ham hem de çözülmüş değer en. lang satırında Kaldır'a tıklayın, ardından URL Oluştur'a basın — giriş alanı https://example.com/search?q=hello%20world olarak güncellenir.
FAQ
URL ayrıştırıcı nedir?
URL ayrıştırıcı, bir URL dizesini adlandırılmış bileşenlere ayırır: protokol (https), kullanıcı bilgisi (kullanıcı adı, şifre), host (hostname ile isteğe bağlı port), yol, sorgu dizesi ve parça. Ayrıca her sorgu parametresinin kodunu çözer; böylece yüzde kodlu değerler (%20 gibi boşluk) okunabilir hâle gelir. Buradaki ayrıştırıcı, tarayıcınızın sayfa yüklemek için kullandığı WHATWG URL standardını kullanır.
Host ile hostname arasındaki fark nedir?
Hostname yalnızca alan adıdır (veya IP adresidir) — example.com:8080 için hostname example.com'dur. Host ise varsayılan olmayan bir port mevcutsa hostname artı port'tur; dolayısıyla aynı URL'nin host değeri example.com:8080'dir. Varsayılan portlardaki URL'lerde (https için 443, http için 80) host ve hostname aynıdır.
Çözme otomatik olarak gerçekleşir mi?
Yapısal bileşenler (protokol, hostname, port, yol adı) ekstra çözme olmadan doğrudan URL nesnesinden okunur — URL yapıcısı bunları zaten normalleştirir. Sorgu değerleri iki kez gösterilir: search içinde göründüğü hâliyle ham yüzde kodlu dize ve decodeURIComponent'in ürettiği çözülmüş değer. Bu sayede akış araçlarınızın beklediği biçimi kopyalayabilirsiniz.
URL'yi düzenleyip yeniden oluşturabilir miyim?
Evet. Her bileşen hücresi ve her sorgu parametresi hücresi düzenlenebilir. Ekle ve Kaldır düğmeleriyle sorgu satırlarını ekleyin veya kaldırın, ardından Parçalardan URL oluştur'a tıklayın. Araç, düzenlemelerinizi URL yapıcısından tekrar geçirir ve sonucu girişe yazar — düzenlemeler geçersiz bir URL üretirse, kendi kodunuzdaki new URL()'den alacağınız hata mesajının aynısını alırsınız.
URL ayrıştırma, her web geliştiricisinin her hafta yaptığı küçük işlerden biridir. Bunu, üretim kodunun kullandığı algoritmayla tarayıcıda yapmak işi hem hızlandırır hem de verileri makinenizde tutar.