Żądanie HEAD może zmniejszyć ruch treści odpowiedzi podczas porównywania proxy. Na istniejącym uchwycie PycURL, już skonfigurowanym z celem, proxy i limitami czasu:

handle.setopt(pycurl.NOBODY, True)
handle.perform()
ttfb = handle.getinfo(pycurl.STARTTRANSFER_TIME)
prepared = handle.getinfo(pycurl.PRETRANSFER_TIME)

Odczytaj te wartości po udanym transferze i przed zamknięciem uchwytu. NOBODY wybiera HEAD dla HTTP; nie usuwa nagłówków żądania, negocjacji z proxy ani ruchu TLS.

STARTTRANSFER_TIME to czas od początku transferu do pierwszego bajtu odpowiedzi. Obejmuje przygotowanie i przetwarzanie po stronie serwera, więc mierzy tę trasę i cel, a nie izolowane opóźnienie proxy. PRETRANSFER_TIME obejmuje przygotowanie protokołu; nawet po jego odjęciu pozostaje praca poza samym proxy.

Utrzymuj cel, politykę przekierowań i warunki ponownego użycia połączenia jednakowe we wszystkich porównaniach. Czasy przekierowań sumują się. Nowe połączenie i ponownie użyty tunel odpowiadają na różne pytania o wydajność.

HEAD może też zachowywać się inaczej niż GET. Używaj go do lekkiej obserwacji dostępności lub czasu, a następnie osobno zweryfikuj rzeczywistą metodę przy wyborze trasy dla aplikacji.

Powiązane artykuły