Sejauh yang saya mengerti ada dua tempat untuk mengatur tipe konten:
- Klien menetapkan tipe konten untuk tubuh yang ia kirim ke server (misalnya untuk posting)
- Server menetapkan tipe konten untuk respons.
Apakah ini berarti saya tidak harus atau tidak harus menetapkan tipe konten untuk semua permintaan saya (sisi klien). Dan jika saya bisa atau harus jenis konten apa itu?
Saya juga membaca dalam beberapa posting bahwa tipe konten klien menentukan jenis konten apa yang ingin diterima oleh klien. Jadi mungkin poin saya 1 tidak benar?
sumber
SHOULD NOT
termasuk Tipe-Konten. Apakah kami memiliki kutipan eksplisit?Dapatkan permintaan tidak boleh memiliki tipe konten karena mereka tidak memiliki entitas permintaan (yaitu, badan)
sumber
MENDAPATKAN permintaan dapat memiliki tajuk "Terima", yang mengatakan jenis konten mana yang dipahami klien. Server kemudian dapat menggunakannya untuk memutuskan jenis konten yang akan dikirim kembali.
Mereka opsional.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1
sumber
Jawaban yang diterima salah. Kutipan itu benar, pernyataan bahwa PUT dan POST harus memilikinya salah. Tidak ada persyaratan bahwa PUT atau POST sebenarnya memiliki konten tambahan. Juga tidak ada larangan terhadap GET yang benar-benar memiliki konten.
RFC mengatakan dengan tepat apa artinya. IFF pihak Anda (klien ATAU server asal) akan mengirimkan konten tambahan, di luar tajuk HTTP, ia HARUS menentukan tajuk Jenis-Konten. Namun perlu diperhatikan untuk menghilangkan Tipe-Konten dan masih menyertakan konten (misalnya, dengan menggunakan header Panjang-Konten).
sumber
Jawaban singkat: Kemungkinan besar, tidak, Anda tidak perlu header tipe konten untuk permintaan HTTP GET. Tetapi spesifikasi tampaknya tidak mengesampingkan header tipe konten untuk HTTP GET, baik.
Bahan pendukung:
"Tipe Konten" adalah bagian dari metadata representasi (yaitu payload). Dikutip dari RFC 7231 bagian 3.1 :
Dikutip dari RFC 7231 bagian 3.1.1.5 (omong-omong, jawaban yang dipilih saat ini memiliki kesalahan ketik pada nomor bagian):
Dalam arti itu,
Content-Type
header sebenarnya bukan tentang permintaan HTTP GET (atau permintaan POST, dalam hal ini). Ini tentang muatan di dalam permintaan apa pun . Jadi, jika tidak akan ada muatan, tidak perlu adaContent-Type
. Dalam praktiknya, beberapa implementasi berjalan terus dan membuat asumsi yang dapat dimengerti. Dikutip dari komentar Adam :Namun, secara tegas, spesifikasi itu sendiri tidak mengesampingkan kemungkinan HTTP GET berisi muatan. Dikutip dari RFC 7231 bagian 4.3.1 :
Jadi, jika HTTP GET Anda memasukkan muatan untuk alasan apa pun,
Content-Type
tajuk mungkin juga masuk akal.sumber
Masalah dengan tidak melewati tipe konten pada pesan GET adalah memastikan bahwa tipe konten tidak relevan karena sisi server tetap menentukan konten. Masalah yang saya temui adalah bahwa sekarang ada banyak tempat yang mengatur layanan web mereka menjadi cukup pintar untuk mengambil tipe konten yang Anda lewati dan mengembalikan respons dalam 'tipe' yang Anda minta. Misalnya. kami saat ini mengirim pesan dengan tempat yang default ke JSON, namun, mereka telah mengatur layanan web mereka sehingga jika Anda melewati jenis konten-xml mereka kemudian akan mengembalikan xml daripada standar JSON mereka. Yang saya pikir maju adalah ide bagus
sumber