Solución:
Puede encontrar todos los tipos de contenido aquí: http://www.iana.org/assignments/media-types/media-types.xhtml
Los tipos más comunes son:
-
Solicitud de tipo
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
-
Escriba audio
audio/mpeg audio/x-ms-wma audio/vnd.rn-realaudio audio/x-wav
-
Tipo de imagen
image/gif image/jpeg image/png image/tiff image/vnd.microsoft.icon image/x-icon image/vnd.djvu image/svg+xml
-
Tipo de varias partes
multipart/mixed multipart/alternative multipart/related (using by MHTML (HTML mail).) multipart/form-data
-
Teclee el texto
text/css text/csv text/html text/javascript (obsolete) text/plain text/xml
-
Escribe un video
video/mpeg video/mp4 video/quicktime video/x-ms-wmv video/x-msvideo video/x-flv video/webm
-
Escriba 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
Como se define en RFC 1341:
En la notación BNF extendida de RFC 822, un valor de campo de encabezado de tipo de contenido se define de la siguiente manera:
Tipo de contenido: = tipo “https://foroayuda.es/” subtipo *[“;” parameter]
tipo: = “aplicación” https://foroayuda.es/ “audio” https://foroayuda.es/ “imagen” https://foroayuda.es/ “mensaje” https://foroayuda.es/ “multiparte” https://foroayuda.es/”text”https://foroayuda.es/”video “/ x-token
x-token: =
subtipo: = token
parámetro: = atributo “=” valor
atributo: = token
valor: = token / cadena-entrecomillada
ficha: = 1 *
tspecials: = “(” https://foroayuda.es/”)”https://foroayuda.es/”<"https://foroayuda.es/">“https://foroayuda.es/”@ ” ; Debe estar en / “,” https://foroayuda.es/ “;” https://foroayuda.es/ “:” https://foroayuda.es/ “” / <">; quoted-string, / “https://foroayuda.es/”https://foroayuda.es/”[“https://newbedev.com/”]”https://foroayuda.es/”?”https://foroayuda.es/”. “; para utilizar dentro de /” = “; valores de parámetro
Y una lista de tipos MIME conocidos que pueden seguirla (o, como comenta Joe, la fuente de IANA).
Como puede ver, la lista es demasiado grande para que pueda validarla con todos ellos. Lo que puede hacer es validar contra el formato general y el type
atributo para asegurarse de que sea correcto (el conjunto de opciones es pequeño) y simplemente asumir que lo que sigue es correcto (y, por supuesto, detectar cualquier excepción que pueda encontrar cuando lo utilice).
También tenga en cuenta el comentario anterior:
Si se va a utilizar otro tipo primario por cualquier motivo, se le debe dar un nombre que comience con “X-” para indicar su estado no estándar y evitar cualquier conflicto potencial con un nombre oficial futuro.
Notarás que muchos Solicitudes / respuestas HTTP incluir un X-
encabezado de algún tipo que sea autodefinido, tenga esto en cuenta al validar los tipos.
Mi objetivo es cubrir un subconjunto de posibles valores de “Tipo de contenido”, su pregunta parece centrarse en identificar tipos de contenido conocidos.
La referencia de @Jeroen RFC 1341 es excelente, pero para obtener una lista bastante exhaustiva, IANA mantiene una página web de tipos de medios registrados oficialmente aquí.