About URL Encoding
URL kodlaması, yüzde kodlama olarak da bilinir, Birleşik Kaynak Tanımlayıcı (URI) içinde bilgi kodlamak için kullanılan bir mekanizmadır. URL'de izin verilmeyen karakterleri İnternet üzerinden iletilebilecek bir formata dönüştürmek için kullanılır. Bu kodlama, güvensiz ASCII karakterlerini "%" ve ardından iki onaltılık rakamla değiştirir.
URL Kodlamasının Yaygın Kullanımları
- URL'lerde sorgu dizelerini biçimlendirme
- HTTP istekleriyle form verisi gönderme (application/x-www-form-urlencoded)
- Özel karakterler veya boşluklar içeren geçerli URL'ler oluşturma
- URL'lerde ASCII olmayan karakterlerin kodlanması
- API'lerde ve web servislerinde karmaşık parametreler iletme
URL Kodlaması Nasıl Çalışır
URL kodlaması şu prensiplere uyar:
- Alfanümerik karakterler (A-Z, a-z, 0-9) değişmeden kalır
- Boşluk, ?, &, =, %, + gibi özel karakterler yüzde kodlu karşılıklarına dönüştürülür
- UTF-8 kodlu bir karakterin her baytı ayrı ayrı yüzde kodlanır
- Bir boşluk karakteri "%20" veya "+" (sorgu parametrelerinde) olarak kodlanabilir
- /, :, ?, #, [ gibi ayrılmış karakterler URL'lerde özel anlamlara sahiptir ve bağlama bağlı olarak farklı şekilde işlenebilir
encodeURI ve encodeURIComponent
JavaScript URL kodlaması için iki fonksiyon sağlar:
- encodeURI: Bir URI'nin tamamını kodlar, URI sözdiziminin parçası olan karakterleri (/:?#[]@!$&'()*+,;= gibi) korur
- encodeURIComponent: Bir URI bileşenini (örneğin sorgu parametresi değeri) kodlar, URI'de özel anlamı olan daha fazla karakteri kodlar
Kullanıcı girişi veya sorgu parametreleri kodlanırken çoğu durumda, encodeURIComponent()
tüm potansiyel sorunlu karakterlerin düzgün şekilde kodlanmasını sağladığı için daha güvenli seçenektir.
Uluslararası Karakterler için URL Kodlaması
Modern tarayıcılar ASCII olmayan karakterleri UTF-8 kodlamasıyla kodlar ve ardından her baytı yüzde kodlar. Bu, uluslararası karakterlerin, emojilerin ve diğer Unicode sembollerinin URL'lere düzgün şekilde dahil edilmesini sağlar. Örneğin, Japonca "日" karakteri önce üç bayt (E6 97 A5) olarak UTF-8 kodlanır ve sonra "%E6%97%A5" olarak yüzde kodlanır.
Examples
Düz Metin | URL Kodlu |
---|---|
Merhaba Dünya | Hello%20World |
https://example.com/?q=search term | https%3A%2F%2Fexample.com%2F%3Fq%3Dsearch%20term |
%50 indirim kampanyası! | 50%25%20indirim%20kampanyası%21 |
Smith & Jones LLC | Smith%20%26%20Jones%20LLC |