cURL – это развитый инструмент командной строки, широко используемый для тестирования и устранения неполадок при передаче данных клиент-сервер по протоколам HTTP и HTTPS.
Используя ряд параметров командной строки, вы можете протестировать свою CDN-зону.
-I, --head
Получить только заголовки! HTTP-серверы имеют команду HEAD, которая используется для получения заголовка документа без самого документа.
-L, --location
Если сервер сообщает, что запрошенная страница перемещена в другое место (обозначенное заголовком Location: и кодом ответа 3XX), эта опция заставит curl повторить запрос по новому адресу. Если используется вместе с -i, –include или -I, –head, то будут показаны заголовки для всех запрошенных страниц.
-v, --verbose
Включает отображение дополнительной информации о работе cURL. Полезно для отладки и наблюдения за тем, что происходит «под капотом». Символ «>» в начале строки означает «данные заголовка», отправленные cURL. Символ «<» означает «данные заголовка», полученные cURL, которые в обычных случаях скрыты. А строка, начинающаяся с «*», означает дополнительную информацию, предоставляемую cURL.
Например:
$ curl -IL http://11131-1.b.cdn12.com/sample.mp4
HTTP/1.1 200 OK
Server: ucdn
Date: Thu, 07 May 2020 11:52:29 GMT
Content-Type: video/mp4
Content-Length: 1804076
Connection: keep-alive
Keep-Alive: timeout=20
Last-Modified: Wed, 15 Apr 2020 17:57:18 GMT
Etag: “60df82646f4bedd777446e75f4305da8”
X-Timestamp: 1586973437.14001X-Trans-Id: tx34e73eba3210470e90837-005eb3f67d
X-Served-From: origin
Expires: Sat, 17 Oct 2020 19:37:40 GMT
Cache-Control: max-age=14111111
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: HEAD, GET, OPTIONS
Accept-Ranges: bytes
Как проверить, был ли определенный ресурс уже кэширован edge-серверами UCDN?
Используя приведенную выше команду (curl -IL) и заменив http://example.ucdn.com/sample.mp4 на URL вашего файла (http(s)://URL_to_your_file.com), вы можете проверить, доставляется ли контент edge-сервером UCDN или origin-сервером.
HTTP/1.1 200 OK – означает успешный запрос к серверу.
Дополнительные сведения о кодах состояния HTTP на странице https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
В приведенном выше примере заголовок «X–Served–From» показывает, что ресурс обслуживается origin-сервером (X–Served–From: origin). Это означает, что это был первый запрос этого ресурса после настройки CDN-зоны и что ресурс еще не был кэширован.
Например:
$ curl -ILv http://11131-1.b.cdn12.com/sample.mp4
* Trying 67.216.91.30…
* TCP_NODELAY set
* Connected to 11131-1.b.cdn12.com (67.216.91.30) port 80 (#0)
> HEAD /sample.mp4 HTTP/1.1
> Host: 11131-1.b.cdn12.com
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Server: ucdn
Server: ucdn
< Date: Thu, 07 May 2020 13:23:26 GMT
Date: Thu, 07 May 2020 13:23:26 GMT
< Content-Type: video/mp4
Content-Type: video/mp4
< Content-Length: 1804076
Content-Length: 1804076
< Connection: keep-alive
Connection: keep-alive
< Keep-Alive: timeout=20
Keep-Alive: timeout=20
< Last-Modified: Wed, 15 Apr 2020 17:57:18 GMT
Last-Modified: Wed, 15 Apr 2020 17:57:18 GMT
< Etag: “60df82646f4bedd777446e75f4305da8”
Etag: “60df82646f4bedd777446e75f4305da8”
< X-Timestamp: 1586973437.14001
X-Timestamp: 1586973437.14001
< X-Trans-Id: tx34e73eba3210470e90837-005eb3f67d
X-Trans-Id: tx34e73eba3210470e90837-005eb3f67d
< Expires: Sat, 17 Oct 2020 19:37:40 GMT
Expires: Sat, 17 Oct 2020 19:37:40 GMT
< Cache-Control: max-age=14105654
Cache-Control: max-age=14105654
< X-Served-From: l1
X-Served-From: l1
< Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: HEAD, GET, OPTIONS
Access-Control-Allow-Methods: HEAD, GET, OPTIONS
< Accept-Ranges: bytes
Accept-Ranges: bytes
В приведенном выше примере заголовок «X–Served–From» показывает, что ресурс обслуживается edge-серверами UCDN (X–Served–From: l1 / X–Served–From: l2). Это означает, что это не первый запрос этого ресурса после настройки CDN-зоны и что ресурс уже находится в кэше.
Узнайте больше о cURL и всех флагах на странице cURL manual page.