G'day,

I'm currently developing a new HTTP subscription protocol. The primary 
difference between
mine and past attempts such as GENA is the use of a persistent HTTP connection 
to return
updates on rather than requiring the server to return responses on a separate 
connection or
set of connections. This approach may have some advantages, particularly in 
relation to
firewalls and I hope proxies.

I've collected some research to date on several aspects of how the protocol 
will be
handled by proxies, but my chief unknown at present is how the returned updates 
will be
handled. My model is that a new 1xx series return code be introduced to carry 
these
messages, and that a typical subscription consist of (request using SUBSCRIBE 
method (or
similar), 1xx response * n, final non-1xx response). My hope is that these can 
be
intermingled on a single persistent connection as follows, in a conversation 
that is in some
ways similar to pipelining:

1) SUBSCRIBE resourceA HTTP/1.1
2) receive 1xx response with initial state information for A
3) SUBSCRIBE resourceB HTTP/1.1
4) receive 1xx response with initial state information for B
5-n) receive 1xx responses intermingled for both A and B

I know that proxies should pass the unknown SUBSCRIBE method through without 
interpretation
except for invalidating any associated cache entry. I understand that 
unexpected 1xx series
responses should be passed back to the client instead of being interpreted. The 
main points
I'm unsure of are the following:

* Could a proxy timeout because it fails to receive a non-1xx-series response 
in an
appropriate time? Are there any other considerations for a single client and 
server with the
proxy in-between?
* When multiple clients make subscribe requests to the same server through a 
proxy will
their calls be intermingled (pipelined?) such that the 1xx responses for one 
client might be
directed back to the other client? Are there starvation issues to consider here?

If you can think of any other major issues off the top of your head I would 
also be
grateful. I hope that what I will propose can work with existing proxies well 
enough to
allow a later upgrade path for proxies to handle things more cleanly with 
explicit awareness
of the request method.

This is possibly a general proxy query rather than one associated directly with 
Squid. If
possible I would like to have both the theoretical and practical answers at my 
fingertips as
I refine what I'm doing.

Thanks in advance for any insight you can offer...
-- 
Benjamin Carlyle <[EMAIL PROTECTED]>

Reply via email to