Запит HEAD дає змогу зменшити трафік тіла відповіді під час порівняння проксі. На наявному дескрипторі PycURL, уже налаштованому з призначенням, проксі та тайм-аутами:

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

Читайте ці значення після успішного передання і перед закриттям дескриптора. NOBODY вибирає HEAD для HTTP; він не прибирає заголовки запиту, узгодження з проксі чи трафік TLS.

STARTTRANSFER_TIME — це час від початку передання до першого байта відповіді. Він охоплює підготовку й обробку на сервері, тому вимірює саме цей маршрут і призначення, а не ізольовану затримку проксі. PRETRANSFER_TIME покриває підготовку протоколу; навіть віднявши його, робота поза самим проксі залишається.

Тримайте призначення, політику переспрямувань і умови повторного використання з'єднання однаковими в усіх порівняннях. Час переспрямувань накопичується. Нове з'єднання й повторно використаний тунель відповідають на різні питання про продуктивність.

HEAD може поводитися інакше, ніж GET. Використовуйте його для легкого спостереження за доступністю або часом, а потім окремо перевіряйте фактичний метод, вибираючи маршрут для застосунку.

Схожі статті