2009-11-05 3 views
1

Je ne pouvais pas trouver quelque chose dans la spécification qui dit qu'il devrait être. J'ai vu un couple de navigateurs définissant leurs user-agents à des chaînes non codées en UTF8. Il existe cependant un en-tête de requête Content-Type qui spécifie le type de média (et charset), et je ne suis pas sûr que cela s'applique uniquement au corps de la requête ou aux en-têtes.Les en-têtes de requête HTTP doivent-ils être codés en UTF-8?

Répondre

1

Le HTTP header field values peut contenir des caractères autres que les caractères ASCII:

message-header = field-name ":" [ field-value ] 
field-name  = token 
field-value = *(field-content | LWS) 
field-content = <the OCTETs making up the field-value 
       and consisting of either *TEXT or combinations 
       of token, separators, and quoted-string> 

Voir la Basic Rule pour la définition de OCTET et TEXTE:

OCTET   = <any 8-bit sequence of data> 
TEXT   = <any OCTET except CTLs, 
       but including LWS> 

Mais en seulement général des caractères ASCII sont utilisé pour les valeurs de champ aussi bien.

2

L'en-tête Content-Type s'applique au corps, pas aux en-têtes.

2

RFC HTTP définit contenu d'en-tête en tant que type * texte, qui est définie sur ou vers la page 15 que ISO-8859-1, sauf lorsque le non ISO-8859-1 est codé conformément à la RFC 2047.

+0

1. Notez que la référence à la RFC2047 est largement considérée comme une erreur car les mots codés 2047 ne peuvent explicitement pas être inclus dans un tel contexte. La référence 2047 est supprimée des nouvelles normes en attente de travail sur HTTP. – bobince

Questions connexes