cURL-ის პროქსის დროების წაკითხვა კლიენტის მხრიდან
განმარტეთ კავშირის, TLS-ის, პირველი ბაიტისა და მთლიანი დროის მაჩვენებლები, დაუკვირვებელი ზედა დონის სამუშაო მხოლოდ პროქსის გაზომვას რომ არ მიაკუთვნოთ.
დავუშვათ, cURL ახალ TCP კავშირს ხსნის ჩვეულებრივ HTTP პროქსისთან, აწყობს HTTPS გვირაბს და ჩამოტვირთავს ერთ პასუხს. დროები აღწერს იმ ეტაპებს, რომლებიც cURL-მა ამ გზაზე დააკვირდა.
| მნიშვნელობა | გადაცემის დაწყებიდან გაზომილი ეტაპი |
|---|---|
| time_connect | პროქსისთან კავშირი დასრულდა |
| time_appconnect | შესაბამისი TLS ხელის ჩამორთმევა დასრულდა |
| time_starttransfer | პასუხის პირველი ბაიტი მიღებულია |
| time_total | გადაცემა დასრულდა |
საილუსტრაციო POSIX shell ჩანაწერისთვის:
curl --proxy http://proxy.example:8080 \
--output /dev/null \
--write-out 'connect=%{time_connect} tls=%{time_appconnect} first=%{time_starttransfer} total=%{time_total}\n' \
https://example.com/
პროქსის სერტიფიკატების გარეშე დასაშვები საჯარო HTTPS შედარებისთვის მაგალითის პროქსი შეიძლება ჩაანაცვლოს HTTP პროქსების სიიდან აღებულმა HTTP ჩანაწერმა. მნიშვნელობები კუმულაციური წამებია. ეს არ არის ოთხი დამოუკიდებელი ხანგრძლივობა, რომლებიც უნდა შევკრიბოთ. გადაცემის შეცდომა და პასუხის სტატუსი რიცხვების გვერდით შეინახეთ: წარუმატებელი კავშირი ან უარყოფილი გვირაბი ყველა შემდგომ ეტაპს არ მიუღწევია.
რას გვეტყვის გამოკლება
ერთი წარმატებული პასუხისთვის time_total-ს გამოკლებული time_starttransfer აღწერს პირველი ბაიტის მოსვლის შემდეგ დარჩენილ ინტერვალს. ეს ძირითადად პასუხის გვიანი გადაცემა და მასთან დაკავშირებული სამუშაოა კლიენტის მხარეს. ეს არ არის პროქსის დრო საიტთან დაკავშირებისთვის, რადგან ეს მოხდა მანამ, სანამ პასუხი მოვიდოდა.
ანალოგიურად, time_starttransfer-ს გამოკლებული time_connect შეიძლება მოიცავდეს გვირაბის აგებას, TLS-ს, ზედა ქსელის ლოდინს, სერვერის მუშაობასა და სხვა დამუშავებას. მთელ სხვაობას "პროქსის შეყოვნება" რომ ვუწოდოთ, რამდენიმე კომპონენტს ერთ მონაწილეს მივაკუთვნებთ.
პროქსის DNS, კავშირისა და პასუხის ლოდინების გასაყოფად მიიღეთ შესაბამისი დაკვირვებები ან კვალები პროქსის მხრიდან. კლიენტი ამ შიდა დროის ნიშნებს მხოლოდ HTTP CONNECT-ის გამოყენებით არ იღებს.
შეადარეთ ექვივალენტური გადაცემები. გადამისამართებები რამდენიმე მოთხოვნის დროს ამატებს, ხოლო კავშირის ხელახალი გამოყენება და მულტიპლექსირება ცვლის, რა მოსამზადებელი სამუშაოა საჭირო. ჩაწერეთ ეს პირობები, სანამ ერთი პროქსის რიცხვებს მეორისას შეადარებთ.