2010-04-15 7 views
6

J'ai essayé de déboguer cela pendant des semaines. Tous les navigateurs de tous les clients de mon réseau domestique envoient 'Accept-Encoding: gzip, deflate'. Cependant, cet en-tête est en quelque sorte, quelque part abandonné avant que la demande ne parvienne à un serveur Web. Par exemple, http://www.whatsmyip.org/http_compression/ indique "Non, votre navigateur ne demande pas de contenu compressé".Les en-têtes Accept-Encoding sont envoyés par le navigateur mais ne sont pas reçus par le serveur

J'ai utilisé Fiddler pour m'assurer que tous mes navigateurs envoient l'en-tête. J'ai échangé mon routeur. J'ai éteint tous les logiciels anti-virus. Brundouse/Roadrunner (le fournisseur de services Internet par câble local) dit qu'ils ne font aucun filtrage (et je ne vois pas pourquoi ils le feraient dans ce cas).

Toutes les suggestions seraient les bienvenues!

+0

C'est assez bizarre. Si cela m'arrivait, et que l'une des machines concernées était un ordinateur portable, je l'emmènerais dans mon café du quartier pour voir ce qu'il se passerait. Cela peut être utile si vous pouvez publier * tous * les en-têtes que vous voyez dans les requêtes HTTP sortantes. – Pointy

+0

Par souci d'exhaustivité, je vais essayer au café avec mon ordinateur portable plus tard. Voici les en-têtes que j'envoie: Host \t www.whatsthatbug.com User-Agent \t Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729) Accept \t text/css,*/*;q=0.1 Accept-Language \t en-us,en;q=0.5 Accept-Encoding \t gzip,deflate Accept-Charset \t ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive \t 115 Connection \t keep-alive mais le serveur ne voit pas 'Accept-Encoding' –

Répondre

2

Essayez-le avec HTTPS. Si vous naviguez sur un site via HTTPS, rien entre votre navigateur et le serveur web ne peut altérer un aspect au niveau HTTP de la requête ou de la réponse, y compris si la compression est activée, sans que vous en ayez une connaissance immédiate et claire fait (vérifier le certificat du site dans la barre d'adresse de votre navigateur et voir si c'est légitime).

+0

Ok, j'ai changé les logs sur mon serveur Apache pour enregistrer les en-têtes Accept-Encoding.Et ce qui apparaît dans les journaux est "-" pour ce champ. Donc, quelque part entre mon routeur et le serveur (n'importe quel serveur, pas seulement le mien), l'en-tête Accept-Encoding est supprimé. Maintenant, je suis vraiment confus! –

+0

Si votre serveur Apache est responsable de SSL et possède un certificat, si vous l'essayez avec SSL, vous serez en mesure de voir s'il y a un "Man in the Middle" qui change la requête à la volée. Avec SSL, votre navigateur peut détecter et vous avertir de tout "Man in the Middle" en jouant avec la requête. – yfeldblum

+0

Donc s'il est généré par mon navigateur, il n'est pas changé sur mon réseau, il n'est pas modifié à mi-chemin, et il n'est pas vu sur un serveur distant, où pourrait aller l'en-tête Accept-Encoding? –

0

Vérifiez votre logiciel antivirus. Il intercepte probablement votre trafic sortant et modifie les en-têtes à la volée afin d'obtenir du contenu non compressé. Les programmeurs paresseux n'aiment pas inclure eux-mêmes les méthodes de décompression, ni traiter le codage par morceaux.

Norton Internet Security écrasera accepter l'encodage avec cette ligne:

---------------: ----- -------

McAfee avec ce écrase:

X-McProxyFilter: *************

quelque chose que je ne l'ai pas encore identifié avec ce écrasent:

Accept-Xncoding: gzip, dégonfler

Vous êtes probablement dans le même bateau. Je lis Zone Alarm efface complètement l'en-tête d'encodage (ce qui signifie recalculer la taille du paquet, mais pourquoi devraient-ils se soucier de la charge qu'ils introduisent sur votre système?). Si vous utilisez Zone Alarm, désactivez l'option de confidentialité Internet ou autre, et réessayez.

Chaque fois que j'ai vu ce problème, il a été le résultat d'un antivirus de merde. Désactiver complètement la capacité de quelqu'un à recevoir du contenu compressé sans le savoir est sale.

1

J'ai rencontré le problème Accept-Xncoding et j'ai déterminé que CA Internet Security Suite était à l'origine du problème. En désactivant wan't enought, vous deviez désinstaller puis effacer le cache IE.

Questions connexes