Wat zijn alle mogelijke waarden voor HTTP “Content-Type” header?

Ik moet de headerwaarde Content-Typevalideren voordat ik deze doorgeef aan een HTTP-verzoek.

Is er een specifieke lijst voor alle mogelijke waarden van Content-Type?

Is er anders een manier om het inhoudstype te valideren voordat het in een HTTP-verzoek wordt gebruikt?


Antwoord 1, autoriteit 100%

Je kunt elk inhoudstype hier vinden:
http://www.iana.org/assignments/media-types/media -types.xhtml

De meest voorkomende soorten zijn:

  1. Type aanvraag

    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. Geluid typen

    audio/mpeg   
    audio/x-ms-wma   
    audio/vnd.rn-realaudio   
    audio/x-wav   
    
  3. Afbeelding typen

    image/gif   
    image/jpeg   
    image/png   
    image/tiff    
    image/vnd.microsoft.icon    
    image/x-icon   
    image/vnd.djvu   
    image/svg+xml    
    
  4. Type meerdelig

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

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

    video/mpeg    
    video/mp4    
    video/quicktime    
    video/x-ms-wmv    
    video/x-msvideo    
    video/x-flv   
    video/webm   
    
  7. Type 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   
    

Antwoord 2, autoriteit 16%

Zoals is gedefinieerdin RFC 1341:

In de Extended BNF-notatie van RFC 822, een Content-Type header-veld
waarde wordt als volgt gedefinieerd:

Inhoudstype := type “/” subtype *[“;” parameter]

type := “applicatie” / “audio”
/ “afbeelding” / “bericht”
/ “meerdelige” / “tekst”
/ “video” / x-token

x-token := < De twee karakters “X-” volgden, zonder
tussenliggende witruimte, door een teken >

subtype := token

parameter := attribuut “=” waarde

attribuut := token

waarde := token / tekenreeks tussen aanhalingstekens

token := 1*

tspecials := “(” / “)” / “<” / “>” / “@” ; Moet binnen zijn
/ “,” / “;” / “:” / “\” / <“> ; tekenreeks tussen aanhalingstekens,
/ “/” / “[” / “]” / “?” / “.” ; binnen gebruiken
/ “=” ; parameterwaarden

En een lijst met bekende MIME-typendie daarop kunnen volgen (of, zoals Joe opmerkt, de IANA-bron).

Zoals je kunt zien, is de lijst veel te groot om ze allemaal te valideren. Wat u kunt doen, is valideren tegen het algemene formaat en het kenmerk typeom er zeker van te zijn dat dit correct is (de set opties is klein) en gewoon aannemen dat wat erop volgt correct is (en natuurlijk eventuele uitzonderingen die u kunt tegenkomen wanneer u het daadwerkelijk gebruikt).

Let ook op de opmerking hierboven:

Als om welke reden dan ook een ander primair type moet worden gebruikt, moet het een naam krijgen die begint met “X-” om de niet-standaardstatus aan te geven en om elk mogelijk conflict met een toekomstige officiële naam te voorkomen.

U zult merken dat veel HTTP-verzoeken/-antwoordeneen of andere soort X--header bevatten die zelf gedefinieerd is, houd hier rekening mee bij het valideren van de typen .


Antwoord 3

Ik zou proberen een subset van mogelijke ‘Content-type’-waarden te behandelen, uw vraag lijkt zich te richten op het identificeren van bekende inhoudstypen.

@Jeroen RFC 1341-referentie is geweldig, maar voor een vrij uitputtende lijst houdt IANA zich aan
een webpagina met officieel geregistreerde mediatypen hier.


Antwoord 4

Als je jaxrs of iets anders gebruikt, zal er een klasse zijn genaamd mediatype.User interceptor voordat je het verzoek verzendt en vergelijk het hiermee.

Other episodes