Bonjour à tous,
Je viens à l'aide sur ce forum car je suis bloqué pour un projet d'études (réalisation d'un proxy http). Projet assez simple, interpréter la requête (GET) du client, la traiter, l'envoyer au serveur web, traiter la réponse, et l'envoyer au client. Tout fonctionne nickel à l'exception de deux "détails":
- Accept-Encoding: gzip
- La réception d'image
- un soucis de performance
Dès que "j'active" la compression je reçois un "content encoding error" dans le browser par contre si je supprime le "Accept-Encoding: gzip" ça passe sans problème...
Je pense que ce problème est lié au second, car aucune image ne passe, dans wireshark il me dit que les données sont corrompues, mais je ne vois pas par quoi... le site que je dois pouvoir afficher est le suivant:
http://httpd.apache.org/docs/2.2/fr/
On peut y voir la plume en haut à gauche ainsi que la toute petite flèche vers la gauche, seul ces deux objets ne sont pas affiché...
Par contre sur cet autre site aucun problème: http://httpwg.org/specs/ (à l'exception de l'image en haut à droite qui est en https).
Je me demande s'il n'y aurait pas un décalage de bit quelque part qui ferait que cela est lu comme "corrompu" mais je ne vois absolument pas où, surtout que tout le reste fonctionne !!
Le dernier point, le soucis de performance voici ce que je vois dans wireshark (par exemple)
- (temps = 0) requête envoyée par le client;
- (temps + 0,182026 s) requête traitée et envoyée au serveur;
- (temps + 0,170815 s) paquet n°1 de la réponse reçu sur le serveur;
- (temps + 0 s) paquet n°2 de la réponse reçu sur le proxy;
- (temps + 0,000205 s) paquet n°3 de la réponse reçu sur le proxy;
- (temps + 0,000062 s) paquet n°4 de la réponse reçu sur le proxy;
- (temps + 0,000099 s) paquet n°5 de la réponse reçu sur le proxy (dernier paquets);
- (temps + 29,990383 s) paquet n°1 de la réponse envoyé au client;
- (temps + 0,000001 s) paquet n°2 de la réponse envoyé au client;
- (temps + 0,000001 s) paquet n°3 de la réponse envoyé au client;
- (temps + 0,000001 s) paquet n°4 de la réponse envoyé au client;
- (temps + 0,000001 s) paquet n°5 de la réponse envoyé au client;
On peut voir qu'entre la réception sur le serveur proxy et l'envoi vers le client il s'écoule 30sec. Est-ce que quelqu'un pourrait me dire si éventuellement il y a un timer? Je ne configure rien dans mon programme, et par défaut le timeout sur le socket est à "0" ce qui signifie "infini"...
Est-ce que vous pouvez m'aider?
Merci d'avance !
Hjacquemin
Partager