2012-01-03 9 views
37

Widzę ten nagłówek dołączony do odpowiedzi z Apache. Czy ma to jakieś znaczenie w przeglądarkach nowej generacji; lub jest tylko po to, aby obejść błąd w starszych wersjach Netscape. Wydaje się dziwne.X-Pad: unikaj nagłówka błędu przeglądarki dodanego przez Apache'a

EDIT

robiłem testy wydajności w naszej aplikacji, gdy zobaczyłem, że w tekście odpowiedzi JMeter, nie było to dziwne nagłówek że wraca. Podano:

X-pad: avoid browser bug 

To wszystko! Więc spróbowałem trochę googlowania i wydawało mi się, że dodano nagłówek do błędu przeglądarki Netscape. W każdym razie, nadal jestem ciekawy, że skoro jesteśmy tak daleko od tych wersji przeglądarki (na szczęście), istnieje solidny powód, że wciąż tam jest. Używamy apache2.

Mam nadzieję, że te szczegóły pomogą.

Pozdrowienia

+1

to pytanie może poważnie korzyści z pewnymi szczegółami - Czym dokładnie jest nagłówek i zawartość? (Tytuł jest trudny do przeanalizowania, umieść treść w _body_ tego pytania ...) - jaką wersję Apache'a znalazłeś, wyemituj ten nagłówek? Pod jakimi warunkami? Wygląda na to, że jest to miłe znalezisko, ale nie prawie szczegóły, które sprawiają, że jest niesamowity. – sarnold

+0

Dzięki za wskazanie, że iur sarnold; to była rzeczywiście chybiona z mojej strony. Dodano więcej szczegółów tutaj. – Priyank

+0

O tak, znacznie lepiej, dzięki. :) – sarnold

Odpowiedz

61

Nie, obecnie jest to szczątkowy nagłówek; to znaczy, że została tam umieszczona do obejścia błędu w przeglądarce, która jest przestarzała (kilka pokoleń starsza niż IE6 - błąd został zgłoszony jako naprawiony w 1997 r., 15 lat temu!) i nikt go już nie używa.

The patch to remove it jest w SVN Apache od 2008 roku, ale najwyraźniej nadal nie rozprzestrzenił się na wszystkie dystrybucje (a niektóre strony mogą korzystać z niezaktualizowanych wersji Apache).

Oto komentarz dla nagłówka, podniósł 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

wiem, że odpowiedź została zaakceptowana, ale wciąż myślę, że to byłby przydatny dla użytkowników korzystających z PHP.
Jeśli jesteś użytkownikiem PHP i otrzymujesz ten nagłówek. Możesz go wyłączyć, używając niestandardowego nagłówka "X-Powered-By".
Dla przykładu:
header('X-Powered-By: Powerful Management'); można również usunąć to w ten sposób
header_remove('X-Pad');, czasami ustawienie tego nagłówka do opróżnienia także usuwa go:
header('X-Pad:')
i Bam Twój X-Pad nagłówek zniknie

+1

Wpadłem na nagłówek X-Pad i (tylko dlatego, że byłem ciekawy, to naprawdę nie robi żadnej szkody) próbowałem go usunąć. Twoja droga NIE działa. Oczywiście, jeśli X-Pad został dodany w jednym żądaniu i dodasz nagłówek X-Powered-By, może go nie być w przypadku tego konkretnego żądania - ponieważ nowy nagłówek służy teraz jako dopełnienie, więc nie ma miejsca na linii 256/257 już. W innej próbie (która nie posiadała X-Pad bez nowego nagłówka X-Powered-By), może się teraz pojawić, ponieważ pierwszy podział linii został przesunięty do 256 teraz. –

+1

Dla mnie ustawienie X-Pad do pustej wartości za pomocą PHP (nagłówek ("X-Pad:")) pracował, aby się go pozbyć - Apache wydaje się akceptować to i nie zastępuje go (robi to dla niektórych innych automatów wygenerowane nagłówki, takie jak długość treści). Czy ktoś może to sprawdzić? –

Powiązane problemy