[squid-users] Effect of 1xx series responses on proxies for subscription protocol

From: Benjamin Carlyle <benjamincarlyle@dont-contact.us>
Date: Sun, 31 Jul 2005 11:37:44 +1000

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 <benjamincarlyle@optusnet.com.au>
Received on Sat Jul 30 2005 - 19:37:49 MDT

This archive was generated by hypermail pre-2.1.9 : Mon Aug 01 2005 - 12:00:03 MDT