Un client TCP peut finir d'envoyer une requête et fermer son côté écriture tout en continuant d'attendre la réponse. La politique de Squid pour cet état compte lorsqu'on compare un petit test TCP brut à un client HTTP.

Pour Squid 7, la valeur par défaut documentée est :

half_closed_clients off

Avec cette politique, Squid ferme la connexion du client lorsqu'une lecture signale qu'aucune donnée entrante n'arrive plus. Avec l'option activée, il peut conserver la connexion jusqu'à ce qu'une lecture ou une écriture rencontre une erreur. La documentation recommande la politique off par défaut pour un fonctionnement normal de proxy direct.

Notez le moment où le client de test signale la fin de l'entrée. Un pipeline qui atteint EOF sur stdin peut se comporter différemment d'un client qui garde son côté émission ouvert pendant qu'il lit la réponse, même lorsque les deux ont envoyé les mêmes octets de requête HTTP.

Si le client de test se termine complètement, il ne peut pas lire une réponse qui arrive ensuite. Un réglage de demi-fermeture côté serveur ne peut pas changer la durée de vie de ce processus client.

Choisissez ensemble le comportement EOF du client et la politique du proxy pour le test prévu. La politique de demi-fermeture suppose aussi un message HTTP doté d'un cadrage valide ; elle ne fournit pas un corps de requête manquant et ne répare pas un bloc d'en-têtes incomplet.

Articles similaires