Junior
Sorgu parametreleri (query) yerine istek gövdesini (body) kullanabilir miyiz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Evet, ama bu, isteğin türüne ve iletilen bilgilere bağlıdır.
Sorgu Parametreleri (Query Parameters)
?işaretinden sonra URL'de anahtar=değer çiftleri olarak iletilir,&ile ayrılır.- Genellikle GET isteklerinde, verileri filtrelemek, sıralamak ve sayfalamak için kullanılır (örneğin:
/api/items?category=electronics&sort=price). - Çoğu tarayıcı ve sunucuda boyut sınırına sahiptir.
- Sunucu günlüklerinde ve tarayıcı geçmişinde görünür (hassas veriler için potansiyel güvenlik sorunu).
- Kolayca önbelleğe alınabilir.
İstek Gövdesi (Request Body)
- HTTP isteği gövdesinde iletilir.
- Çoğunlukla POST, PUT, PATCH isteklerinde, büyük veri miktarlarını iletmek, kaynaklar oluşturmak veya güncellemek için kullanılır (örneğin: form gönderimi, JSON nesnesi).
- Boyut açısından katı sınırları yoktur (sunucu yapılandırmaları çerçevesinde).
- URL'de görünmez, bu da hassas verilerin iletimi için daha uygundur.
- Varsayılan olarak tarayıcılar tarafından önbelleğe alınmaz.
- Farklı veri türleri içerebilir (JSON, XML, formlar).
Farklılıkların karşılaştırmalı tablosu:
| Kriter | Sorgu Parametreleri | İstek Gövdesi |
|---|---|---|
| Konum | URL (? sonrası) |
HTTP isteği gövdesi |
| Tipik metodlar | GET | POST, PUT, PATCH |
| Kullanım | Filtreleme, sıralama, sayfalamak | Kaynak oluşturma/güncelleme, büyük veri iletimi |
| Boyut | Sınırlı | Pratikte sınırsız |
| Görünürlük | URL'de görünür | URL'de görünmez |
| Önbelleğe alma | Kolayca önbelleğe alınabilir | Varsayılan olarak önbelleğe alınmaz |
| Güvenlik | Hassas veriler için daha az uygun | Hassas veriler için daha uygundur |
Hangi durumda hangisini kullanmalı:
- Query Parameters yerine Body: Teorik olarak POST, PUT vb. metodlar için mümkündür, ancak önerilmez. Bu, HTTP metodlarının semantiğini bozabilir ve işlemeyi zorlaştırabilir. Çok nadiren kullanılır, genellikle çok basit durumlar veya özel mimariler içindir. Büyük veya yapılandırılmış verilerin sorgu dizisi aracılığıyla iletimi uygun değildir.
- Body yerine Query Parameters: GET istekleri için mümkün değildir, çünkü HTTP standardı GET için gövde semantiğini tanımlamaz. Diğer metodlar (POST, PUT vb.) için gövde, veri iletiminin standart yoludur ve yapılandırılmış veya büyük hacimli verilerin iletimi için tercih edilir, ayrıca veriler hassas ise.
Çoğu durumda, yaygın kabul gören konvansiyonlara uyulması önerilir: sorgu parametreleri GET ile filtreleme/kimlik belirleme için, gövde ise durumu değiştiren isteklerde (POST, PUT, PATCH) veri göndermek için kullanılır.