2012-01-03 8 views
37

Veo este encabezado adjunto a la respuesta de apache. Tiene algún significado en navegadores de nueva era; o simplemente está ahí para eludir un error en versiones anteriores de Netscape. Parece extraño.X-Pad: evitar el encabezado del error del navegador agregado por apache

EDITAR

que estaba haciendo una prueba de funcionamiento en nuestra aplicación, cuando vi que en el texto de respuesta Jmeter, había un extraño cabecera que regresa. Decía:

X-pad: avoid browser bug 

Eso es todo! Así que traté de buscar en Google, y me pareció que se había añadido un encabezado para el error de los navegadores de Netscape. De todos modos, todavía tengo curiosidad, ya que estamos muy lejos de esas versiones de navegador (afortunadamente), hay una razón sólida por la que todavía está allí. Usamos apache2.

Afortunadamente esos detalles ayudan.

Saludos

+1

esta pregunta podría seriamente beneficio con algunos detalles - _Qué encabezado y contenido específicamente? (El título es difícil de analizar. Pon el contenido en el _cuerpo_ de la pregunta ...) ¿Qué versión de Apache encontraste emitir este encabezado? ¿Bajo que condiciones? Parece un hallazgo limpio, pero no casi el detalle que lo haría increíble. – sarnold

+0

Gracias por señalar que iur sarnold; de hecho fue una falla de mi parte. Se agregaron más detalles aquí. – Priyank

+0

Oh sí, mucho mejor, gracias. :) – sarnold

Respuesta

61

No, es un vestigio de cabecera en la actualidad; es decir, se puso a trabajar en torno a un error en un navegador que está obsoleto (varias generaciones anteriores a IE6 - ¡el error fue reportado como reparado en 1997, hace 15 años!) y nadie lo usa más.

The patch to remove it está en el SVN de Apache desde 2008, pero aparentemente todavía no se ha propagado a todas las distribuciones (además de que algunos sitios pueden usar versiones no actualizadas de Apache).

Aquí está el comentario para la cabecera, recogido from the 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. 
*/ 
2

sé que la respuesta ha sido aceptado pero todavía creo que esto sería útil para los usuarios que ejecutan php.
Si eres un usuario de php y estás obteniendo este encabezado. Puede desactivarlo usando el encabezado personalizado "X-Powered-By".
Por ejemplo:
header('X-Powered-By: Powerful Management'); También puede eliminar de esta manera
header_remove('X-Pad');, el establecimiento de veces que la cabecera de vaciar también lo elimina:
header('X-Pad:')
y Bam su cabecera X-Pad desaparecerá

+1

Me encontré con el encabezado X-Pad y (solo porque tenía curiosidad, realmente no hace ningún daño) intenté eliminarlo. Tu camino NO funciona. Claro, si el X-Pad fue agregado en una solicitud y usted agrega el encabezado X-Powered-By, puede haber desaparecido para esa solicitud específica, porque el nuevo encabezado sirve como relleno ahora, por lo que el salto de línea no está en la posición 256/257 más. Sin embargo, en otra solicitud (que no tenía el X-Pad sin el nuevo encabezado X-Powered-By), ahora podría aparecer porque el primer salto de línea se había cambiado a 256 ahora. –

+1

Para mí, configurar X-Pad a un valor vacío usando PHP (encabezado ('X-Pad:')) funcionó para deshacerse de él - Apache parece aceptar esto y no lo anula (lo hace para algunos otros auto- encabezados generados como contenido-longitud). ¿Alguien puede verificar esto? –

Cuestiones relacionadas