Le production in RFC 2616 for the Content-Type
header est la suivante:
Content-Type = "Content-Type" ":" media-type
Et the media-type
production est ceci:
media-type = type "/" subtype *(";" parameter)
type = token
subtype = token
qui dit que tandis que la partie des paramètres (par exemple, charset=utf-8
est facultative, la partie type "/" subtype
n'est pas qui est , un type de support doit avoir un type suivi d'une barre oblique suivie d'un sous-type
So Content-Type: charset=utf-8
i sn't syntaxe valide par cela, et non spécialement défini ailleurs que normativement/autoritativement être soit.
La RFC 2616 est actuellement obsolète par la RFC 7231 et plusieurs autres RFC (les RFC HTTP actuels).
Mais les parties correspondantes de la RFC 7231 définissent essentiellement les mêmes productions pour ce cas:
Le production in RFC 7231 for the value of the Content-Type
header est la suivante:
Content-Type = media-type
Et the media-type
production est ceci:
media-type = type "/" subtype *(OWS ";" OWS parameter)
type = token
subtype = token
Et pas autre spéculaire obsolète ou remplace cette partie-RFC 7231 reste d'autorité sur ce point.
La plupart des langages de programmation ont de bonnes libs d'analyse syntaxique de type média pour vérification de la syntaxe; exemple:
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
Merci. J'ai fait quelques tests, et bien que le type soit certainement requis, il semble que le sous-type n'est pas requis –
Avec quoi avez-vous testé? Le sous-type est requis par les spécifications HTTP au moins. – sideshowbarker
J'utilise le programme MHonArc –