URL kodlaması, yüzde kodlaması olarak da bilinir ve verilerin URL’ler içinde güvenli bir şekilde iletilmesi için gereklidir. Bu işlem, standart URL’lerde izin verilmeyen karakterleri (boşluklar, özel karakterler ve vurgulu harfler gibi) web sunucularının anlayabileceği bir biçime dönüştürür. JavaScript, bunu etkili bir şekilde işlemek için encodeURI()
ve encodeURIComponent()
olmak üzere iki güçlü fonksiyon sağlar. Aralarındaki farkı anlamak, sağlam ve güvenli web uygulamaları oluşturmak için çok önemlidir.
İçerik Tablosu
- URI ve URL Arasındaki Fark Nedir?
- JavaScript’te
encodeURI()
Yöntemi Kullanılarak URL Kodlaması - JavaScript’te
encodeURIComponent()
Yöntemi Kullanılarak URL Kodlaması - Doğru Kodlama Yöntemini Seçme
URI ve URL Arasındaki Fark Nedir?
Sıklıkla birbirinin yerine kullanılsa da, URI (Tekdüzen Kaynak Tanımlayıcısı) ve URL (Tekdüzen Kaynak Konumlayıcısı) farklıdır. URI, bir kaynağı tanımlayan genel bir terimdir; URL ise, erişim mekanizmasını (örneğin, HTTP) belirterek bir kaynağı bulmak için kullanılan belirli bir URI türüdür. URI’yi adrese, URL’yi ise o adrese giden yönergelere benzetebilirsiniz. JavaScript kodlaması açısından pratik amaçlar için fark minimumdur; her ikisi de özel karakterleri işlemek için uygun kodlama gerektirir.
JavaScript’te encodeURI()
Yöntemi Kullanılarak URL Kodlaması
encodeURI()
yöntemi, eksiksiz bir URI veya URL’yi kodlar. URL yollarında, sorgu parametrelerinde veya parçacık tanımlayıcılarında izin verilmeyen özel karakterleri hedefler ve genellikle güvenli kabul edilen karakterleri (bölücüler /
, soru işaretleri ?
ve ve işaretleri &
gibi) değiştirmeden bırakır.
let url = "https://www.example.com/search?q=hello world";
let encodedUrl = encodeURI(url);
console.log(encodedUrl); // Çıktı: https://www.example.com/search?q=hello%20world
encodeURI()
boşlukları %20
(boşluğun yüzde kodlanmış gösterimi) ile değiştirir. Tüm URL’leri kodlamak için uygundur, ancak ayrılmış karakterler içerebilecek bireysel bileşenler için uygun değildir.
JavaScript’te encodeURIComponent()
Yöntemi Kullanılarak URL Kodlaması
encodeURIComponent()
daha agresiftir ve URL’ler içinde genellikle güvenli olanlar da dahil olmak üzere tüm özel karakterleri kodlar. Bu, bireysel URL bileşenlerini (sorgu parametreleri veya parçacık tanımlayıcıları) kodlamak için mükemmeldir. Bu yöntemle tüm URL’yi kodlamak hatalı bir URL ile sonuçlanacaktır.
let urlBase = "https://www.example.com/search?q=";
let query = "hello world & özel karakterler";
let encodedQuery = encodeURIComponent(query);
let completeUrl = urlBase + encodedQuery;
console.log(completeUrl); // Çıktı: https://www.example.com/search?q=hello%20world%26%20özel%20karakterler
encodeURIComponent()
‘in tüm boşlukları ve ve işaretini nasıl kodladığına dikkat edin. Bu, dinamik olarak URL’ler oluşturulurken beklenmedik davranışları ve güvenlik açıklarını önler.
Doğru Kodlama Yöntemini Seçme
Tüm URL’ler için encodeURI()
ve bireysel bileşenler (sorgu parametreleri, parçacık tanımlayıcıları) için encodeURIComponent()
kullanın. Bu fonksiyonların yanlış kullanımı bozuk URL’ler ve sunucu tarafı hataları oluşturabilir. Orijinal verileri almak için URL’yi her zaman sunucu tarafında çözümleyin.