Ένα αίτημα HEAD μπορεί να μειώσει την κίνηση του σώματος απόκρισης όταν συγκρίνετε proxy. Σε ένα υπάρχον handle PycURL που έχει ήδη ρυθμιστεί με τον προορισμό, το proxy και τα χρονικά όρια:

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

Διαβάστε αυτές τις τιμές μετά από μια επιτυχή μεταφορά και πριν κλείσετε το handle. Το NOBODY επιλέγει HEAD για HTTP· δεν αφαιρεί τις κεφαλίδες αιτήματος, τη διαπραγμάτευση με το proxy ούτε την κίνηση TLS.

Το STARTTRANSFER_TIME είναι ο χρόνος από την έναρξη της μεταφοράς έως το πρώτο byte απόκρισης. Περιλαμβάνει την προετοιμασία και την επεξεργασία στον διακομιστή, άρα μετρά αυτή τη διαδρομή και τον προορισμό, όχι την απομονωμένη καθυστέρηση του proxy. Το PRETRANSFER_TIME καλύπτει την προετοιμασία του πρωτοκόλλου· αφαιρώντας το, παραμένει δουλειά πέρα από το ίδιο το proxy.

Κρατήστε τον προορισμό, την πολιτική ανακατεύθυνσης και τις συνθήκες επαναχρησιμοποίησης σύνδεσης σταθερές σε όλες τις συγκρίσεις. Οι χρόνοι ανακατεύθυνσης συσσωρεύονται. Μια νέα σύνδεση και μια επαναχρησιμοποιημένη σήραγγα απαντούν σε διαφορετικά ερωτήματα απόδοσης.

Το HEAD μπορεί επίσης να συμπεριφέρεται διαφορετικά από το GET. Χρησιμοποιήστε το για μια ελαφριά παρατήρηση προσβασιμότητας ή χρόνου και έπειτα επικυρώστε την πραγματική μέθοδο χωριστά όταν επιλέγετε διαδρομή για μια εφαρμογή.

Σχετικά άρθρα