Yüzde kodlama (percent-encoding) nedir?+−
Yüzde kodlama (URL kodlama olarak da bilinir), bir karakteri % işareti ve UTF-8 gösterimindeki her bayt için iki haneli onaltılık değeriyle değiştirir. Bir URL'nin boşluk (%20), ve işareti (%26) ya da bir emoji taşıyabilmesinin, bunlar URL'nin kendi söz dizimiyle karıştırılmadan, yolu budur.
encodeURIComponent ile encodeURI arasındaki fark nedir?+−
encodeURIComponent, ayrılmamış birkaç karakter dışında her şeyi kodlar; bu yüzden tek bir değer için - bir sorgu parametresi ya da bir yol segmenti için - doğru seçimdir, çünkü aksi halde URL yapısı olarak okunacak & ve = gibi karakterleri de kodlar. encodeURI ise tüm bir URL içindir: :, /, ?, & ve # gibi yapısal karakterleri olduğu gibi bırakır ki URL çalışmaya devam etsin, yalnızca boşluk gibi bir URL'nin gerçekten içeremeyeceği karakterleri kodlar. Tüm bir URL'yi encodeURIComponent'ten geçirmek, eğik çizgileri ve iki nokta işaretlerini de kodlayacağı için URL'yi bozar.
escape() ve unescape() hâlâ kullanılmalı mı?+−
Hayır. Her ikisi de, encodeURIComponent'i de tanıtan JavaScript standardının ilk sürümünde kullanımdan kaldırılmıştır; çünkü escape(), ASCII olmayan karakterleri HTTP ve modern URL'lerin beklediği şekilde kodlamaz - Latin-1 dışındaki her şey için decodeURIComponent'in geri okuyamadığı standart dışı bir %uXXXX biçimi kullanır. Bu araç, bu seçeneği yalnızca eski bir sistemin ürettiği çıktıyı incelemenize izin vermek için tutar.
Sorgu dizesindeki + işareti neden boşluğa dönüşür?+−
Sorgu dizeleri tarihsel olarak HTML form gönderimlerinden gelir ve bunlar application/x-www-form-urlencoded biçimini kullanır: gerçek bir boşluğu %20 yerine + ile kodlar; bu aracın ayrıştırıcısı (ve JavaScript'in URLSearchParams'ı) çözerken ikisini de boşluk olarak ele alır. Bir değerde gerçekten bir artı işareti gerekiyorsa, bunun kendisinin %2B olarak yüzde kodlanması gerekir.
?tag=a&tag=b gibi tekrar eden bir parametrede ne olur?+−
Hiçbir şey kaybolmaz - bu araç her tekrarı, sırasıyla, sorgu parametresi tablosunda kendi satırı olarak korur; tıpkı çoğu sunucu çatısının tekrar eden bir anahtarı bir listede toplaması gibi. Bir satırı düzenlemek ya da kaldırmak diğerlerini etkilemez.
Ayrıştırıcı, yapıştırdığım URL için neden https:// varsaydı?+−
example.com/path gibi bir dizenin protokolü yoktur, bu yüzden ne bir tarayıcı ne de bu araç, bunun bir web adresi mi, başka bir protokol için mi yoksa düz metin mi olduğunu anlayabilir. Reddetmek yerine, ayrıştırıcı https:// varsayar, böylece yine de inceleyip düzenleyebilirsiniz - bu her olduğunda bir ipucu görünür ve farklı bir şema amaçlandıysa Protokol alanını düzeltebilirsiniz.