URL Encoding
URL Kodlama (Yüzde Kodlama)
URL'lerdeki özel ve ASCII olmayan karakterleri, yüzde işareti (%) ardından karakterin UTF-8 baytlarını temsil eden iki onaltılık rakamla değiştirerek temsil etme yöntemi.
Teknik Detay
URL kodlama (RFC 3986) güvensiz karakterleri %HH ile değiştirir; burada HH onaltılık UTF-8 baytlarıdır. Ayrılmamış karakterler (kodlanmaz): A-Z, a-z, 0-9, -, _, ., ~. Ayrılmış karakterler (veri olarak kullanıldığında kodlanır): :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =. Boşluk URL'lerde %20 veya form verilerinde (application/x-www-form-urlencoded) + olur. Unicode karakterleri önce UTF-8 baytlarına kodlanır, sonra her bayt yüzde kodlanır: 'ñ' → %C3%B1 (2 UTF-8 bayt). Çift kodlama, zaten kodlanmış dize tekrar kodlandığında oluşur: %20 → %2520. JavaScript API: encodeURIComponent() (bileşen kodlar), encodeURI() (URI ayırıcılarını korur). Yaygın güvenlik açıkları: %2F (/) veya %00 (null bayt) ile yol geçişi.
Ornek
```javascript
// URL encode/decode
encodeURIComponent('hello world & more');
// → 'hello%20world%20%26%20more'
decodeURIComponent('hello%20world');
// → 'hello world'
// Build query string
const params = new URLSearchParams({ q: 'pdf merge', page: '1' });
params.toString(); // 'q=pdf+merge&page=1'
```