Skip to content

Yerleşik URL Ayrıştırıcılı URL Kodlayıcı ve Çözücü

URL'leri yerleşik URL ayrıştırıcısı ile gerçek zamanlı kodlayın veya çözün. İkili mod: encodeURI ve encodeURIComponent. %100 gizli, hiçbir veri sunucuya gönderilmez.

Takip Yok Tarayıcıda Çalışır Ücretsiz
Çözülmüş
Kodlanmış
RFC 3986 uyumluluğu, encodeURI/encodeURIComponent doğruluğu ve UTF-8 kodlama tutarlılığı için incelendi — Go Tools Mühendislik Ekibi · Apr 7, 2026

URL Kodlama (Yüzde Kodlama) Nedir?

Resmi adıyla yüzde kodlama olan URL kodlama, RFC 3986'da tanımlanan ve bir Uniform Resource Identifier (URI) içinde izin verilmeyen ya da özel anlam taşıyan karakterleri temsil etmek için kullanılan bir mekanizmadır. Her güvenli olmayan baytı, yüzde işaretinin (%) ardından iki onaltılık rakamla değiştirir — örneğin boşluk %20, ampersand %26 olur ve Çince 中 karakteri %E4%B8%AD olur (üç UTF-8 baytı, her biri yüzde kodlu).

URL'ler yalnızca ASCII karakter kümesinden sınırlı bir karakter alt kümesini içerebilir. Harfler, rakamlar ve birkaç sembol (- _ . ~) “ayrılmamış” sayılır ve olduğu gibi yer alabilir. Boşluklar, noktalama işaretleri ve tüm Unicode aralığı dahil diğer her karakter, bir URL içinde güvenle iletilebilmek için yüzde kodlu olmalıdır. ?, &, =, # gibi ayrılmış karakterler URL sözdiziminde yapısal ayırıcılardır; bu nedenle ayırıcı yerine düz veri olarak kullanıldıklarında kodlanmaları gerekir.

Yüzde kodlama web genelinde temeldir: tarayıcılar form gönderimlerini kodlar, API'ler kodlanmış sorgu parametreleri gerektirir, OAuth akışları doğru kodlanmış yönlendirme URI'lerine bağlıdır ve uluslararasılaştırılmış alan adları ASCII dışı karakterler için kodlamaya dayanır. Kodlamayı yanlış yapmak bozuk bağlantılara, güvenlik açıklarına (açık yönlendirme saldırıları gibi) ve veri bozulmasına yol açar.

Bu araç hem encodeURI hem de encodeURIComponent modlarını, yerleşik bir URL yapı ayrıştırıcısını, gerçek zamanlı dönüşümü ve çift kodlama algılamayı sunar — hepsi tarayıcınızda gizli olarak çalışır.

URL kodlama genellikle diğer web geliştirme araçlarıyla birlikte kullanılır. Bir URL'yi bir JWT belirtecine veya API yüküne gömmek için Base64 ile kodlamanız ya da yapısını incelemek için URL dizeleri içeren JSON verilerini biçimlendirmeniz gerekebilir. Yüzde kodlamanın bayt düzeyinde nasıl çalıştığına dair daha derinlemesine bir anlatım için geliştiriciler için kapsamlı URL kodlama rehberimizi okuyun.

// Encode a query parameter value
const param = encodeURIComponent('hello world & goodbye');
console.log(param); // → 'hello%20world%20%26%20goodbye'

// Encode a full URL (preserves structure)
const url = encodeURI('https://example.com/path name?q=hello world');
console.log(url); // → 'https://example.com/path%20name?q=hello%20world'

// Decode a percent-encoded string
const decoded = decodeURIComponent('hello%20world%20%26%20goodbye');
console.log(decoded); // → 'hello world & goodbye'

// Build a URL with encoded parameters
const base = 'https://api.example.com/search';
const query = `?q=${encodeURIComponent('你好')}&lang=zh`;
console.log(base + query); // → 'https://api.example.com/search?q=%E4%BD%A0%E5%A5%BD&lang=zh'

Temel Özellikler

İkili Kodlama Modları

Kullanım durumunuza tam uyacak şekilde encodeURI (URL yapısını korur) ve encodeURIComponent (parametre değerleri için her şeyi kodlar) arasında geçiş yapın.

Yerleşik URL Ayrıştırıcısı

Her URL'yi protokol, ana bilgisayar, port, yol, sorgu parametreleri ve fragment olarak otomatik ayırır — her alan düzenlenebilir ve yeni bir URL'ye yeniden inşa edilebilir.

Gerçek Zamanlı Dönüşüm

Yazdıkça anında kodlayın ve çözün — tıklanacak düğme yok; sonuçlar her tuş vuruşunda diğer alanda hemen görünür.

%100 Tarayıcıda

Tüm işlemler yerel JavaScript API'leri kullanılarak tarayıcınızda yerel olarak gerçekleşir. Veriniz cihazınızdan asla çıkmaz — sunucuya yükleme yok, izleme yok.

Tam UTF-8 Desteği

Çince, Japonca, Korece, Arapça, emoji ve her türlü Unicode metni doğru UTF-8 bayt kodlama ve çözmesiyle hatasız işler.

Çift Kodlama Algılama

%2520 (yüzde kodlu bir %20) gibi çift kodlama sorunlarını otomatik algılar ve uyarır; en yaygın URL kodlama hatalarından birinden kaçınmanıza yardımcı olur.

Örnekler

Bozuk URL'yi Çöz

https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%26lang%3Den
https://example.com/search?q=hello world&lang=en

Tamamen yüzde kodlu bir URL, insan tarafından okunabilir biçimine geri çözülür ve özgün sorgu parametreleri ile yapı ortaya çıkar

Çince Karakterler

https://example.com/search?q=你好世界
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C

Çince karakterler UTF-8 bayt dizilerine dönüştürülür ve yüzde kodlu hâle getirilir

Sorgu Parametreleri

https://example.com/api?name=John Doe&role=admin&lang=en&sort=date desc
https://example.com/api?name=John%20Doe&role=admin&lang=en&sort=date%20desc

Sorgu parametre değerlerindeki boşluklar ve özel karakterler, URL yapısı korunarak yüzde kodlu hâle getirilir

Tam URL

https://user:pass@example.com:8080/path/to/page?key=value&arr[]=1#section-2
https://user:pass@example.com:8080/path/to/page?key=value&arr%5B%5D=1#section-2

Kimlik bilgileri, port, yol, köşeli parantezli sorgu parametreleri ve fragment tanımlayıcısı içeren eksiksiz bir URL

OAuth Yönlendirme URI'si

https://auth.example.com/authorize?redirect_uri=https://myapp.com/callback?code=abc&state=xyz
https://auth.example.com/authorize?redirect_uri=https%3A%2F%2Fmyapp.com%2Fcallback%3Fcode%3Dabc%26state%3Dxyz

redirect_uri değerinin kendisi, özel karakterleri dış URL'nin parçası olarak yorumlanmasın diye kodlanması gereken tam bir URL içerir

Nasıl Kullanılır

  1. 1

    URL veya Kodlu Dize Girin

    Kodlamak için çözülmüş alana bir URL yapıştırın veya çözmek için kodlu alana yüzde kodlu bir dize yapıştırın. Kullanım durumunuza göre encodeURI veya encodeURIComponent modunu seçin.

  2. 2

    Sonuçları ve Ayrıştırılan Yapıyı Görün

    Siz yazdıkça diğer alan anında güncellenir. URL ayrıştırıcısı URL'yi protokol, ana bilgisayar, port, yol, sorgu parametreleri ve fragment olarak ayırır — hepsi düzenlenebilir.

  3. 3

    Kopyala veya Yeniden Oluştur

    Kodlanmış veya çözülmüş sonucu kopyalamak için Kopyala düğmesine tıklayın. URL bileşenlerini tek tek düzenleyin ve değiştirilen parçalardan yeni bir URL inşa etmek için Yeniden Oluştur düğmesine tıklayın.

Yaygın Hatalar

Çift Kodlama (%20 yerine %2520)

Çift kodlama, hâlihazırda kodlanmış bir URL'nin tekrar kodlanmasıyla oluşur. %20 içindeki % işareti %25 olarak kodlanır ve %20, %2520'ye dönüşür. Bu URL'yi bozar; çünkü sunucu bir boşluk yerine düz bir %20 dizesi görür.

✗ Yanlış
https://example.com/path%2520with%2520spaces
✓ Doğru
https://example.com/path%20with%20spaces

Yol Parçalarında Boşluğun + Olarak Kodlanması

+ karakteri yalnızca application/x-www-form-urlencoded biçiminde (HTML formlarından gelen sorgu dizelerinde) boşluğu temsil eder. URL yol parçalarında + boşluk değil, düz bir artı işareti olarak yorumlanır. Yol parçalarındaki boşluklar için her zaman %20 kullanın.

✗ Yanlış
https://example.com/my+file+name.pdf
✓ Doğru
https://example.com/my%20file%20name.pdf

Sorgu Parametre Değerlerinde encodeURI Kullanma

encodeURI(), &, = ve diğer ayrılmış karakterleri kodlamaz; bu nedenle bu karakterleri içeren bir parametre değerinde kullanılması sorgu dizesi yapısını bozar.

✗ Yanlış
encodeURI('key=value&more')  → 'key=value&more' (& not encoded!)
✓ Doğru
encodeURIComponent('key=value&more')  → 'key%3Dvalue%26more'

UTF-8 Olmayan Kodlama Varsaymak

Bazı eski sistemler URL parametreleri için Latin-1 veya Shift-JIS gibi kodlamalar kullanır. Modern standartlar UTF-8 gerektirir. Shift-JIS kodlu bir parametreyi UTF-8 çözücüyle çözmek bozuk metin üretir.

✗ Yanlış
Decoding %82%B1%82%F1 as UTF-8 (this is Shift-JIS for こん)
✓ Doğru
Using UTF-8: %E3%81%93%E3%82%93 correctly decodes to こん

Bağlam Olmadan Göreli Yolları Kodlamak

../images/photo.jpg gibi göreli bir yolu encodeURIComponent ile kodlamak, eğik çizgileri ve noktaları yüzde kodlu dizilere dönüştürerek yol yapısını bozar. encodeURI() kullanın veya yalnızca tek tek yol parçalarını kodlayın.

✗ Yanlış
encodeURIComponent('../images/photo.jpg')  → '..%2Fimages%2Fphoto.jpg'
✓ Doğru
Encode each segment: '../images/' + encodeURIComponent('my photo.jpg')

Yaygın Kullanım Senaryoları

Bozuk URL'lerde Hata Ayıklama
Sunucu günlüklerinden, hata mesajlarından veya tarayıcı geliştirici araçlarından gelen yüzde kodlu URL'leri çözerek özgün, insan tarafından okunabilir metni okuyun.
API Geliştirme
REST API çağrıları için sorgu parametre değerlerini kodlayın; &, = ve boşluk gibi özel karakterlerin istek URL'sini bozmamasını sağlayın.
OAuth Akışı Kurulumu
Kimlik doğrulama hatalarını önlemek için OAuth yetkilendirme URL'lerinde redirect_uri ve diğer URL parametrelerini doğru biçimde kodlayın.
Uluslararası URL'ler
Uluslararasılaştırılmış web uygulamaları için Çince, Japonca, Korece, Arapça veya diğer ASCII dışı karakterler içeren URL'leri kodlayın ve çözün.
Pazarlama Bağlantısı Çözümlemesi
E-posta kampanyaları ve reklam platformlarındaki izleme URL'lerini çözerek gömülü UTM parametrelerini ve yönlendirme zincirlerini anlayın.
URL Yapısı İncelemesi
Karmaşık URL'leri bileşen parçalarına — protokol, ana bilgisayar, port, yol, sorgu parametreleri ve fragment — ayırarak çözümleyin ve değiştirin.

Teknik Ayrıntılar

RFC 3986 Ayrılmış ve Ayrılmamış Karakterler
RFC 3986, hiçbir zaman kodlama gerektirmeyen ayrılmamış karakterleri (A-Z, a-z, 0-9, -, ., _, ~) ve URI ayırıcı görevi gören, veri olarak kullanıldıklarında yüzde kodlanması gereken ayrılmış karakterleri (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) tanımlar.
UTF-8 Bayt Kodlama Akışı
ASCII dışı karakterler önce Unicode kod noktasına dönüştürülür, ardından UTF-8 baytları olarak (kod noktası aralığına göre 1-4 bayt) kodlanır ve son olarak her bayt %XX olarak yüzde kodlanır. Örneğin: é (U+00E9) → UTF-8 baytları C3 A9 → %C3%A9. 🎉 emojisi (U+1F389) → UTF-8 baytları F0 9F 8E 89 → %F0%9F%8E%89.
URL ile URI Terminolojisi
URI (Uniform Resource Identifier), her tanımlayıcı dize için genel terimdir. URL (Uniform Resource Locator), ayrıca erişim mekanizmasını (https:// gibi) belirten bir URI'dir. RFC 3986'daki kodlama kuralları tüm URI'ler için geçerlidir. JavaScript API'si URI terminolojisini kullanır (encodeURI, decodeURI); günlük kullanım ise URL'yi tercih eder.

En İyi Uygulamalar

İş İçin Doğru Modu Seçin
Tek tek sorgu parametre anahtarları ve değerleri için encodeURIComponent() kullanın. encodeURI() yalnızca elinizde tam bir URL varken ve yapısını bozmadan güvenli olmayan karakterleri kodlamak istediğinizde kullanın. & veya = ya da diğer ayrılmış karakterleri içerebilecek parametre değerlerinde encodeURI() kullanmayın.
Çift Kodlamadan Kaçının
Bir dizeyi kodlamadan önce zaten kodlu olup olmadığını kontrol edin. Mevcut % dizilerini arayın. Hâlihazırda kodlu bir dizeyi kodlamak %20'yi %2520'ye, %3D'yi %253D'ye ve benzerine çevirir. Emin değilseniz önce çözün, sonra bir kez kodlayın.
Sunucu Tarafında Çözün
Çoğu web çatısı, URL parametrelerini uygulama kodunuz görmeden önce otomatik olarak çözer. Çatınızın çoktan çözdüğü parametreleri elle yeniden çözmekten kaçının — özgün değer düz yüzde dizileri içeriyorsa bu sorunlara yol açabilir.
OAuth ve API İmzalama için Değerleri Kodlayın
OAuth 1.0 imza temel dizeleri ve birçok API imzalama algoritması katı RFC 3986 yüzde kodlaması gerektirir. encodeURIComponent() kullanın; ardından spesifikasyon gerektiriyorsa kodlanmamış kalan karakterleri (!, ', (, ), * gibi) yüzde kodlu eşdeğerleriyle değiştirin.

Sık Sorulan Sorular

URL kodlama nedir ve neden gereklidir?
URL kodlama (yüzde kodlama), güvenli olmayan karakterleri %XX onaltılık dizilere dönüştürerek URL'lerde güvenle yer almalarını sağlar. Boşluk, ampersand ve ASCII dışı metin gibi karakterler kodlanmalıdır; aksi takdirde URL yapısını bozar veya tarayıcılar ile sunucular tarafından yanlış yorumlanır. RFC 3986'da tanımlanan bu mekanizma, URL'lerin yalnızca sınırlı bir US-ASCII karakter kümesini — harfler (A-Z, a-z), rakamlar (0-9) ve tire, alt çizgi, nokta, tilde gibi birkaç sembolü — içerebilmesi nedeniyle çalışır. Bu güvenli kümenin dışındaki her karakter, yüzde işaretinin (%) ardından karakterin bayt değerini temsil eden iki onaltılık rakamla kodlanır. Örneğin boşluk %20, eğik çizgi %2F, ampersand ise %26 olur. &, =, ? ve # gibi karakterler URL'lerde özel yapısal anlam taşır — sorgu parametrelerini, fragmentleri ve diğer bileşenleri ayırırlar. Kodlama olmadan parametre değerindeki düz bir &, parametre ayırıcı olarak yanlış yorumlanır ve URL yapısı tamamen bozulur.
encodeURI ile encodeURIComponent arasındaki fark nedir?
encodeURI(), :, /, ? ve # gibi yapısal karakterleri koruyarak tam bir URL'yi kodlar. encodeURIComponent() ise harfler, rakamlar ve - _ . ~ dışında her şeyi kodlar; bu da onu tek tek sorgu parametre değerlerini kodlamak için doğru tercih hâline getirir. Parametre anahtarları ile değerleri için encodeURIComponent(), yalnızca eksiksiz URL'ler için ise encodeURI() kullanın. Örneğin encodeURI('https://example.com/path name') ifadesi, :// ve / karakterlerini koruyarak 'https://example.com/path%20name' üretir. encodeURIComponent() çok daha agresiftir — :, /, ?, #, & ve = karakterlerini de kodlar. Ampersand içeren bir parametre değerinde encodeURI() kullanırsanız, & kodlanmadan geçer ve parametre ayırıcısı olarak yanlış yorumlanır. encodeURIComponent() bunu doğru biçimde %26 olarak kodlar. Bu ikisini karıştırmak, web uygulamalarındaki URL kaynaklı hataların en yaygın nedenlerinden biridir.
URL kodlama, HTML kodlama ile aynı mıdır?
Hayır. URL kodlama, karakterleri URL'ler için %XX onaltılık dizilere dönüştürür (RFC 3986); HTML kodlama ise karakterleri HTML belgeleri için & ve < gibi varlıklara dönüştürür. Tamamen farklı amaçlara hizmet ederler ve birbirinin yerine asla kullanılmamalıdır. URL kodlama, URL'ler içindeki veri taşıması içindir — boşluk %20 olur. HTML kodlama, içeriğin HTML'de güvenli biçimde gösterilmesi içindir — ampersand & olur. Yaygın bir hata, HTML kodlamasını URL parametrelerine ya da tersini uygulamaktır. Örneğin URL'de boşluğu   olarak kodlamak çalışmaz — %20 ya da + olmalıdır. Aynı şekilde HTML metninde < yerine %3C kullanmak istenen kaçışı sağlamaz.
URL'mi bir curl komutunda kullandığımda neden bozuluyor?
Kabuk, URL'deki özel karakterleri curl görmeden önce yorumlar: & komutları arka planda çalıştırır, ? globbing tetikler, # ise yorum başlatır. Bunu çözmek için URL'yi tek tırnak içine alın: curl 'https://example.com/api?key=value&page=2#section'. Tek tırnaklar, kabuğun herhangi bir özel karakteri yorumlamasını engeller. Ampersand (&) en sık karşılaşılan sorundur — kabuğa kendinden önceki komutu arka planda çalıştırmasını söyler ve URL'yi ilk & noktasında bölerek sonrasını atar. Alternatif olarak tek tek karakterleri ters eğik çizgi ile kaçırabilirsiniz; ancak tüm URL'yi tırnağa almak daha basit ve daha az hata yapmaya açıktır. URL'niz tek tırnak da içeriyorsa çift tırnak kullanın ve gömülü dolar işaretleri ile gravisleri kaçırın.
Çince karakterler URL'lerde neden %E4%B8%AD gibi dizilere dönüşüyor?
Çince karakterler önce UTF-8 baytlarına dönüştürülür, ardından her bayt %XX olarak yüzde kodlu hâle getirilir. 中 karakteri (U+4E2D), üç UTF-8 baytı (E4, B8, AD) hâline gelir ve %E4%B8%AD üretir — bu nedenle bir Çince karakter URL'de 9 karaktere genişler. Bu üç adımlı süreç — karakter, Unicode kod noktasına; kod noktası UTF-8 baytlarına; baytlar yüzde kodlu onaltılığa — tüm ASCII dışı karakterler için geçerlidir. Emojiler genellikle 4 UTF-8 baytı gerektirir ve böylece yüzde kodlandığında 12 karaktere genişler. URL çözüldüğünde işlem tersine işler: onaltılık değerler yeniden baytlara, baytlar UTF-8 olarak yorumlanır ve özgün karakterler geri yüklenir.
OAuth redirect_uri parametresini kodlamalı mıyım?
Evet, her zaman encodeURIComponent() ile kodlayın. redirect_uri, sorgu parametre değeri olarak gömülmüş tam bir URL'dir; bu nedenle özel karakterlerinin (?, &, =) kodlanması gerekir; aksi hâlde dış URL yapısının parçası olarak yanlış yorumlanırlar. Örneğin redirect_uri=https://myapp.com/callback?code=abc&state=xyz kodlanmazsa, yetkilendirme sunucusu redirect_uri'yi yalnızca https://myapp.com/callback?code=abc olarak görür; state=xyz ise dış URL'nin ayrı bir parametresi olarak ayrıştırılır. Doğru kodlanmış sürüm: redirect_uri=https%3A%2F%2Fmyapp.com%2Fcallback%3Fcode%3Dabc%26state%3Dxyz.
Node.js querystring ile URLSearchParams arasındaki fark nedir?
Yeni projelerde URLSearchParams kullanın — bu WHATWG standardıdır, tarayıcı davranışıyla örtüşür ve Node.js ile tarayıcılarda aynı şekilde çalışır. querystring modülü eskidir ve artık aktif olarak geliştirilmemektedir. Temel farklar: URLSearchParams boşlukları + olarak kodlar (form kodlama standardı), tekrarlanan anahtarları getAll() ile yönetir ve entries(), keys() ve values() yöntemleriyle yinelenebilir bir arayüz sağlar. querystring modülü boşlukları %20 olarak kodlar ve dizi işlemede tuhaflıkları vardır (key=1&key=2 ifadesi { key: ['1', '2'] } olur). URLSearchParams standartlara uygundur ve Node.js belgelerinin kendisi tarafından önerilir.
Python, JavaScript ve Java'da bir URL'yi nasıl kodlarım?
JavaScript: encodeURIComponent('hello world') ifadesi 'hello%20world' üretir. Python: urllib.parse.quote('hello world') ifadesi 'hello%20world' üretir. Java: URLEncoder.encode('hello world', StandardCharsets.UTF_8) ifadesi 'hello+world' üretir (RFC 3986 için + yerine %20 koyun). JavaScript'te parametre değerleri için encodeURIComponent(), tam URL'ler için encodeURI() kullanın. Python 3'te yol parçaları için urllib.parse.quote(), sorgu parametreleri için urllib.parse.urlencode() kullanın — urlencode({'q': 'hello world'}) ifadesi 'q=hello+world' üretir. Java'da URLEncoder'ın form kodlama (boşlukları + olarak) kullandığını unutmayın. Eksiksiz URI'ler oluşturmak için java.net.URI veya Apache HttpClient'ın URIBuilder sınıfını kullanın.
URL kodlama tarafından kodlanmayan karakterler hangileridir?
RFC 3986, hiçbir zaman kodlanması gerekmeyen 66 ayrılmamış karakter tanımlar: A-Z, a-z, 0-9, tire (-), nokta (.), alt çizgi (_) ve tilde (~). Bunlar, bir URL'nin herhangi bir kısmında olduğu gibi yer alabilir. Ayrılmış karakterlere — :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ;, ve = — yapısal rollerinde (örneğin sorgu dizeleri için ?) izin verilir, ancak düz veri olarak kullanıldığında yüzde kodlu olmaları gerekir. JavaScript'te encodeURIComponent(), A-Z a-z 0-9 - _ . ~ ile ! ' ( ) * dışında her şeyi kodlarken; encodeURI() ek olarak URL ayırıcısı görevi gören ayrılmış karakterleri korur.
Boşlukları kodlamak için + ile %20 arasındaki fark nedir?
Her ikisi de boşluğu temsil eder, ancak %20 evrensel olarak güvenli seçimdir. + uzlaşımı HTML form kodlamasından (application/x-www-form-urlencoded) gelir ve yalnızca sorgu dizelerinde işe yarar. URL yol parçalarında + boşluk değil, düz bir artı işaretidir. Tereddütte kalırsanız %20 kullanın. + kodlaması HTML belirtiminden kaynaklanır — tarayıcılar formları gönderdiğinde boşluklar + olur ve + karakterinin kendisi %2B olur. %20 kodlaması ise RFC 3986'dan (URI sözdizimi) gelir; burada ayrılmamış olmayan her karakter yüzde işaretinin ardından iki onaltılık rakamla kodlanır. %20 bir URL'nin tüm bölümlerinde çalışır: yol, sorgu ve fragment.
URL kodlama emojileri nasıl işler?
Tek bir emoji genellikle URL'de 12 karaktere genişler. Emojiler önce UTF-8 baytlarına (genellikle 4 bayt) dönüştürülür, ardından her bayt %XX olarak yüzde kodlanır. Örneğin 🚀 (U+1F680) %F0%9F%9A%80 olur. Çoğu emoji U+1F000 ile U+1FFFF veya daha yüksek aralıkta kod noktaları kullanır; bunlar UTF-8'de 4 bayt gerektirir. Cilt tonu değiştiricileri veya ZWJ dizileri olan bazı emojiler birden fazla kod noktasından oluşur ve kodlandığında 30+ karaktere genişleyebilir. Bu genişlemeye rağmen kodlama tamamen tersine çevrilebilir — %F0%9F%9A%80 doğru biçimde 🚀 olarak çözülür.
URL kodlama şifreleme veya güvenlik için kullanılabilir mi?
Hayır. URL kodlama bir şifreleme değildir ve sıfır güvenlik sağlar. Tamamen tersine çevrilebilir, deterministik bir dönüşümdür — yüzde kodlu bir dizeyi herkes anında, anahtar veya sır olmadan çözebilir. Yalnızca özel karakterleri güvenli URL taşımacılığı için kaçırmak amacıyla vardır. URL kodlamayı gizleme veya güvenlik olarak değerlendirmek tehlikeli bir yanılgıdır. Parolalar, belirteçler veya kişisel bilgiler gibi hassas veriler URL kodlamayla değil, HTTPS (tüm isteğin TLS şifrelemesi) ile korunmalıdır. Ayrıca URL'ler genellikle sunucu günlüklerinde, tarayıcı geçmişinde ve referrer üst bilgilerinde görünür; bu nedenle hassas veriler genellikle URL'lerde değil, istek gövdelerinde gönderilmelidir.
Bir URL'nin azami uzunluğu nedir?
Resmi bir azami yok; ancak en geniş uyumluluk için URL'leri 2.000 karakterin altında tutun. Çoğu tarayıcı yaklaşık 2.048 karakteri destekler; Apache varsayılanı 8.190 bayt, Nginx ise 8.192 bayttır. Büyük veriler için POST istekleri kullanın. HTTP belirtimleri (RFC 7230) azami URL uzunluğu tanımlamaz; ancak her katmanda pratik sınırlar vardır. Chrome ve Firefox 100.000 karakteri aşan URL'leri işleyebilirken, IIS sorgu dizelerini 16.384 baytla sınırlar. CDN'ler ve proxy'ler daha sıkı sınırlara sahip olabilir. URL kodlama karakterleri genişlettiğinde — özellikle ASCII dışı metinde — görünüşte kısa bir URL hızla bu sınırlara yaklaşabilir.
URL ile URI arasındaki fark nedir?
URI (Uniform Resource Identifier), bir kaynağı tanımlayan herhangi bir dizedir. URL (Uniform Resource Locator) ise ayrıca https:// gibi bir protokol aracılığıyla nasıl erişileceğini belirten bir URI'dir. Tüm URL'ler birer URI'dir, ancak tüm URI'ler URL değildir — örneğin urn:isbn:0451450523 gibi bir URN, bir kitabı ISBN ile tanımlar; ancak nerede bulunacağını söylemez. Günlük web geliştirmede URL ve URI terimleri çoğu zaman birbirinin yerine kullanılır. RFC 3986'da tanımlanan kodlama kuralları her ikisi için de geçerlidir. JavaScript'in işlevleri encodeURI/decodeURI olarak adlandırılır ve geliştiricilerin çoğu yalnızca URL'lerle çalışsa da daha geniş URI terminolojisini yansıtır.