42 votes

X-Pad: éviter l'en-tête de bug du navigateur ajouté par apache

Je vois cet en-tête ajouté à la réponse de apache. Elle n'a aucune signification dans le nouvel âge, les navigateurs, ou c'est simplement là pour contourner un bug dans les anciennes versions de Netscape. Semble bizarre.

MODIFIER

J'ai été faire un test de performance sur notre app, quand j'ai vu que dans Jmeter texte de la réponse, il y avait cette étrange d'en-tête qui revient. Il a dit:

X-pad: avoid browser bug

Thats it! J'ai donc essayé quelques recherches sur google, et il semblait comme un en-tête ajoutée pour les navigateurs Netscape' bug. De toute façon, je suis toujours curieuse, puisque nous sommes si loin l'un de ces versions de navigateur (heureusement), est-il une raison solide qu'il est toujours là. Nous utilisons apache2.

Espérons que ceux-ci les détails de l'aide.

Cheers

70voto

Piskvor Points 46986

Nope, c'est un vestige de l'en-tête aujourd'hui; c'est-à-dire, il a été mis là pour contourner un bug dans un navigateur qui est obsolète (plusieurs générations âgées de plus de IE6 - le bug a été signalé fixe en 1997, il y a 15 ans!) et personne ne les utilise plus du tout.

Le patch pour supprimer c' est dans le SVN depuis 2008, mais apparemment il n'a toujours pas propagées à l'ensemble des distributions (ainsi que certains sites peuvent utiliser des versions non mises à jour d'Apache).

Voici le commentaire de l'en-tête de, choisi à partir de la source:

/* Navigator versions 2.x, 3.x and 4.0 betas up to and including 4.0b2
 * have a header parsing bug.  If the terminating \r\n occur starting
 * at offset 256, 257 or 258 of output then it will not properly parse
 * the headers.  Curiously it doesn't exhibit this problem at 512, 513.
 * We are guessing that this is because their initial read of a new request
 * uses a 256 byte buffer, and subsequent reads use a larger buffer.
 * So the problem might exist at different offsets as well.
 *
 * This should also work on keepalive connections assuming they use the
 * same small buffer for the first read of each new request.
 *
 * At any rate, we check the bytes written so far and, if we are about to
 * tickle the bug, we instead insert a bogus padding header.  Since the bug
 * manifests as a broken image in Navigator, users blame the server.  :(
 * It is more expensive to check the User-Agent than it is to just add the
 * bytes, so we haven't used the BrowserMatch feature here.
 */

3voto

Steel Brain Points 161

Je sais que la réponse a été acceptée mais je pense que cela serait utile pour les utilisateurs de php.
Si vous êtes un utilisateur php et que vous obtenez cet en-tête. Vous pouvez le désactiver en utilisant l'en-tête "X-Powered-By" personnalisé.
Par exemple:
header('X-Powered-By: Powerful Management'); vous pouvez aussi l'enlever de cette façon
header_remove('X-Pad'); , définir parfois cet en-tête à vide le supprime également:
header('X-Pad:')
et bam votre en-tête X-Pad va disparaître

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X