Całkowicie rozumiem, dlaczego warto przekierować pamięć podręczną w 99% sytuacji, ale czy w ogóle można to wyłączyć?
Cóż, jeśli robisz to z punktu widzenia rozwoju serwera WWW, to oczekiwanie, że zachowanie „pamięci podręcznej za wszelką cenę” zostanie zmienione w celu zaspokojenia twoich „niekończących się usprawnień programistycznych”, jest złym sposobem na atak tej bestii. Podczas debugowania przekierowań serwera WWW należy skoncentrować się na sprawdzeniu danych wyjściowych nagłówka, a nie pełnego renderowania strony udostępnianego przez przeglądarki.
Zamiast tego poleciłbym nauczenie się korzystania curl
z -I
opcji wiersza poleceń i zwracania tylko nagłówków, co jest bardzo przydatne w przypadku debugowania przekierowań 301 i 302. Z linii poleceń. Jak wyjaśniono na oficjalnej curl
stronie podręcznika, -I
opcja jest następująca:
-I / - głowa
(HTTP / FTP / FILE) Pobierz tylko nagłówek HTTP! Serwery HTTP zawierają polecenie HEAD, którego używa, aby uzyskać tylko nagłówek dokumentu. W przypadku pliku FTP lub PLIKU curl wyświetla tylko rozmiar pliku i czas ostatniej modyfikacji.
Na przykład wykonaj a, curl -I google.com
a wynik będzie taki:
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:37:42 GMT
Expires: Mon, 11 May 2015 04:37:42 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
A jeśli chcesz śledzić cały łańcuch przekierowań za pomocą nagłówków, dodaj -L
opcję (aka:) --location
do polecenia w następujący sposób:
curl -I -L google.com
Wyjście tej komendy po łańcuchu przekierowań lokalizacji wyglądałoby mniej więcej tak:
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: Mon, 11 May 2015 04:48:14 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=69d90e4d7a0fcbbb:FF=0:TM=1428727694:LM=1428727694:S=1xqS-toEoa5saQ7n; expires=Mon, 10-Apr-2017 04:48:14 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=pkHjv88MsTB_eB1OqqcMm03kTkFNOSaN4ZEiE5iGViEt7AiJWBc6R-0qJ5s1xu3i5Peg5aHOBHyr7n4-oAxyEE2cL_dBPRLYODst0H-Ztfgrf_6LYXXlix9eghSB8Hzc; expires=Sun, 11-Oct-2015 04:48:14 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding
Zwróć uwagę na odpowiedź nagłówka HTTP/1.1 301 Moved Permanently
oraz Location: http://www.google.com/
. Jeśli Twoim celem rozwoju sieci jest testowanie reguł, takich jak przepisywanie i przekierowywanie Apache, curl -I
jest to najlepsze narzędzie, które pomoże Ci zobaczyć, co robią Twoje poprawki.
A po tym, jak te poprawki zostaną sfinalizowane i dopracowane, wykonaj ostatni przegląd w prawdziwej przeglądarce, aby zobaczyć, jak wszystko ożywa.