cURL

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 


В приведенном выше примере заголовок «XServedFrom» показывает, что ресурс обслуживается origin-сервером (XServedFrom: 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

В приведенном выше примере заголовок «XServedFrom» показывает, что ресурс обслуживается edge-серверами UCDN (XServedFrom: l1 / XServedFrom: l2). Это означает, что это не первый запрос этого ресурса после настройки CDN-зоны и что ресурс уже находится в кэше.


Узнайте больше о cURL и всех флагах на странице cURL manual page.



Устранение неисправностей

Python-Swiftclient

Инструменты разработчика в браузерах

Traceroute

Wget