web-dev-qa-db-fra.com

demande de fichiers téléchargeables via HEAD

Je parie que Google vérifie les pages Web via les méthodes de requête HTTP HEAD et HTTP GET. Je pense donc que je devrais également autoriser la sortie des en-têtes appropriés pour les fichiers téléchargeables de mon site Web via une requête HTTP HEAD, mais aucune documentation ne me dit comment s'y prendre.

C'est actuellement mon en-tête HTTP pour un fichier téléchargeable quand on le demande à mon serveur avec une méthode de requête GET ou HEAD:

HTTP/1.1 200 OK
Date: Sun, 06 Sep 2015 06:11:29 GMT
Server: Apache
Set-Cookie: CC=something;path=/;domain=example.com;expires=Tue, 06 Oct 2015 06:11:29 GMT
X-Robots-Tag: noindex
cache-control: max-age=864000,must-revalidate
Last-Modified: Sun, 06 Sep 2015 02:39:19 GMT
content-disposition: attachment; filename="HQ_Photo8.jpg.gz"
Content-Length: 251085
X-Frame-Options: DENY
Accept-Ranges: bytes
Content-Type: application/gzip

Quels en-têtes dois-je ajouter ou supprimer pour me conformer aux normes lorsque quelqu'un demande le téléchargement via une méthode de demande HEAD?

J'ai lu avec un document html standard que, quand on le demande avec une méthode HEAD, l'en-tête "content-length" doit être supprimé, mais comme c'est un fichier téléchargeable, je pense que c'est son Plus impliqué.

Des idées?

2
Mike

Les en-têtes de réponse HTTP pour les demandes HEAD et GET doivent être identiques . La seule différence est que le corps de la réponse est absent de la réponse HEAD.

De RFC 2616 - HTTP/1.1 Section 9.4 HEAD :

9.4 HEAD

La méthode HEAD est identique à GET, sauf que le serveur NE DOIT PAS renvoyer de corps de message dans la réponse. La métainformation contenue dans les en-têtes HTTP en réponse à une demande HEAD DEVRAIT être identique à l'information envoyée en réponse à une demande GET . Cette méthode peut être utilisée pour obtenir des métainformations sur l'entité impliquée par la demande sans transférer le corps d'entité lui-même. Cette méthode est souvent utilisée pour tester la validité, l’accessibilité et les modifications récentes des liens hypertextes.

La réponse à une demande HEAD PEUT être mise en cache en ce sens que les informations contenues dans la réponse PEUVENT être utilisées pour mettre à jour une entité précédemment mise en cache à partir de cette ressource. Si les nouvelles valeurs de champ indiquent que l'entité mise en cache diffère de l'entité actuelle (comme cela serait indiqué par une modification de Content-Length , Content-MD5, ETag ou Last-Modified), le cache DOIT alors traiter l’entrée du cache comme périmée.

Il ne semble y avoir aucune raison d'omettre l'en-tête Content-Length de la réponse (à moins que son inclusion ne nécessite peut-être un calcul coûteux). La spécification mentionne spécifiquement l'inclusion de cet en-tête et, s'il était omis, cela pourrait réduire les fonctionnalités.

J'ai lu avec un document html standard que, quand on le demande avec une méthode HEAD, l'en-tête "content-length" doit être supprimé, mais comme c'est un fichier téléchargeable, je pense que c'est son Plus impliqué.

Où avez-vous lu ceci?

Il n'y a pas vraiment de différence entre un "document HTML" et un "fichier téléchargeable".

2
MrWhite