URL Kodlaması

Bazı karakterler URL'nin bir parçası olamaz (örneğin, boşluk) ve diğer bazı karakterlerin URL'de özel bir anlamı vardır. HTML formlarında, = karakteri adı değerden ayırmak için kullanılır. URI genel söz dizimi, bu sorunla başa çıkmak için URL kodlaması kullanırken HTML formları, bu tür tüm karakterler için yüzde kodlaması uygulamak yerine bazı ek değiştirmeler yapar.

Örneğin, bir dizedeki boşluklar %20 ile kodlanır veya artı işareti (+) ile değiştirilir. Ayırıcı olarak bir boru karakteri (|) kullanıyorsanız boruyu %7C olarak kodladığınızdan emin olun. Bir dizedeki virgül %2C olarak kodlanmalıdır.

URL'lerinizin platformunuz için düzgün şekilde çıkış karakteri kullanılarak oluşturulmasını sağlamak amacıyla, URL'lerinizi otomatik olarak kodlamak için platformunuzun normal URL oluşturma kitaplıklarını kullanmanız önerilir.

Geçerli bir URL oluşturma

"Geçerli" bir URL'nin ne anlama geldiği açıkça anlaşılıyor gibi görünse de durum tam olarak böyle değildir. Örneğin, bir tarayıcıdaki adres çubuğuna girilen bir URL özel karakterler (ör."上海+中國") içerebilir. Tarayıcının, bu karakterleri iletimden önce farklı bir kodlamaya çevirmesi gerekir. Aynı şekilde, UTF-8 girişi oluşturan veya kabul eden tüm kodlar, UTF-8 karakterleri içeren URL'leri "geçerli" olarak değerlendirebilir ancak bunları bir web sunucusuna göndermeden önce çevirmesi gerekir. Bu işleme URL kodlama veya yüzde kodlama denir.

Özel karakterler

Tüm URL'lerin Tekdüzen Kaynak Tanımlayıcısı (URI) belirtiminde belirtilen söz dizimine uyması gerektiğinden özel karakterleri çevirmemiz gerekir. Bu, URL'lerin yalnızca ASCII karakterlerinin özel bir alt kümesini içermesi gerektiği anlamına gelir: tanıdık alfanümerik semboller ve URL'lerde kontrol karakterleri olarak kullanılmak üzere ayrılmış bazı karakterler. Bu karakterler aşağıdaki tabloda özetlenmiştir:

Geçerli URL Karakterlerinin Özeti
AyarlandıkarakterlerURL kullanımı
Alfanümerik a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 Metin dizeleri, şema kullanımı (http), bağlantı noktası (8080) vb.
Ayrılmamış - _ . ~ Metin dizeleri
Rezervasyon yapıldı ! * ' ( ) ; : @ & = + $ , / ? % # [ ] Kontrol karakterleri ve/veya metin dizeleri

Geçerli bir URL oluştururken yalnızca tabloda gösterilen karakterleri içerdiğinden emin olmanız gerekir. Bir URL'yi bu karakter kümesini kullanacak şekilde uyarlamak genellikle iki soruna yol açar: biri eksiklik, diğeri ise değiştirme.

  • İşlemek istediğiniz karakterler yukarıdaki kümenin dışında yer alıyor. Örneğin, 上海+中國 gibi yabancı dillerdeki karakterlerin yukarıdaki karakterler kullanılarak kodlanması gerekir. Yaygın olarak kabul edilen kurala göre, URL'lerde izin verilmeyen boşluklar genellikle artı '+' karakteriyle de gösterilir.
  • Yukarıdaki kümede ayrılmış karakterler bulunur ancak bunların olduğu gibi kullanılması gerekir. Örneğin, ?, sorgu dizesinin başlangıcını belirtmek için URL'lerde kullanılır. "? and the Mysterions" dizesini kullanmak istiyorsanız ? karakterini kodlamanız gerekir.'?'

URL kodlaması yapılacak tüm karakterler, '%' karakteri ve UTF-8 karakterlerine karşılık gelen iki karakterli bir onaltılık değer kullanılarak kodlanır. Örneğin, UTF-8'deki 上海+中國, URL olarak %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B şeklinde kodlanır. ? and the Mysterians dizesi, %3F+and+the+Mysterians veya %3F%20and%20the%20Mysterians olarak URL kodlamalı olur.

Kodlama gerektiren yaygın karakterler

Kodlanması gereken bazı yaygın karakterler şunlardır:

Güvenli olmayan karakter Kodlanmış değer
Boşluk %20
" %22
< %3C
> %3E
# %23
% %25
| %7C

Kullanıcı girişinden aldığınız bir URL'yi dönüştürmek bazen zor olabilir. Örneğin, bir kullanıcı adresi "5th&Main St." olarak girebilir. Genel olarak, URL'nizi parçalarından oluşturmalı ve kullanıcı girişlerini değişmez karakterler olarak ele almalısınız.

Ayrıca, tüm Google Haritalar Platformu web hizmetleri ve statik web API'leri için URL'ler 16.384 karakterle sınırlıdır. Çoğu hizmette bu karakter sınırına nadiren yaklaşılır. Ancak, belirli hizmetlerin uzun URL'lere neden olabilecek çeşitli parametreleri olduğunu unutmayın.