URL Kodlama

Bazı karakterler URL'nin parçası olamaz (örneğin, boşluk) ve diğer bazı karakterler URL'de özel anlamlara sahip olamaz. HTML biçimlerinde bir adı değerden ayırmak için = karakteri kullanılır. URI genel söz dizimi, bu sorunu çözmek için URL kodlaması kullanırken HTML formları, bu tür tüm karakterlere yüzde kodlaması uygulamak yerine bazı ek değişiklikler yapar.

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

URL'leri otomatik olarak kodlamak için platformunuzun normal URL oluşturma kitaplıklarını kullanmanız önerilir. Böylece, URL'lerin platformunuzda doğru şekilde kod dışına alınması sağlanır.

Geçerli bir URL oluşturma

"Geçerli" bir URL'nin kendiliğinden açıkça ortaya çıktığını düşünebilirsiniz, ancak bu doğru değildir. Örneğin, bir tarayıcıda adres çubuğuna girilen bir URL özel karakterler (ör."上海+中國") içerebilir. Tarayıcının bu karakterleri iletilmeden önce dahili olarak farklı bir kodlamaya çevirmesi gerekir. Aynı jetonla, UTF-8 girişi oluşturan veya kabul eden tüm kodlar UTF-8 karakterlerine sahip URL'leri "geçerli" olarak değerlendirebilir ancak bu karakterleri bir web sunucusuna göndermeden önce çevirmesi de gerekir. Bu sürece URL kodlaması veya yüzde kodlaması adı verilir.

Özel karakterler

Tüm URL'lerin Tek Tip Kaynak Tanımlayıcı (URI) spesifikasyonunda belirtilen söz dizimine uygun olması gerektiğinden özel karakterleri çevirmemiz gerekir. Bu, aslında URL'lerin ASCII karakterlerin yalnızca özel bir alt kümesini içermesi gerektiği anlamına gelir: bilinen alfasayısal simgeler ve URL'lerde kontrol karakterleri olarak kullanılmak üzere ayrılmış bazı karakterler. Bu tabloda şu karakterler özetlenmektedir:

Geçerli URL Karakterlerinin Özeti
AyarlakarakterlerURL 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 g 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 Metin dizeleri, şema kullanımı (http), bağlantı noktası (8080) vb.
Ayrılmamış - _ . ~ Metin dizeleri
Rezervasyon yapıldı ! * ' ( ) ; : @ & = + TL , / ? % # [ ] Kontrol karakterleri ve/veya Metin Dizeleri

Geçerli bir URL oluştururken URL'nin yalnızca Geçerli URL Karakterlerinin Özeti tablosunda gösterilen karakterleri içerdiğinden emin olmalısınız. Bu karakter grubunu kullanmak için bir URL oluşturmak, genellikle biri atlama, diğeri değiştirme olmak üzere iki soruna neden olur:

  • İşlemek istediğiniz karakterler yukarıdaki grubun dışında bulunuyor. Örneğin, yabancı dillerdeki 上海+中國 gibi karakterlerin yukarıdaki karakterler kullanılarak kodlanması gerekir. Popüler kurallara göre, boşluklar (URL'lerde izin verilmeyen alanlar) genellikle artı '+' karakteri kullanılarak gösterilir.
  • Yukarıdaki karakterler arasında ayrılmış karakterler olarak yer almaktadır ancak gerçek anlamda kullanılmaları gerekir. Örneğin, ?, URL'lerde sorgu dizesinin başlangıcını belirtmek için kullanılır. "? ve Gizemler" dizesini kullanmak isterseniz '?' karakterini kodlamanız gerekir.

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

Yaygın olarak kodlama gerektiren karakterler

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

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

Kullanıcı girişinden aldığınız bir URL'yi dönüştürmek bazen karmaşık bir iştir. Örneğin, bir kullanıcı "5th&Main Street" olarak bir adres girebilir. Genel olarak, tüm kullanıcı girişlerini sabit karakterler olarak ele alarak, URL'nizi kendi bölümlerinden oluşturmanız gerekir.

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