apache javascript php proxy

Guidelines and best practices to make a proxy-friendly site

This is a question to proxy and plugin developers.

The usual mindset when it comes to specific sites is “They make changes which breaks our plugin; we change the logic to make it work again”.

But, what if the other side worries about this too? If we want to compile a set of guidelines and best practices for site development for a proxy-friendly site, what do you suggest should go to it? Think of the tough nuts you’ve had to crack. Do you remember those moments you wished the site developer had done a certain feature differently? How?

Since this is concerned with coding, I don’t think it should go to serverfault.

After reading Pekka’s comment I feel I should add some more background information.

There are web proxy scripts out there such as glype and PHProxy. As the script should cope with many unknown conditions it fails to serve many sites. Because the number of such sites is overwhelming it does not make sense to try to make the proxy’s internal logic sophisticated enough to handle this huge variety. This is where plugins come in handy. The main or base script implements a mechanism to invoke plugin code on a per site bases.

So, if the proxy fails to serve let’s say, which is the case by the way, a coder interested in the challenge does some research and debugging, to find where and why the chain is broken and what should be done to resolve the issue. The coder implements his fix as a plugin for that particular site and users could drop the plugin into their plugins directory.

But it also happens that something on the site changes, and that change causes the plugin to break again. So it is a constant match to catch up with the most recent changes of a site. The irony of the situation is that many site developers neither know, nor care about the impact their design decisions may have on proxy serve-ability of the content. But some sites have good reason to care about the ability of visitors to access their content through proxies. Don’t want to get into politics here, so I leave it to you to guess why this might be important to some sites.

This question is an attempt to tap into the collective knowledge and experience of proxy and plugin authors to make a set of guidelines for making a site proxy-friendly.

I didn’t tag the question php originally as it mostly concerns output of a site, not how you generate it. But decided to tag it so, because it will improve visibility of the question and the tag could be justified on target audience basis as well. I’m making this community wiki also, so if you feel php tag should be removed, just do so.