web-dev-qa-db-fra.com

Que signifie "Connexion: fermer" lorsqu'elle est utilisée dans le message de réponse?

Lorsque le client utilise le Connection: close en-tête dans le message de demande, cela signifie qu'il souhaite que le serveur ferme la connexion après l'envoi du message de réponse.

Je pensais que cet en-tête n'est utilisé que dans les messages de demande, mais j'ai remarqué qu'il est également utilisé dans les messages de réponse. Par exemple:

enter image description here

Que signifie cet en-tête lorsqu'il est utilisé dans le message de réponse?

Je pense que cela signifie que le serveur fermera la connexion après avoir envoyé la réponse au message (même si le client a utilisé le Connection: keep-alive en-tête dans son message de requête). Ai-je raison?

34
user365656

Oui, c'est correct. Le serveur peut simplement dire "Je ne supporte pas votre demande de maintien en vie et fermera simplement la connexion lorsque j'aurai terminé".

De RFC 2616, Section 14.10:

HTTP/1.1 définit l'option de connexion "close" pour l'expéditeur
signale que la connexion sera fermée après la fin de la
réponse. Par exemple,

   Connection: close

dans les champs d'en-tête de la demande ou de la réponse indique que la connexion NE DEVRAIT PAS être considérée comme "persistante" (section 8.1)
une fois la demande/réponse actuelle terminée.

Les applications HTTP/1.1 qui ne prennent pas en charge les connexions persistantes DOIVENT inclure l'option de connexion "fermer" dans chaque message.

33
Sven