Sobes.tech
Junior

İsteğin gövdesi (body), başlıklar (headers) ve sorgu parametreleri (query parameters) neden vardır ve neden bunlar tek bir yerde birleştirilemez?

sobes.tech yapay zeka

AI'dan gelen yanıt

İstek gövdesi (body), başlıklar (headers) ve sorgu parametreleri (query parameters), HTTP isteğinde iletilen farklı bilgi türlerini ayırmak için vardır ve farklı işlevler gördükleri ve farklı amaçlara sahip oldukları için birleştirilemezler.

Sorgu Parametreleri (Query Parameters)

  • ? işaretinden sonra URL'de iletilirler.
  • Verileri filtrelemek, sıralamak, sayfalamak veya işlem için gerekli küçük miktarda gizli olmayan bilgi iletmek için kullanılırlar.
  • Genellikle GET istekleriyle kullanılırlar çünkü gövde içermezler.
  • URL'de görünürler, bu nedenle gizli verilerin iletimi için uygun değiller.
  • URL uzunluğu ile sınırlıdırlar.

Örnek: GET /users?pageSize=10&page=2&sort=name

Başlıklar (Headers)

  • İstek ve yanıt hakkında meta bilgi iletirler.
  • İçerik tipi, kodlama, kimlik doğrulama tokenleri, müşteri bilgileri (User-Agent), önbellekleme vb. gibi verileri içerirler.
  • İstek/yanıt davranışını yönetmek için kullanılırlar, işlem verilerini iletmek için değil.

Başlık örnekleri: Content-Type: application/json Authorization: Bearer <token> User-Agent: Mozilla/5.0 (...)

İstek Gövdesi (Body)

  • Sunucuya işleme için iletilen ana verileri içerir.
  • Sunucuda durumu değiştiren (POST, PUT, PATCH) veya büyük veri gönderen isteklerde kullanılır.
  • Tipik formatlar: JSON, XML, formlar (urlencoded/multipart).
  • Boyut sınırı yoktur (pratik sınırlar dahilinde).
  • URL'de görünmez.

İstek gövdesi örneği (POST isteği için):

{
  "name": "John Doe",
  "email": "john.doe@example.com"
}

Neden birleştirilemez:

  • Semantik: Her bölüm kendi semantik yükünü taşır. Parametreler ne isteneceğini (filtreler), başlıklar nasıl isteneceğini (meta veriler), gövde ise veri iletir.
  • HTTP Protokolü: HTTP yapısı bu bileşenleri açıkça ayırır, böylece istemci ve sunucu uygulamaları bunları doğru şekilde ayrıştırıp işleyebilir.
  • Performans ve önbellekleme: Ayrım, HTTP altyapısının (proxy, önbellekler vb.) aynı URL parametreleriyle yapılan GET yanıtlarını önbelleğe almasını sağlar, böylece verimlilik artar.
  • Güvenlik: Gizli verilerin URL'de (parametreler) iletimi güvenli değildir çünkü loglara veya tarayıcı geçmişine kaydedilebilir. Bunun için gövde kullanılır.
  • Sınırlamalar: Sorgu parametreleri URL uzunluğu ile sınırlıdır, bu da büyük veri iletimi için uygun değildir. Gövde bu sınırlamaya tabi değildir.

Bu öğelerin tek bir yapıya dönüştürülmesi, yapının kaybolmasına, HTTP isteklerinin analiz ve işlenmesini zorlaştırmasına ve güvenlik ile verimliliğin tehlikeye girmesine neden olur.