Les spécifications concernant les proxy http sont définies dans la rfc du protocole HTTP : http://tools.ietf.org/html/rfc2616
Sinon le plus rapide pour couvrir une partie des cas généraux c'est de faire du reverse-engineering sur un serveur existant.
1- démarrer un serveur qui gère le protocole que l'on veut reverse-engineerer.
2- démarrer un logiciel qui permet de voir se qui passe sur la couche IP.
3- observer le format des requêtes qui arrivent vers le serveur, et le format des réponses du serveur.
Sinon, il me semble le format de requête et de réponse d'un proxy HTTP sont les mêmes que ceux d'un serveur Web. Le proxy HTTP est en fait un serveur Web qui sous-traite les requêtes adressées à un autre domaine autre que lui-même. Il utilise le header "Host:" pour savoir où la requête doit être redirigée.
Par exemple, sur une requête du type :
Le serveur fait lui même la requête vers Google, réceptionne la réponse et la renvoie au client qui lui en a fait la demande.
(Et il y a d'autres headers qu'il est utile de renseigner dans le cas d'une utilisation en mode proxy comme X-Forwarded-For http://en.wikipedia.org/wiki/List_ [...] der_fields )