utf-8 - apis - api mercadolibre publicar
Content-Type con solo juego de caracteres (2)
La producción en RFC 2616 para el encabezado Content-Type
es esta:
Content-Type = "Content-Type" ":" media-type
Y la producción media-type
es esta:
media-type = type "/" subtype *( ";" parameter )
type = token
subtype = token
Eso dice que mientras que la parte del parámetro (p. Ej., charset=utf-8
es opcional, la parte del type "/" subtype
no es, es decir, un tipo de medio debe tener el tipo seguido de una barra seguido de un subtipo.
Así que Content-Type: charset=utf-8
no es una sintaxis válida por eso, y no está especialmente definido en ningún otro lado normativo / autoritario.
RFC 2616 en realidad está obsoleto por RFC 7231 y varios otros RFC (los actuales RFC de HTTP).
Pero las partes correspondientes de RFC 7231 definen esencialmente las mismas producciones para este caso:
La producción en RFC 7231 para el valor del encabezado Content-Type
es esta:
Content-Type = media-type
Y la producción media-type
es esta:
media-type = type "/" subtype *( OWS ";" OWS parameter )
type = token
subtype = token
Y ninguna otra especificación obsoleta o reemplaza esa parte-RFC 7231 sigue siendo autorizada en esto.
La mayoría de los lenguajes de programación tienen buenas librerías de análisis de tipos de medios para la comprobación de sintaxis; ejemplo:
npm install content-type
node -e "var ct = require(''content-type''); ct.parse(''charset=utf-8'')"
=> TypeError: invalid media type
node -e "var ct = require(''content-type''); ct.parse(''image; charset=utf-8'')"
=> TypeError: invalid media type
Me encontré con este interesante encabezado:
Content-Type: charset=utf-8
Establecer el encabezado HTTP en UTF-8 usando PHP
El contestador dice que esta sintaxis está definida por RFC 2616 , pero no la veo en el enlace proporcionado. ¿Es esta sintaxis válida y, en caso afirmativo, dónde se define específicamente?
No, no puedo encontrar dicho tipo de contenido definido en ningún lugar en RFC 2616 o RFC 7231.
Y ni siquiera funciona en Chrome.
(Intenté xhr.setRequestHeader(''Content-type'',''charset=utf-8'');
Cuando xhr.send
no hay ningún encabezado de content-type
).