Dans un article de blog, j'utilise le code PHP suivant pour définir le type de contenu d'une réponse:
header('content-type: application/json; charset=utf-8');
Je viens de recevoir un commentaire sur ce poste en disant que les content-type
besoins à l' actif, Content-type
. Est-ce correct? Cela semble fonctionner pour moi avec tous les minuscules et j'ai supposé que les en-têtes HTTP étaient insensibles à la casse. Ou cela fonctionne-t-il simplement parce que les navigateurs sont agréables?
http
http-headers
Svish
la source
la source
Réponses:
Les noms d'en-tête ne sont pas sensibles à la casse.
De RFC 2616 - "Hypertext Transfer Protocol - HTTP / 1.1" , Section 4.2, "En-têtes de message" :
La mise à jour de la RFC 7230 ne répertorie aucun changement par rapport à la RFC 2616 dans cette partie.
la source
Les noms d'en-tête HTTP ne respectent pas la casse, selon la RFC 2616 :
4.2:
(Les valeurs de champ peuvent ou non être sensibles à la casse.)
Si vous faites confiance aux principaux navigateurs pour respecter cela, vous êtes prêt.
BTW, contrairement à la plupart de HTTP, les méthodes (verbes) sont sensibles à la casse:
5.1.1 Méthode
la source
tldr; les en-têtes HTTP / 1.1 et HTTP / 2 ne respectent pas la casse.
Selon RFC 7230 (HTTP / 1.1):
https://tools.ietf.org/html/rfc7230#section-3.2
En outre, RFC 7540 (HTTP / 2):
https://tools.ietf.org/html/rfc7540#section-8.1.2
la source
header('Content-type: image/png')
ne fonctionnait pas avec PHP 5.5 servant IE11, comme dans le flux d'image était affiché sous forme de texteheader('Content-Type: image/png')
travaillé, comme dans l'image apparue comme une imageLa seule différence est le «T» majuscule.
la source
Ils ne sont pas sensibles à la casse. En fait, le serveur Web NodeJS les convertit explicitement en minuscules, avant de les rendre disponibles dans l'objet de requête.
la source
Le RFC pour HTTP (tel que cité ci-dessus) dicte que les en-têtes ne respectent pas la casse, mais vous constaterez qu'avec certains navigateurs (je vous regarde, IE), la mise en majuscule de chacun des mots a tendance à être la meilleure:
contre
Ce n'est pas la norme "HTTP", mais juste une autre des bizarreries du navigateur, nous en tant que développeurs, devons penser.
la source
officiellement, les en-têtes ne respectent pas la casse, cependant, il est courant de mettre en majuscule la première lettre de chaque mot.
mais, comme c'est une pratique courante, certains programmes comme IE supposent que les en-têtes sont capitalisés.
Ainsi, alors que les documents disent qu'ils ne respectent pas la casse, les mauvais programmeurs ont fondamentalement changé les documents.
la source
le mot Headers n'est pas sensible à la casse, mais à droite comme le Content-Type, il est recommandé de l'écrire de cette façon, car sa casse est sensible. comme mon exemple ci-dessous
la source