I submitted a few different examples of (what I think is) prior art for the 335 patent. My favorite is this one, a multi-user shared annotation system based on an HTTP proxy:

http://web.archive.org/web/19970606225031/http://www.osf.org...

Basically, you could submit annotations to be placed at any point in the document, and you and other users of the annotation server would see them (literally inserted into the HTML file). It was a crude and slow system, but the authors planned to replace it with a Java applet in the future. According to them, “since it is expected that the Java run-time system will be an integral part of all future web clients, this remains a pan-browser solution.”

So many failed dreams… not just Java, but the whole idea of a user’s browsing experience being theirs to command and design, with the server’s response only a suggestion. Maybe I’m being overdramatic. Browser extensions, custom CSS, user scripts, etc. can do the same things today – and of course they’re far more capable, in terms of the range of functionality exposed, and indeed far more popular – but I still feel like there’s something missing. Semanticity, maybe. So many pages these days are just blobs of minified JS and CSS that (intentionally or not) prevent you from understanding the structure of the document without extensive reverse engineering.

…anyway, I’m getting off topic. I think it’s prior art because it satisfies all the conditions of at least some of the claims:

1. A method for providing an internet third party data channel, said third party data channel being established within an existing data channel between an internet server and an internet client, said third party data channel connecting a data source distinct from said internet server to said internet client, said method including the steps of:

existing data channel: the HTTP connection

internet server: original website; internet client: user’s browser

data source: annotation server’s repository of data

third party data channel: connection between proxy and annotation server

a) using a processing device distinct from said internet server for monitoring said existing data channel for a data communication having a predetermined property, said data communication having an intended recipient of one of said internet server and said internet client,

processing device: HTTP proxy (in the paper, it’s separate from the annotation server, one of those trivial details that can make a big different w.r.t. patents)

data communication: HTTP response

predetermined property: various; probably it checks the HTTP status code, though I haven’t checked the implementation

b) upon detection of said data communication, performing:

b1) the step of accessing said data source to obtain third party data,

(querying the annotation server)

b2) a step selected from the group consisting of the step of modifying said data communication in response to said third party data and the step of replacing said data communication in response to said third party data to obtain a resultant data communication, and

(modifying the response to add annotations)

b3) the step of sending said resultant data communication to said intended recipient.

(returning it to the user)

Though, while writing this up, I realized there’s one potential problem. At a literal level, the proxy does not “monitor” packets waiting for a HTTP response to the browser. Rather, it receives requests and makes its own request to the server; arguably that is not an “existing data channel”, and arguably the site’s response is directed towards the proxy, not the browser.

Luckily, the patent’s description seems to explicitly disclaim this interpretation:

For example, a proxy can be thought of as an application level router, not contributing to the data stream being transported through it. This logical transparency of a proxy is maintained even if the proxy, in fact, forwards cached copies of requested objects to a client.