wake-up-neo.net

Was sind die möglichen Werte für den HTTP-Header "Content-Type"?

Ich muss den Header-Wert Content-Type validieren, bevor ich ihn an die HTTP-Anforderung übergebe.

Gibt es eine spezifische Liste für alle möglichen Werte von Content-Type?

Gibt es andernfalls eine Möglichkeit, den Inhaltstyp zu überprüfen, bevor er in einer HTTP-Anforderung verwendet wird?

209
Awesome

Sie finden jeden Inhaltstyp hier: http://www.iana.org/assignments/media-types/media-types.xhtml

Die häufigsten Arten sind:

  1. Geben Sie application ein

    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. Geben Sie Audio ein

    audio/mpeg   
    audio/x-ms-wma   
    audio/vnd.rn-realaudio   
    audio/x-wav   
    
  3. Bild eingeben

    image/gif   
    image/jpeg   
    image/png   
    image/tiff    
    image/vnd.Microsoft.icon    
    image/x-icon   
    image/vnd.djvu   
    image/svg+xml    
    
  4. Geben Sie multipart ein

    multipart/mixed    
    multipart/alternative   
    multipart/related (using by MHTML (HTML mail).)  
    multipart/form-data  
    
  5. Text eingeben

    text/css    
    text/csv    
    text/html    
    text/javascript (obsolete)    
    text/plain    
    text/xml    
    
  6. Video eingeben

    video/mpeg    
    video/mp4    
    video/quicktime    
    video/x-ms-wmv    
    video/x-msvideo    
    video/x-flv   
    video/webm   
    
  7. Geben Sie vnd ein:

    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   
    
159
lebarillier

As ist definiert in RFC 1341 :

In der erweiterten BNF-Notation von RFC 822 ist ein Content-Type-Header-Feldwert wie folgt definiert:

Inhaltstyp: = Typ "/" Untertyp * [";" Parameter]

typ: = "Anwendung"/"Audio"/"Bild"/"Nachricht"/"mehrteilig"/"Text"/"Video"/x-Token

x-token: = <Auf die beiden Zeichen "X-" folgt ohne Leerzeichen ein Token>

untertyp: = Token

parameter: = Attribut "=" Wert

attribut: = Token

value: = token/quoted-string

token: = 1 *

tspecials: = "("/")"/"<"/">"/"@"; Muss in/","/"sein;"/":"/"\"/<">; quoted-string, /"/"/" ["/"] "/"? "/". "; zur Verwendung innerhalb von /" = "; Parameterwerten

Und eine Liste bekannter MIME-Typen , die darauf folgen kann (oder, wie Joe bemerkt, die IANA-Quelle ).

Wie Sie sehen, ist die Liste viel zu groß, als dass Sie sie mit allen vergleichen könnten. Sie können anhand des allgemeinen Formats und des Attributs type überprüfen, ob die angegebenen Optionen korrekt sind (die Anzahl der Optionen ist gering) und davon ausgehen, dass die folgenden korrekt sind (und natürlich alle möglichen Ausnahmen abfangen begegnen, wenn Sie es tatsächlich verwenden).

Beachten Sie auch den obigen Kommentar:

Wenn aus irgendeinem Grund ein anderer Primärtyp verwendet werden soll, muss ihm ein Name zugewiesen werden, der mit "X-" beginnt, um den Nicht-Standardstatus anzuzeigen und einen möglichen Konflikt mit einem zukünftigen offiziellen Namen zu vermeiden.

Sie werden feststellen, dass viele HTTP-Anfragen/-Antworten einen X- -Header enthalten, der selbst definiert ist. Beachten Sie dies bei der Validierung der Typen.

45
Jeroen Vannevel

Ich würde versuchen, einen Teil der möglichen "Content-Type" -Werte abzudecken. Ihre Frage scheint sich darauf zu konzentrieren, bekannte Content-Types zu identifizieren.

@ Jeroen RFC 1341 Referenz ist großartig, aber für eine ziemlich vollständige Liste führt IANA eine Webseite mit offiziell registrierten Medientypen hier .

2
Pete Hornsby

Wenn Sie jaxrs oder eine andere Klasse verwenden, gibt es eine Klasse namens mediatype.User interceptor, bevor Sie die Anforderung senden und mit dieser vergleichen.

0
geddamsatish