%25">
Rehber Yayın: 17 Temmuz 2026 5 dk okuma

Query String Nasıl Çalışır? (Örneklerle)

Bir e-ticaret sitesinde ürünleri filtrelediğinizde veya bir reklamdan bir siteye tıkladığınızda, adres çubuğunda ? işaretinden sonra gelen uzun bir metin belirir. Buna query string denir. Bu rehberde query string'in anatomisini, çoklu değerlerin nasıl taşındığını, UTM/izleme parametrelerini ve bir query string'i nasıl parçalayıp JSON'a çevireceğinizi gerçek URL örnekleriyle gösteriyoruz.

Query string nedir?

Kısa cevap Query string, bir URL'nin ? işaretinden sonra gelen ve & ile ayrılan anahtar=değer çiftleridir (örn. ?renk=kirmizi&beden=42). Bir web sayfasına veya API isteğine ek, isteğe bağlı parametre göndermek için kullanılır; sunucu bu parametrelere göre farklı içerik, filtre veya sıralama döndürebilir.

Query string, URL'nin geri kalanından (protokol, host, yol) tamamen ayrı ve isteğe bağlıdır — bir sayfa query string olmadan da çalışabilir. Kendi query string'inizi parçalamak isterseniz query parçalama aracını kullanabilirsiniz.

Query string'in anatomisi

Kısa cevap Bir query string üç seviyeden oluşur: ? başlangıcı belirtir, her anahtar=değer çifti bir parametredir, çiftler arasına & konur. Değerler her zaman encodeURIComponent ile kodlanmış olmalıdır — özellikle boşluk ve Türkçe karakter içeriyorsa.
Örnek URL: https://magaza.ornek.com/urun?renk=k%C4%B1rm%C4%B1z%C4%B1&beden=42&stokta=true
BileşenDeğerAçıklama
Ayırıcı?Yolun bittiğini, query string'in başladığını belirtir
1. parametrerenk=kırmızıKodlanmış hali: renk=k%C4%B1rm%C4%B1z%C4%B1
2. parametrebeden=42Rakam olduğundan kodlamaya gerek yok
3. parametrestokta=trueQuery string'de her değer aslında bir metindir (string)

Kaynak: WHATWG URL Standardı — URLSearchParams davranışı. Tüm örnekler tarayıcının URLSearchParams API'siyle doğrulanmıştır.

Benzersiz içgörü Query string'deki her değer, tarayıcı ve sunucu için her zaman bir metindir (string)stokta=true yazsanız bile bu JavaScript'te boolean true değil, "true" metnidir. Kendi kodunuzda tip dönüşümünü (=== "true" veya Number(...)) elle yapmanız gerekir; aksi halde beklenmedik "her zaman truthy" hataları alırsınız.

Aynı anahtarla birden fazla değer nasıl taşınır?

Kısa cevap Standart tek bir biçim yoktur; en yaygın üç yöntem: anahtarı tekrarlamak (renk=kirmizi&renk=mavi), köşeli parantez eklemek (renk[]=kirmizi&renk[]=mavi) veya değerleri virgülle birleştirmek (renk=kirmizi,mavi). Hangisinin kullanılacağı sunucu tarafındaki framework'e (Express, Rails, Django vb.) bağlıdır.
Çoklu değer taşıma biçimleri karşılaştırması
BiçimÖrnekNerede yaygın
Anahtar tekrarıtag=js&tag=webURLSearchParams.getAll(), çoğu web sunucusu
Köşeli paranteztag[]=js&tag[]=webPHP, Rails, bazı Express eklentileri
Virgülle ayrılmıştag=js,webBirçok REST API (tek parametre olarak kalır)

Kendi query string'ini parçala

Bir URL veya query string yapıştır; tüm anahtar=değer çiftlerini okunabilir bir tabloda gör, bilinen izleme parametrelerini otomatik işaretle.

Query Parçalama Aracını Aç →

UTM ve izleme parametreleri nedir?

Kısa cevap UTM parametreleri (utm_source, utm_medium, utm_campaign vb.), bir ziyaretçinin hangi kaynaktan geldiğini analiz araçlarına (Google Analytics gibi) bildirmek için query string'e eklenen izleme parametreleridir. Sayfanın işlevselliğini etkilemezler, yalnızca pazarlama istatistiği amaçlıdır.

Örnek: https://ornek.com/haber?utm_source=instagram&utm_medium=cpc&utm_campaign=yaz2026 adresinde utm_source=instagram, ziyaretçinin Instagram'dan geldiğini; utm_medium=cpc tıklama başına ödemeli bir reklamdan geldiğini gösterir. Benzer amaçlı diğer izleme parametreleri arasında Google Ads'ten gelen gclid, Facebook'tan gelen fbclid ve Microsoft Ads'ten gelen msclkid sayılabilir.

  • utm_source: Trafiğin geldiği platform (instagram, newsletter, google).
  • utm_medium: Trafiğin türü (cpc, email, social, organic).
  • utm_campaign: Kampanyanın adı (yaz2026, blackfriday).
  • gclid / fbclid / msclkid: Reklam platformlarının otomatik eklediği tıklama kimlikleri; bir bağlantıyı başkasıyla paylaşmadan önce bu parametrelerin temizlenmesi önerilir.

Bir bağlantıyı paylaşmadan önce bu izleme parametrelerinden arınmış, temiz bir hâlini oluşturmak isterseniz araç sayfasındaki URL Temizleyici mini aracını kullanabilirsiniz — tek tıkla tüm bilinen izleme parametrelerini kaldırır.

Query string'i JSON'a çevirme

Kısa cevap Query string'deki her anahtar=değer çifti önce decode edilir, sonra bir JavaScript nesnesine (JSON) anahtar-değer olarak eklenir. Örneğin ?ad=Ahmet&aktif=true, {"ad":"Ahmet","aktif":"true"} nesnesine döner — dikkat: aktif değeri hâlâ bir metindir, boolean değildir.

Bu dönüşüm özellikle bir API isteğini debug ederken veya bir query string'i bir uygulama konfigürasyonuna aktarırken işe yarar. Elle yazmak yerine Query String → JSON mini aracını kullanarak herhangi bir query string'i anında JSON'a çevirebilirsiniz.

Sık sorulan sorular

Query string nedir?
Bir URL'nin ? işaretinden sonra gelen ve & ile ayrılan anahtar=değer çiftleridir (örn. ?renk=kirmizi&beden=42). Bir sayfaya veya API isteğine ek parametre göndermek için kullanılır.
Query string nasıl oluşturulur?
Anahtar=değer çiftleri & ile ayrılır ve her değer encodeURIComponent ile kodlanır. Örnek: renk=kırmızı ve beden=42 için sonuç renk=k%C4%B1rm%C4%B1z%C4%B1&beden=42 olur.
Aynı anahtarla birden fazla değer nasıl gönderilir?
En yaygın üç yöntem: anahtarı tekrarlamak (renk=kirmizi&renk=mavi), köşeli parantez eklemek (renk[]=kirmizi&renk[]=mavi) veya virgülle birleştirmek (renk=kirmizi,mavi). Sunucu tarafındaki framework'e göre seçim yapılır.
UTM parametreleri nedir?
Bir ziyaretçinin hangi kaynaktan geldiğini analiz araçlarına bildirmek için query string'e eklenen izleme parametreleridir (utm_source, utm_medium, utm_campaign vb.). Sayfanın çalışmasını etkilemez, yalnızca istatistik amaçlıdır.
Query string'i JSON'a nasıl çeviririm?
Her anahtar=değer çifti decode edilip bir JSON nesnesine eklenir. ?ad=Ahmet&aktif=true önce {"ad":"Ahmet","aktif":"true"} nesnesine döner; değerler her zaman metin olarak kalır.

İlgili rehberler

Metodoloji & kaynaklar. Bu yazıdaki tüm örnekler, tarayıcının yerleşik URLSearchParams ve URL API'leri çalıştırılarak üretilip doğrulanmıştır. Kaynaklar: WHATWG URL Standardı · RFC 3986 · MDN Web Docs (URLSearchParams). Son güncelleme: 17 Temmuz 2026. Yazı bilgilendirme amaçlıdır; üretim kodunuzda kullanmadan önce kendi ortamınızda test etmeniz önerilir.
Standartlar: RFC 3986 · WHATWG URL · MDN Web Docs · Güncelleme: 17 Temmuz 2026
Tüm işlemler tarayıcınızda çalışır, veri sunucuya gönderilmez. · URLKodla — BirAraçta