2013-01-17 3 views
1

Je commence à apprendre à propos de http correctement.Les en-têtes HTTP sont automatiquement réglés

Je travaille dans la pile de lampe.

Sur la ligne de commande, je demande une page locale qui sera servie avec apache pour voir les en-têtes qui sont retournés.

curl -i local.testsite 

La page Je demande n'a pas de contenu et je ne suis pas de réglage des en-têtes, mais il y a déjà beaucoup d'en-têtes envoyés dans la réponse tels que:

HTTP/1.1 200 OK 
Date: Thu, 17 Jan 2013 20:28:52 GMT 
Server: Apache/2.2.22 (Ubuntu) 
X-Powered-By: PHP/5.3.10-1ubuntu3.4 
Vary: Accept-Encoding 
Content-Length: 0 
Content-Type: text/html 

Donc, si je ne suis pas installais ceux-ci, est-ce qu'Apache les définit automatiquement?

+6

réponse courte ... oui. – Leeish

+0

Oui, Apache les définit automatiquement. Vous pouvez définir que 'Server:' et 'X-Powered-By:' ne sont pas par défaut. –

Répondre

3

Certains sont définis par PHP:

  • L'en-tête X-Powered-By est définie par le paramètre expose_php INI. L'en-tête Content-Type est défini par le paramètre INI default_mimetype.

Les autres sont définies par Apache:

  • L'en-tête Server est fixé par la directive ServerSignature. L'Vary: Accept-Encoding en-tête est généralement envoyé lorsque mod_deflate est activé.

et ne sont pas configurables car ils font partie de la spécification HTTP. Date est included as a MUST (sauf dans certaines conditions) et as a SHOULD.

Voir également How to remove date header from apache? et How to disable the Content-Length response header with Apache?.

3

Oui Apache définit ces paramètres par défaut. Soit dit en passant, si vous ne vous préoccupez les en-têtes, vous devez utiliser

curl -I local.testsite 

-I retourne les en-têtes uniquement (requête HTTP HEAD), de sorte que même si vous aviez contenu sur la page que vous souhaitez seulement obtenir l'en-tête.

Questions connexes