+1  A: 

First, this is not an error. The 3xx denotes a redirection. The real errors are 4xx (client error) and 5xx (server error).

If a client gets a 304 Not Modified, then it's the client's responsibility to display the resouce in question from its own cache. In general, the proxy shouldn't worry about this. It's just the messenger.

BalusC
thanks - so are you saying then, what I should do is catch the exception still (right at the point I'm doing the request), but then check to see what is in the exception and if it's a 304 then just continue on?
Greg
No - if you've sent a if-modified-since or if-none-match it implies you have a local (cached) copy - the server is instructing you top use that copy.
symcbean
OK - just had to ensure I returned the same status code in the local request and this seems to work. See http://stackoverflow.com/questions/2611264/httplistener-how-do-i-send-a-webexception-http-304-not-modified-error-back-to for more detail on the code
Greg