- From: Lorenzo Vicisano <vicisano@iet.unipi.it>
- Date: Fri, 17 Nov 1995 20:45:58 +0000 ()
- To: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
- Cc: vicisano@iet.unipi.it
Hi, I have a question and a proposal about keepalives. >From what I have seen, a client (C) connection to a server(S) sends Connection: Keep-Alive to ask the server to keep the connection alive. When connecting to a proxy(P), it sends instead Proxy-Connection: Keep-Alive so that P can either understand it and transform it to Connection: Keep-Alive when talking to S, or leave it untouched, in which case S can understand that P cannot handle keepalives. This scheme does not cover the case of a proxy talking to another proxy, e.g. C --------> P1 ----> P2 ------> S Peeking at the list archives I have not seen a solution to the problem. Has this already been discussed and/or solved ? Otherwise, how about the following (which should also make the distinction between "Connection:" and "Proxy-Connection:" redundant). A node (be it a client or a proxy) which likes the connection to stay up, will send Connection: Keep-Alive my-name my-name should be a unique identifier of the requesting node, e.g. the fully qualified hostname or the IP address. The only requirement, it must be easily verifiable by other nodes (thus it cannot be the Ethernet address). A proxy receiving the ""Connection:" header as above can: * ignore it, or pass it unchanged to the next node; * replace "my-name" with its own name before sending it to the next node (proxy or server); When the reply is sent up to the requesting node, each node in the chain which understands the "Connection:" header field will compare the name received as a parameter with the actual name of the previous node (e.g. derived by asking the peer's IP address of the connection). If they match, then the previous node wants the connection to stay up. If they don't, then the connection must be closed. This should work for arbitrarily long chains of nodes. BTW, such an approach can be of general use whenever we want to add backward-compatible options using proxies: compliant nodes just replace the name field, non-compliant ones leave it untouched. I would appreciate your comments on this solution. Thanks Lorenzo <|--------------------------------------------------------------------------|> | Lorenzo Vicisano | http://www.iet.unipi.it/~vicisano | | Dip. di Ingegneria dell'Informazione | e-mail vicisano@iet.unipi.it | | Universita' di Pisa | Phone +39-50-568654 | | Via Diotisalvi, 2 56100 PISA, ITALY | Fax +39-50-568522 | <|--------------------------------------------------------------------------|>
Received on Friday, 17 November 1995 11:55:04 UTC