Mesajlar, temsiller ve dosyalar
Header’lar ve content negotiation
İstenen format ile gönderilen formatı ayır.
Kavramı anlayalım
Accept istemcinin tercih ettiği temsil türünü; Content-Type taşınan gövdenin medya türünü açıklar. Accept: application/json göndermek body’nin JSON olduğu anlamına gelmez. Accept-Language dil tercihine, Accept-Encoding sıkıştırma desteğine işaret edebilir. Sunucu bu tercihleri hangi ölçüde desteklediğini sözleşmede belirtir.
Vary, cache’in hangi request başlıklarına göre temsil seçimini ayırması gerektiğini bildirir. Dile göre yanıt üretirken dil boyutunu cache anahtarından çıkarırsan başka dilde içerik dağıtabilirsin. Vary: * genellikle tekrar kullanım imkânını çok azaltır.
Başlık adları case-insensitive’dır; token ve değer kuralları alan bazında farklıdır. Büyük veya sınırsız başlıklar kaynak tüketebilir, istemci/proxy/sunucu limitleri uyumlu olmalıdır. Kullanıcı metnini header’a koyarken newline gibi kontrol karakterlerini reddet.
TR/EN içerikleri ve farklı istemcileri doğru desteklemek için.
Accept ile Content-Type’ı birbirinin yerine kullanmak.
Aynı konu. Üç farklı derinlik.
Accept: application/jsonYanıt tercihi.
Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.
Önce kendin dene.
POST body JSON, yanıt PDF isteniyorsa hangi başlıklar gerekir?
Çözümü ve açıklamasını göster
Content-Type: application/json
Accept: application/pdfSunucunun bunu desteklemesi gerekir; başlık göndermek destek yaratmaz.