libcurl CURLINFO_REDIRECT_TIME - PullRequest
       4

libcurl CURLINFO_REDIRECT_TIME

0 голосов
/ 21 февраля 2019

Кто-нибудь может мне помочь понять, как работают переменные CURLINFO _ * _ TIME из реализаций libcurl (пробовал стандартные Linux curl и pycurl), в основном: что такое REDIRECT_TIME и когда происходят все перенаправления?

Из документации libcurlв https://curl.haxx.se/libcurl/c/curl_easy_getinfo.html:

|--NAMELOOKUP
    |--|--CONNECT
    |--|--|--APPCONNECT
    |--|--|--|--PRETRANSFER
    |--|--|--|--|--STARTTRANSFER
    |--|--|--|--|--|--TOTAL
    |--|--|--|--|--|--REDIRECT

Определения:

NAMELOOKUP - время, которое прошло с начала до завершения разрешения имени.

CONNECT - время, которое потребовалосьот начала до тех пор, пока не будет установлено соединение с удаленным хостом (или прокси).

APPCONNECT - время, которое прошло с начала до завершения соединения / рукопожатия SSL с удаленным хостом.

PRETRANSFER - время, которое прошло с начала до передачи файла, вот-вот начнется.Это включает в себя все команды предварительной передачи и согласования, которые являются специфическими для конкретного протокола (ов).

STARTTRANSFER - Время, которое потребовалось от начала до получения первого байта libcurl.

TOTAL - общее время предыдущего запроса.

REDIRECT - время, которое потребовалось для всех шагов перенаправления, включая поиск по имени, подключение, предварительный перенос и передачу до начала окончательной транзакции.Итак, это ноль, если переадресация не произошла.

Теперь, время, которое я получаю, заставляет меня поверить, что ниже верно: PRETRANSFER + REDIRECT + X = TOTAL Это правильно, т.е.происходит ли перенаправление непосредственно перед отправкой первого байта ответа, или 30 * код является началом ответа?Что такое X?

Примеры (с помощью команды curl в Ubuntu 18.10 и pycurl на python 3.6.7):

pycurl:

HTTP Status: 200
 EFFECTIVE_URL: https://www.wp.pl/
REDIRECT_COUNT: 2
 SIZE_DOWNLOAD: 634.7 kB
SPEED_DOWNLOAD: 690.7 kB
  CONTENT_TYPE: text/html; charset=utf-8

    NAMELOOKUP: 0.072
       CONNECT: 0.241
    APPCONNECT: 0.216
   PRETRANSFER: 0.401
 STARTTRANSFER: 0.640
      REDIRECT: 0.300
    TOTAL_TIME: 0.919

curl:

  "http_code": 200,
  "num_redirects": 2,
  "size_download": 664472,
  "speed_download": 543757,
  "time_namelookup": 0.100274,
  "time_pretransfer": 0.408898,
  "time_redirect": 0.333625,
  "time_starttransfer": 0.636432,
  "time_total": 1.222781,
  "url_effective": "https://www.wp.pl/"

pycurl:

   HTTP Status: 200
 EFFECTIVE_URL: https://edition.cnn.com/
REDIRECT_COUNT: 3
 SIZE_DOWNLOAD: 1851.8 kB
SPEED_DOWNLOAD: 1997.6 kB
  CONTENT_TYPE: text/html; charset=utf-8

    NAMELOOKUP: 0.064
       CONNECT: 0.195
    APPCONNECT: 0.289
   PRETRANSFER: 0.417
 STARTTRANSFER: 0.550
      REDIRECT: 0.364
    TOTAL_TIME: 0.927

curl:

  "content_type": "text/html; charset=utf-8",
  "http_code": 200,
  "num_redirects": 3,
  "size_download": 1896220,
  "speed_download": 2273645,
  "time_namelookup": 0.154532,
  "time_pretransfer": 0.441366,
  "time_redirect": 0.392132,
  "time_starttransfer": 0.574551,
  "time_total": 0.834307,
  "url_effective": "https://edition.cnn.com/"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...