Saya pikir saya harus mengirim "text / xml", tetapi kemudian saya membaca bahwa saya harus mengirim "application / xml". Apakah itu penting? Bisakah seseorang menjelaskan perbedaannya?
Saya pikir saya harus mengirim "text / xml", tetapi kemudian saya membaca bahwa saya harus mengirim "application / xml". Apakah itu penting? Bisakah seseorang menjelaskan perbedaannya?
The perbedaan antara text / xml dan aplikasi / xml adalah karakter default encoding jika charset parameter dihilangkan:
Teks / xml dan aplikasi / xml berperilaku berbeda ketika parameter charset tidak ditentukan secara eksplisit. Jika charset default (yaitu, US-ASCII) untuk teks / xml tidak nyaman untuk beberapa alasan (misalnya, server web yang buruk), aplikasi / xml memberikan alternatif (lihat "Parameter opsional" pendaftaran aplikasi / xml pada Bagian 3.2).
Untuk teks / xml :
Sesuai dengan [RFC2046], jika entitas teks / xml diterima dengan parameter charset dihilangkan, prosesor MIME dan prosesor XML HARUS menggunakan nilai charset default "us-ascii" [ASCII]. Dalam kasus di mana entitas XML MIME ditransmisikan melalui HTTP, nilai charset default masih "us-ascii".
Untuk aplikasi / xml :
Jika entitas aplikasi / xml diterima di mana parameter charset dihilangkan, tidak ada informasi yang diberikan tentang charset oleh header Tipe Konten MIME. Sesuai dengan prosesor XML, HARUS mengikuti persyaratan di bagian 4.3.3 dari [XML] yang secara langsung membahas kemungkinan ini. Namun, prosesor MIME yang bukan prosesor XML HARUS TIDAK mengasumsikan charset default jika parameter charset dihilangkan dari entitas aplikasi / xml.
Jadi jika parameter charset dihilangkan, pengkodean karakter teks / xml adalah US-ASCII sementara dengan aplikasi / xml pengkodean karakter dapat ditentukan dalam dokumen itu sendiri.
Sekarang aturan praktis di internet adalah: "Ketat dengan output tetapi toleran dengan input." Itu berarti pastikan untuk memenuhi standar sebanyak mungkin saat mengirimkan data melalui internet. Tetapi membangun beberapa mekanisme untuk mengabaikan kesalahan atau menebak ketika menerima dan menafsirkan data melalui internet.
Jadi dalam kasus Anda hanya memilih salah satu dari dua jenis (saya sarankan aplikasi / xml ) dan pastikan untuk menentukan karakter yang digunakan pengkodean benar (saya sarankan untuk menggunakan pengkodean karakter default masing-masing untuk bermain aman, sehingga dalam kasus aplikasi / xml digunakan UTF-8 atau UTF-16).
Sebagai aturan praktis, taruhan teraman untuk membuat dokumen Anda diperlakukan dengan baik oleh semua server web, proxy, dan browser klien, mungkin adalah yang berikut:
Dalam hal spesifikasi RFC 3023 , yang gagal diterapkan oleh beberapa browser dengan benar, perbedaan utama dalam tipe konten adalah bagaimana klien seharusnya memperlakukan pengkodean karakter, sebagai berikut:
Untuk aplikasi / xml, aplikasi / xml-dtd, aplikasi / xml-external-parsed-entity, atau salah satu dari subtipe aplikasi / xml seperti aplikasi / atom + xml, aplikasi / rss + xml atau aplikasi / rdf + xml , pengodean karakter ditentukan dalam urutan ini:
Untuk teks / xml, teks / xml-eksternal-parsed-entitas, atau subtipe seperti teks / foo + xml, atribut penyandian deklarasi XML dalam dokumen diabaikan, dan pengkodean karakter adalah:
Kebanyakan parser tidak mengimplementasikan spek; mereka mengabaikan Jenis Konteks HTTP dan hanya menggunakan pengodean dalam dokumen. Dengan begitu banyak dokumen buruk di luar sana, itu tidak mungkin berubah dalam waktu dekat.
keduanya baik-baik saja.
teks / xxx berarti jika program tidak memahami xxx masuk akal untuk menampilkan file kepada pengguna sebagai teks biasa. application / xxx berarti tidak ada gunanya menunjukkannya.
Harap perhatikan bahwa tipe konten tersebut pada awalnya ditentukan untuk lampiran E-Mail sebelum digunakan di dunia Web.
teks / xml adalah untuk dokumen yang akan berarti bagi manusia jika disajikan sebagai teks tanpa proses lebih lanjut, aplikasi / xml adalah untuk semua yang lainnya
Setiap entitas XML cocok untuk digunakan dengan jenis media aplikasi / xml tanpa modifikasi. Tetapi ini tidak mengeksploitasi fakta bahwa XML dapat diperlakukan sebagai teks biasa dalam banyak kasus. Agen pengguna MIME (dan agen pengguna web) yang tidak memiliki dukungan eksplisit untuk aplikasi / xml akan memperlakukannya sebagai aliran aplikasi / octet, misalnya, dengan menawarkan untuk menyimpannya ke file.
Untuk menunjukkan bahwa entitas XML harus diperlakukan sebagai teks biasa secara default, gunakan jenis media teks / xml. Ini membatasi pengkodean yang digunakan dalam entitas XML untuk yang kompatibel dengan persyaratan untuk jenis media teks seperti yang dijelaskan dalam [RFC-2045] dan [RFC-2046], misalnya, UTF-8, tetapi tidak UTF-16 (kecuali untuk HTTP).
text/html
dan jenis MIME XHTML yang disukai adalahapplication/xhtml+xml
.text/html
telah ada sejak lama, dan agak terlambat untuk mengubahnya.Jawaban lain di sini menjawab pertanyaan umum tentang apa yang pantas
Content-Type
untuk respons XML, dan menyimpulkan (seperti Apa perbedaan antara teks / xml vs aplikasi / xml untuk respons layanan web ) yang keduanyatext/xml
danapplication/xml
diizinkan. Namun, tidak ada yang membahas apakah ada aturan khusus untuk peta situs .Jawab: tidak ada. Spesifikasi sitemap adalah https://www.sitemaps.org , dan menggunakan
site:
pencarian Google Anda dapat mengonfirmasi bahwa itu tidak mengandung kata-kata atau frasa mime , mimetype , tipe konten , aplikasi / xml , atau teks / xml di mana saja. Dengan kata lain, itu sepenuhnya diam pada topik apa yangContent-Type
harus digunakan untuk melayani peta situs.Dengan tidak adanya komentar dalam spec sitemap yang secara langsung menangani pertanyaan ini, kita dapat dengan aman mengasumsikan bahwa aturan yang sama berlaku seperti ketika memilih
Content-Type
dokumen XML lainnya - yaitu bahwa itu bisa berupatext/xml
atauapplication/xml
.sumber