URL Kodlama/Çözme
URL encode/decode işlemleri
URL Kodlama Nedir?
URL kodlama (URL encoding), aynı zamanda "percent encoding" veya "percent-encoding" olarak da bilinir, URL'lerde ve URI'lerde özel karakterlerin güvenli bir şekilde kodlanması için kullanılan bir yöntemdir. Bu kodlama sistemi, RFC 3986 standardına göre tanımlanmıştır ve web geliştirmede kritik öneme sahiptir.
URL kodlama işlemi, özel karakterleri yüzde işareti (%) ve iki hexadecimal rakamdan oluşan bir kod ile değiştirir. Örneğin, boşluk karakteri %20, artı işareti (+) %2B, ve eşittir işareti (=) %3D olarak kodlanır. Bu sayede, URL'lerde kullanılamayan veya özel anlam taşıyan karakterler güvenli bir şekilde iletilir.
URL Kodlama Nasıl Çalışır?
URL kodlama işlemi, her karakterin ASCII değerini alır ve bu değeri hexadecimal formata dönüştürür. Sonra, bu hexadecimal değer yüzde işareti (%) ile başlayan bir kod olarak gösterilir. Örneğin, 'A' karakterinin ASCII değeri 65'tir, hexadecimal olarak 41'dir ve URL kodlaması %41 olur.
Ancak, güvenli karakterler (alfanumerik karakterler ve bazı özel karakterler) kodlanmaz. RFC 3986 standardına göre, şu karakterler güvenli kabul edilir ve kodlanmaz: A-Z, a-z, 0-9, ve karakterler: - _ . ~. Diğer tüm karakterler kodlanmalıdır.
Yaygın URL Kodlama Örnekleri
İşte en yaygın kullanılan karakterlerin URL kodlamaları:
- Boşluk: %20 veya + (artı işareti)
- Eşittir (=): %3D
- Ampersand (&): %26
- Soru işareti (?): %3F
- Yüzde (%): %25
- Hash (#): %23
- Slash (/): %2F
- Ters slash (\): %5C
URL Kodlama Kullanım Alanları
URL kodlama, web geliştirmede birçok kritik alanda kullanılır:
URL Parametrelerinde Özel Karakterler
Web uygulamalarında, URL parametreleri genellikle query string olarak gönderilir. Bu parametrelerde özel karakterler (boşluk, eşittir, ampersand vb.) bulunabilir. Bu karakterler, URL'nin yapısını bozmamak için kodlanmalıdır. Örneğin, "Merhaba Dünya" gibi bir parametre, "Merhaba%20Dünya" olarak kodlanır.
HTML Form Verilerinin Gönderilmesi
HTML formlarında, application/x-www-form-urlencoded formatı kullanıldığında, form verileri URL kodlanmış format ile gönderilir. Bu sayede, form alanlarındaki özel karakterler güvenli bir şekilde sunucuya iletilir. Modern web uygulamalarında, JSON formatı da kullanılsa bile, URL parametreleri için hala URL kodlama gereklidir.
API İsteklerinde Veri Kodlama
REST API'lerde ve web servislerinde, GET isteklerinde parametreler URL'de gönderilir. Bu parametrelerde özel karakterler varsa, URL kodlama yapılmalıdır. Ayrıca, bazı API'lerde, POST isteklerinde bile URL kodlanmış format kullanılabilir.
Web Güvenliği ve XSS Koruması
URL kodlama, web güvenliği açısından da önemlidir. Özel karakterlerin kodlanması, Cross-Site Scripting (XSS) saldırılarını önlemeye yardımcı olur. Ayrıca, URL'lerdeki özel karakterler, sunucu tarafında yanlış yorumlanabilir ve güvenlik açıklarına yol açabilir.
Dosya Adları ve Yolları
Web sunucularında, dosya adları ve dizin yolları URL'de kullanıldığında, özel karakterler kodlanmalıdır. Özellikle Türkçe karakterler (ğ, ü, ş, ı, ö, ç) ve boşluklar, dosya adlarında bulunabilir ve bunlar URL kodlanmalıdır.
URL Kodlama ve Çözme İşlemleri
URL kodlama (encoding) işlemi, özel karakterleri kodlanmış formata dönüştürür. URL çözme (decoding) işlemi ise, kodlanmış karakterleri orijinal hallerine geri döndürür. Her iki işlem de web geliştirmede sıkça kullanılır.
JavaScript'te, encodeURIComponent() ve decodeURIComponent() fonksiyonları kullanılır. Bu fonksiyonlar, URL parametreleri için özel olarak tasarlanmıştır ve tüm özel karakterleri kodlar/çözer. encodeURI() ve decodeURI() fonksiyonları ise, tüm URL için kullanılır ve bazı karakterleri (/, ?, # vb.) kodlamaz.
URL Kodlama İpuçları ve En İyi Uygulamalar
URL kodlama işlemini doğru kullanmak için bazı önemli ipuçları:
- Parametreler için encodeURIComponent kullanın: URL parametrelerinde, tüm özel karakterleri kodlamak için encodeURIComponent() kullanın
- Boşluk karakteri: Boşluk karakteri %20 veya + olarak kodlanabilir, ancak %20 daha güvenlidir
- Türkçe karakterler: Türkçe karakterler (ğ, ü, ş, ı, ö, ç) mutlaka kodlanmalıdır
- Çift kodlama: Zaten kodlanmış bir string'i tekrar kodlamamaya dikkat edin
- Sunucu tarafı: Sunucu tarafında, gelen parametreleri mutlaka decode edin
URL Kodlama ve Güvenlik
URL kodlama, web güvenliği açısından kritik öneme sahiptir. Özel karakterlerin kodlanmaması, çeşitli güvenlik açıklarına yol açabilir:
- XSS saldırıları: Kodlanmamış özel karakterler, JavaScript kod enjeksiyonuna yol açabilir
- SQL injection: URL parametrelerinde kodlanmamış karakterler, veritabanı sorgularında sorun yaratabilir
- Path traversal: Kodlanmamış slash karakterleri, dosya sistemi erişimine yol açabilir
- Command injection: Özel karakterler, sistem komutlarının çalıştırılmasına neden olabilir
Sık Sorulan Sorular
URL kodlama ve HTML entity encoding arasındaki fark nedir?
URL kodlama, URL'lerde ve URI'lerde kullanılır ve karakterleri yüzde işareti ile kodlar (%20 gibi). HTML entity encoding ise HTML içeriğinde kullanılır ve karakterleri & ile kodlar ( gibi). Her ikisi de farklı amaçlar için kullanılır.
Tüm karakterler kodlanmalı mı?
Hayır, güvenli karakterler (alfanumerik ve bazı özel karakterler) kodlanmaz. Ancak, şüpheli durumlarda tüm karakterleri kodlamak daha güvenlidir.
URL kodlama performansı etkiler mi?
URL kodlama işlemi çok hızlıdır ve performansı önemli ölçüde etkilemez. Modern tarayıcılar ve sunucular, bu işlemi çok verimli bir şekilde gerçekleştirir.
İlgili Hesaplama Araçları
URL kodlama ile ilgili diğer metin işleme araçlarımızı da kullanabilirsiniz:
HTML Entity Çevirici
HTML entity kodlama ve çözme işlemleri.
Base64 Kodlama/Çözme
Base64 encode/decode işlemleri.
Metin Temizleme
Gereksiz karakterleri ve boşlukları temizleme.
SHA256 Hash Hesaplama
Güvenli SHA256 hash hesaplama.
URL kodlama ve çözme aracı, web geliştirme işlerinizde size büyük kolaylık sağlayacaktır. Hızlı, güvenilir ve kullanımı kolay bu araç ile URL parametrelerinizi güvenle kodlayabilir ve çözebilirsiniz.