HTTP "सामग्री-प्रकार" शीर्षक के लिए सभी संभावित मान क्या हैं?


270

मुझे Content-TypeHTTP अनुरोध को पास करने से पहले हेडर मान को मान्य करना होगा।

क्या सभी संभावित मूल्यों के लिए एक विशिष्ट सूची है Content-Type?

अन्यथा, HTTP अनुरोध में उपयोग करने से पहले सामग्री प्रकार को मान्य करने का कोई तरीका है?


9
मान्य मीडिया प्रकार IANA के साथ पंजीकृत होने चाहिए - आप यहाँ एक वर्तमान सूची देख सकते हैं: iana.org/assignments/media-types/media-types.xhtml लेकिन ध्यान दें कि यह सूची समय के साथ अपडेट हो सकती है। कोई निर्धारित अनुमति सूची नहीं है।
जो


@ जो: "मान्य मीडिया प्रकार IANA के साथ पंजीकृत होने वाले हैं" - रुको, क्या इसका मतलब कस्टम मीडिया प्रकार (केवल एप्लिकेशन-विशिष्ट वेब API में उपयोग के लिए है जो केवल एक कस्टम क्लाइंट एप्लिकेशन द्वारा कॉल किया जा रहा है) अनुमति नहीं है?
या मैपर

1
@ORMapper मैं इसे और अधिक पढ़ूंगा क्योंकि "आधिकारिक सूची है, लेकिन मुझे जंगली में अन्य लोगों को देखकर आश्चर्य नहीं होगा"। ओपी के प्रश्न के संदर्भ में, यदि आप "सभी प्रकार" को सत्यापित करने और सत्यापित करने जा रहे हैं, तो आप कम से कम सभी पंजीकृत प्रकारों को मान्य करना चाहते हैं। अतिरिक्त के साथ क्या करना है और अधिक खुले-समाप्त होते हैं। जहाँ तक मुझे पता है कि कस्टम प्रकारों को पंजीकृत करने की कोई आवश्यकता नहीं है ।
जो

कृपया उस उत्तर को स्वीकार करें जिसने आपकी समस्या को हल करने में आपकी सबसे अधिक मदद की। यह भविष्य के पाठकों की मदद करता है। यदि उत्तर सहायक नहीं थे, तो उनके नीचे टिप्पणी छोड़ दें। तो पोस्टर उनके अनुसार अपडेट कर सकते हैं। पढ़ें मैं जब कोई मेरे सवाल का जवाब क्या करना चाहिए? अधिक जानने के लिए।
रोशन पिटिगला

जवाबों:


253

आप यहाँ हर प्रकार की सामग्री पा सकते हैं: http://www.iana.org/assignments/media-types/media-types.fr.html

सबसे आम प्रकार हैं:

  1. एप्लिकेशन टाइप करें

    application/java-archive
    application/EDI-X12   
    application/EDIFACT   
    application/javascript   
    application/octet-stream   
    application/ogg   
    application/pdf  
    application/xhtml+xml   
    application/x-shockwave-flash    
    application/json  
    application/ld+json  
    application/xml   
    application/zip  
    application/x-www-form-urlencoded  
    
  2. ऑडियो टाइप करें

    audio/mpeg   
    audio/x-ms-wma   
    audio/vnd.rn-realaudio   
    audio/x-wav   
    
  3. छवि टाइप करें

    image/gif   
    image/jpeg   
    image/png   
    image/tiff    
    image/vnd.microsoft.icon    
    image/x-icon   
    image/vnd.djvu   
    image/svg+xml    
    
  4. मल्टीपार्ट टाइप करें

    multipart/mixed    
    multipart/alternative   
    multipart/related (using by MHTML (HTML mail).)  
    multipart/form-data  
    
  5. पाठ टाइप करे

    text/css    
    text/csv    
    text/html    
    text/javascript (obsolete)    
    text/plain    
    text/xml    
    
  6. वीडियो टाइप करें

    video/mpeg    
    video/mp4    
    video/quicktime    
    video/x-ms-wmv    
    video/x-msvideo    
    video/x-flv   
    video/webm   
    
  7. प्रकार vnd:

    application/vnd.android.package-archive
    application/vnd.oasis.opendocument.text    
    application/vnd.oasis.opendocument.spreadsheet  
    application/vnd.oasis.opendocument.presentation   
    application/vnd.oasis.opendocument.graphics   
    application/vnd.ms-excel    
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet   
    application/vnd.ms-powerpoint    
    application/vnd.openxmlformats-officedocument.presentationml.presentation    
    application/msword   
    application/vnd.openxmlformats-officedocument.wordprocessingml.document   
    application/vnd.mozilla.xul+xml   
    

50

जैसा कि RFC 1341 में परिभाषित किया गया है :

RFC 822 के विस्तारित BNF अंकन में, सामग्री-प्रकार हेडर फ़ील्ड मान को निम्नानुसार परिभाषित किया गया है:

सामग्री-प्रकार: = प्रकार "/" उपप्रकार * [";" पैरामीटर]

प्रकार: = "एप्लिकेशन" / "ऑडियो" / "छवि" / "संदेश" / "मल्टीपार्ट" / "टेक्स्ट" / "वीडियो" / x-token

x-token: = <दो अक्षर "X-" का अनुसरण किया गया, जिसमें कोई भी सफ़ेद स्थान नहीं है, किसी भी टोकन द्वारा>

उपप्रकार: = टोकन

पैरामीटर: = विशेषता "=" मान

विशेषता: = टोकन

मूल्य: = टोकन / उद्धृत-स्ट्रिंग

टोकन: = 1 *

tspecials: = "(" / ")" / "<" / ">" / "@ @"; में होना चाहिए / "," / ";" / ":" / "" \ "/ <">; उद्धृत-स्ट्रिंग, / "/" / "[" / "/" "" / ""; "/?"; पैरामीटर मान

और ज्ञात MIME प्रकारों की एक सूची जो इसका अनुसरण कर सकती है (या, जो टिप्पणी के रूप में, IANA स्रोत )।

जैसा कि आप देख सकते हैं कि सूची उन सभी के खिलाफ मान्य करने के लिए आपके लिए बहुत बड़ी है। आप जो कर सकते हैं, वह सामान्य प्रारूप और typeसही (विकल्प का सेट छोटा है) को सुनिश्चित करने की विशेषता के खिलाफ मान्य है और बस यह मान लें कि जो सही है वह सही है (और किसी भी अपवाद को पकड़ें जब आप इसे डाल सकते हैं। वास्तविक उपयोग के लिए)।

ऊपर टिप्पणी भी नोट करें:

यदि किसी अन्य कारण से किसी अन्य प्राथमिक प्रकार का उपयोग किया जाना है, तो उसे अपने गैर-मानक स्थिति को इंगित करने और भविष्य के आधिकारिक नाम के साथ किसी भी संभावित संघर्ष से बचने के लिए "X-" से शुरू होने वाला नाम दिया जाना चाहिए।

आप देखेंगे कि बहुत सारे HTTP अनुरोधों / प्रतिक्रियाओं में X-कुछ प्रकार के हेडर शामिल हैं जो स्वयं परिभाषित हैं, प्रकारों को मान्य करते समय इसे ध्यान में रखें।


RFC 1341 HTTP के लिए प्रासंगिक नहीं है।
जूलियन रेसके ने

2
RFC 1341 सामग्री प्रकार हेडर का वर्णन करता है जो HTTP में उपयोग किया जाता है। आप कैसे कहेंगे कि वे असंबंधित हैं?
जीरो वेनवेल

2
इसे कई बार नए दस्तावेज़ों द्वारा बाधित और प्रतिस्थापित किया गया है। क्या प्रासंगिक है < ग्रीनबाइट्स .de/tech/webdav/… > (साथ ही संदर्भित दस्तावेज) कहना होगा।
जूलियन रेस्चके १14

3

मैं संभव "सामग्री-प्रकार" मूल्यों के सबसेट को कवर करने का लक्ष्य रखता हूं, आप सवाल करते हैं कि ज्ञात सामग्री प्रकारों की पहचान करने पर ध्यान केंद्रित करें।

@Jeroen RFC 1341 संदर्भ बहुत अच्छा है, लेकिन एक काफी संपूर्ण सूची के लिए IANA आधिकारिक तौर पर पंजीकृत मीडिया प्रकारों का एक वेब पेज यहां रखता है


वे "ज्ञात" मेडियाटाइप्स नहीं हैं (अर्थात "वाइल्ड में जो देखे गए हैं उनके नमूने"), लेकिन आईआईएए पंजीकरण प्रक्रियाओं से गुजरने वाले मेडिएप्टिस। इसलिए वे आधिकारिक तौर पर पंजीकृत हैं। इस बिंदु को इंगित करना महत्वपूर्ण पाया :)
DaSourcerer

0

यदि आप jaxrs या किसी अन्य का उपयोग कर रहे हैं, तो अनुरोध भेजने से पहले mediatype.User इंटरसेप्टर नामक एक वर्ग होगा और इसके खिलाफ तुलना करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.