درخواست HEAD می‌تواند هنگام مقایسهٔ پروکسی‌ها ترافیک بدنهٔ پاسخ را کاهش دهد. روی یک handle موجود PycURL که از پیش با مقصد، پروکسی و مهلت‌های زمانی تنظیم شده است:

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

این مقادیر را پس از یک انتقال موفق و پیش از بستن handle بخوانید. NOBODY برای HTTP روش HEAD را انتخاب می‌کند؛ اما سرآیندهای درخواست، مذاکرهٔ پروکسی یا ترافیک TLS را حذف نمی‌کند.

STARTTRANSFER_TIME زمان سپری‌شده از آغاز انتقال تا نخستین بایت پاسخ است. آماده‌سازی و پردازش سرور را در بر می‌گیرد، پس سنجهٔ همین مسیر و مقصد است، نه تأخیر جدای پروکسی. PRETRANSFER_TIME آماده‌سازی پروتکل را پوشش می‌دهد؛ با کم‌کردن آن هم کاری فراتر از خود پروکسی باقی می‌ماند.

مقصد، سیاست تغییرمسیر و شرایط استفادهٔ دوباره از اتصال را در همهٔ مقایسه‌ها یکسان نگه دارید. زمان‌های تغییرمسیر روی هم انباشته می‌شوند. اتصال تازه و تونل استفاده‌شدهٔ دوباره به دو پرسش کارایی متفاوت پاسخ می‌دهند.

HEAD می‌تواند رفتاری متفاوت از GET داشته باشد. آن را برای مشاهدهٔ سبک دسترس‌پذیری یا زمان به کار ببرید و سپس هنگام انتخاب مسیر برای یک برنامه، روش واقعی را جداگانه اعتبارسنجی کنید.

مقالات مرتبط