ฉันคิดว่าฉันควรส่ง "text / xml" แต่ฉันอ่านแล้วว่าควรส่ง "application / xml" มันสำคัญหรือไม่? ใครสามารถอธิบายความแตกต่าง?
ฉันคิดว่าฉันควรส่ง "text / xml" แต่ฉันอ่านแล้วว่าควรส่ง "application / xml" มันสำคัญหรือไม่? ใครสามารถอธิบายความแตกต่าง?
คำตอบ:
ความแตกต่างระหว่างtext / xmlและapplication / xmlคือการเข้ารหัสอักขระเริ่มต้นหากไม่ใส่พารามิเตอร์charset :
ข้อความ / xml และ application / xml ทำงานแตกต่างกันเมื่อไม่ได้ระบุพารามิเตอร์ charset ไว้อย่างชัดเจน หากชุดอักขระเริ่มต้น (เช่น US-ASCII) สำหรับข้อความ / xml ไม่สะดวกด้วยเหตุผลบางประการ (เช่นเว็บเซิร์ฟเวอร์ที่ไม่ดี) แอปพลิเคชัน / xml จะมีทางเลือกให้ (ดู "พารามิเตอร์เสริม" ของการลงทะเบียน application / xml ในส่วน 3.2)
สำหรับข้อความ / xml :
สอดคล้องกับ [RFC2046] หากได้รับเอนทิตี text / xml โดยเว้นพารามิเตอร์ charset ไว้ตัวประมวลผล MIME และตัวประมวลผล XML ต้องใช้ค่าชุดอักขระเริ่มต้นของ "us-ascii" [ASCII] ในกรณีที่ส่งเอนทิตี XML MIME ผ่าน HTTP ค่าชุดอักขระเริ่มต้นยังคงเป็น "us-ascii"
สำหรับแอปพลิเคชัน / xml :
หากได้รับเอนทิตี application / xml โดยที่พารามิเตอร์ charset ถูกละไว้จะไม่มีการให้ข้อมูลเกี่ยวกับชุดอักขระโดยส่วนหัว MIME Content-Type การปฏิบัติตามตัวประมวลผล XML ต้องเป็นไปตามข้อกำหนดในส่วน 4.3.3 ของ [XML] ที่จัดการกับเหตุการณ์ฉุกเฉินนี้โดยตรง อย่างไรก็ตามตัวประมวลผล MIME ที่ไม่ใช่ตัวประมวลผล XML ไม่ควรถือว่าเป็นชุดอักขระเริ่มต้นหากพารามิเตอร์ charset ถูกละไว้จากเอนทิตีแอ็พพลิเคชัน / xml
ดังนั้นหากไม่ใส่พารามิเตอร์charsetการเข้ารหัสอักขระของtext / xmlจะเป็น US-ASCII ในขณะที่ใช้ application / xmlการเข้ารหัสอักขระสามารถระบุได้ในเอกสาร
ตอนนี้หลักการง่ายๆบนอินเทอร์เน็ตคือ:“ เข้มงวดกับผลลัพธ์ แต่อดทนต่ออินพุต” นั่นหมายถึงตรวจสอบให้แน่ใจว่าเป็นไปตามมาตรฐานให้มากที่สุดเมื่อส่งข้อมูลผ่านอินเทอร์เน็ต แต่สร้างกลไกบางอย่างเพื่อมองข้ามความผิดพลาดหรือคาดเดาเมื่อรับและตีความข้อมูลผ่านอินเทอร์เน็ต
ดังนั้นในกรณีของคุณเพียงแค่เลือกหนึ่งของทั้งสองประเภท (ผมขอแนะนำแอพลิเคชัน / XML ) และตรวจสอบเพื่อระบุตัวอักษรที่ใช้การเข้ารหัสอย่างถูกต้อง (ผมแนะนำให้ใช้การเข้ารหัสตัวอักษรเริ่มต้นที่เกี่ยวข้องในการเล่นที่ปลอดภัยดังนั้นในกรณีของแอพลิเคชัน / XMLใช้ UTF-8 หรือ UTF-16)
ตามหลักทั่วไปการเดิมพันที่ปลอดภัยที่สุดในการทำให้เอกสารของคุณได้รับการปฏิบัติอย่างเหมาะสมโดยเว็บเซิร์ฟเวอร์พร็อกซีและเบราว์เซอร์ไคลเอนต์ทั้งหมดอาจเป็นดังต่อไปนี้:
ในแง่ของข้อกำหนดRFC 3023ซึ่งเบราว์เซอร์บางตัวไม่สามารถใช้งานได้อย่างถูกต้องความแตกต่างที่สำคัญในประเภทเนื้อหาคือวิธีที่ไคลเอ็นต์ควรปฏิบัติต่อการเข้ารหัสอักขระดังต่อไปนี้:
สำหรับ application / xml, application / xml-dtd, application / xml-external-parsed-entity หรือหนึ่งในประเภทย่อยของ application / xml เช่น application / atom + xml, application / rss + xml หรือ application / rdf + xml การเข้ารหัสอักขระจะถูกกำหนดตามลำดับนี้:
สำหรับ text / xml, text / xml-external-parsed-entity หรือประเภทย่อยเช่น text / foo + xml แอตทริบิวต์การเข้ารหัสของการประกาศ XML ภายในเอกสารจะถูกละเว้นและการเข้ารหัสอักขระคือ:
โปรแกรมแยกวิเคราะห์ส่วนใหญ่ไม่ได้ใช้ข้อมูลจำเพาะ พวกเขาไม่สนใจ HTTP Context-Type และเพียงแค่ใช้การเข้ารหัสในเอกสาร ด้วยเอกสารที่ผิดรูปแบบมากมายจึงไม่น่าจะเปลี่ยนแปลงได้ในเร็ว ๆ นี้
สบายดีทั้งคู่
text / xxx หมายความว่าในกรณีที่โปรแกรมไม่เข้าใจ xxx ควรแสดงไฟล์ต่อผู้ใช้เป็นข้อความธรรมดา application / xxx หมายความว่ามันไม่มีจุดหมายที่จะแสดง
โปรดทราบว่าเดิมทีประเภทเนื้อหาเหล่านี้ถูกกำหนดไว้สำหรับไฟล์แนบ E-Mail ก่อนที่จะนำไปใช้ในโลกเว็บ
ข้อความ / xml เป็นเอกสารที่มีความหมายต่อมนุษย์หากนำเสนอเป็นข้อความโดยไม่ต้องประมวลผลเพิ่มเติมแอปพลิเคชัน / xml มีไว้สำหรับทุกอย่าง
เอนทิตี XML ทุกตัวเหมาะสำหรับใช้กับชนิดสื่อแอปพลิเคชัน / xml โดยไม่ต้องแก้ไข แต่สิ่งนี้ไม่ได้ใช้ประโยชน์จากข้อเท็จจริงที่ว่า XML สามารถถือเป็นข้อความธรรมดาได้ในหลาย ๆ กรณี ตัวแทนผู้ใช้ MIME (และตัวแทนผู้ใช้เว็บ) ที่ไม่มีการสนับสนุนอย่างชัดเจนสำหรับแอ็พพลิเคชัน / xml จะถือว่าเป็นแอ็พพลิเคชัน / อ็อกเต็ตสตรีมเช่นเสนอให้บันทึกลงในไฟล์
ในการระบุว่าเอนทิตี XML ควรถือเป็นข้อความธรรมดาตามค่าเริ่มต้นให้ใช้ชนิดสื่อ text / xml สิ่งนี้ จำกัด การเข้ารหัสที่ใช้ในเอนทิตี XML เฉพาะการเข้ารหัสที่เข้ากันได้กับข้อกำหนดสำหรับประเภทสื่อข้อความตามที่อธิบายไว้ใน [RFC-2045] และ [RFC-2046] เช่น UTF-8 แต่ไม่ใช่ UTF-16 (ยกเว้น HTTP)
text/html
มีมานานมากแล้วและมันก็สายไปหน่อยที่จะเปลี่ยนมัน
คำตอบอื่น ๆ ในที่นี้จะกล่าวถึงคำถามทั่วไปว่าสิ่งที่เหมาะสมContent-Type
สำหรับการตอบกลับ XML คืออะไรและสรุป (เช่นเดียวกับความแตกต่างระหว่างข้อความ / xml กับแอปพลิเคชัน / xml สำหรับการตอบสนองของเว็บเซอร์ ) ซึ่งทั้งสองtext/xml
และapplication/xml
ได้รับอนุญาต อย่างไรก็ตามไม่มีการระบุว่ามีกฎเฉพาะสำหรับแผนผังเว็บไซต์หรือไม่
คำตอบ: ไม่มี ข้อกำหนดแผนผังเว็บไซต์คือhttps://www.sitemaps.orgและเมื่อใช้site:
การค้นหาโดย Google คุณสามารถยืนยันได้ว่าไม่มีคำหรือวลีmime , mimetype , content-type , application / xmlหรือtext / xmlที่ใดก็ได้ กล่าวอีกนัยหนึ่งก็คือหัวข้อที่Content-Type
ควรใช้ในการให้บริการแผนผังไซต์นั้นเงียบอย่างสิ้นเชิง
ในกรณีที่ไม่มีความเห็นใด ๆ ในสเป็คแผนผังไซต์โดยตรงที่อยู่คำถามนี้อย่างปลอดภัยเราสามารถสรุปได้ว่าใช้กฎเดียวกันกับเมื่อเลือกContent-Type
ของเอกสาร XML อื่น ๆ - คือว่ามันอาจจะเป็นอย่างใดอย่างหนึ่งหรือtext/xml
application/xml
text/html
และแนะนำประเภท XHTML MIMEapplication/xhtml+xml
คือ