9.2 OPTIONS
La méthode OPTIONS représente une demande d'informations sur les options de communication disponibles sur la chaîne de demande / réponse identifiée par Request-URI. Cette méthode permet au client de déterminer les options et / ou les exigences associées à une ressource, ou les capacités d'un serveur, sans impliquer une action de ressource ou lancer une extraction de ressource.
Les réponses à cette méthode ne peuvent pas être mises en cache.
Si la demande OPTIONS comprend un corps d'entité (comme indiqué par la présence de Content-Length ou de Transfer-Encoding), alors le type de support DOIT être indiqué par un champ Content-Type. Bien que cette spécification ne définisse aucune utilisation pour un tel corps, les futures extensions de HTTP pourraient utiliser le corps OPTIONS pour effectuer des requêtes plus détaillées sur le serveur. Un serveur qui ne prend pas en charge une telle extension PEUT rejeter le corps de la demande.
Si Request-URI est un astérisque ("*"), la demande OPTIONS est destinée à s'appliquer au serveur en général plutôt qu'à une ressource spécifique. Puisque les options de communication d'un serveur dépendent généralement de la ressource, la requête "*" n'est utile que comme méthode de type "ping" ou "no-op"; il ne fait rien d'autre que de permettre au client de tester les capacités du serveur. Par exemple, cela peut être utilisé pour tester un proxy pour la conformité HTTP / 1.1 (ou son absence).
Si Request-URI n'est pas un astérisque, la demande OPTIONS s'applique uniquement aux options disponibles lors de la communication avec cette ressource.
Une réponse 200 DEVRAIT inclure tous les champs d'en-tête qui indiquent des fonctionnalités facultatives implémentées par le serveur et applicables à cette ressource (par exemple, Autoriser), y compris éventuellement des extensions non définies par cette spécification. Le corps de réponse, le cas échéant, DEVRAIT également inclure des informations sur les options de communication. Le format d'un tel corps n'est pas défini par cette spécification, mais pourrait être défini par les futures extensions de HTTP. La négociation de contenu PEUT être utilisée pour sélectionner le format de réponse approprié. Si aucun corps de réponse n'est inclus, la réponse DOIT inclure un champ Content-Length avec une valeur de champ "0".
Le champ d'en-tête de demande Max-Forwards PEUT être utilisé pour cibler un mandataire spécifique dans la chaîne de demande. Lorsqu'un mandataire reçoit une demande OPTIONS sur une URL absolue pour laquelle la transmission de demande est autorisée, le mandataire DOIT vérifier la présence d'un champ Max-Forwards. Si la valeur de champ Max-Forwards est zéro ("0"), le mandataire NE DOIT PAS transmettre le message; au lieu de cela, le mandataire DEVRAIT répondre avec ses propres options de communication. Si la valeur de champ Max-Forwards est un entier supérieur à zéro, le mandataire DOIT décrémenter la valeur de champ lorsqu'il transmet la demande. Si aucun champ Max-Forwards n'est présent dans la demande, alors la demande transmise NE DOIT PAS inclure un champ Max-Forwards.
9.4 TÊTE
La méthode HEAD est identique à GET sauf que le serveur NE DOIT PAS renvoyer un corps de message dans la réponse. Les méta-informations contenues dans les en-têtes HTTP en réponse à une demande HEAD DEVRAIENT être identiques aux informations envoyées en réponse à une demande GET. Cette méthode peut être utilisée pour obtenir des méta-informations 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 dans le 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 un changement dans Content-Length, Content-MD5, ETag ou Last-Modified), alors l'antémémoire DOIT traiter l'entrée d'antémémoire comme périmée.