Время ответа, доступность и список всех поддоменов доменного имени

Проверяем Время Ответа Сайта из Командной строки Linux

Суммарное время ответа сайта

Используйте следующую команду, чтобы узнать скорость ответа сайта, в секундах.

$ curl -s -w %{time_total}\\n -o /dev/null http://xakinfo.ru

Пример выполненной команды:

0,117

Краткое описание опций:

ОпцииОписание
-sТихий режим. Не показывать индикатора выполнения или сообщений об ошибках
-wОпределяет, что отображается на стандартный вывод после завершенной и успешной операции
-oПеренаправляет вывод в ‘/dev/null’
time_totalСуммарное время, которое заняла операция, в секундах

Подробный отчет о времени отклика сайта

Следующая команда возвращает нам lookupconnectpretransferstarttransferвремя в секундах, а так же суммарное время которое ушло на операцию.

$ curl -s -w '\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n' -o /dev/null http://xakinfo.ru

Пример выполнения команды:

Lookup time:    0,004
Connect time:   0,022
PreXfer time:   0,022
StartXfer time: 0,068

Total time:     0,125

Краткое описание опций:

ОпцииОписание
Lookup time (time_namelookup)Время, в секундах, затраченное на преобразование доменного имени в IP адрес
Connect time (time_connect)Время, в секундах, затраченное на подключение к удаленному серверу по TCP
PreXfer time (time_pretransfer)Время, в секундах, затраченное на подготовку к обмену данными. Оно включает в себя время на ‘обмен рукопожатиями’ участников конкретного протокола.
StartXfer time (time_starttransfer)Время, в секундах, затраченное на все действия, вплоть до начала передачи первого байта данных. Оно включает в себя ‘time_pretransfer’, а так же время, необходимое серверу на подсчет результатов.

Более подробный отчет о времени отклика сайта

Следующая команда добавляет данные о времени, затраченном на appconnect и redirect. Эти опции работают только в последних версиях CURL.

$ curl -s -w '\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nAppCon time:\t%{time_appconnect}\nRedirect time:\t%{time_redirect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n' -o /dev/null http://xakinfo.ru

Пример выполненной команды:

Lookup time:    0,003
Connect time:   0,020
AppCon time:    0,000
Redirect time:  0,000
PreXfer time:   0,020
StartXfer time: 0,963

Total time:     1,001

Краткое описание опций:

ОпцииОписание
AppCon time (time_appconnect)Время, в секундах, с начала замера, до завершения соединения/рукопожатия по протоколу SSL/SSH и пр. с удаленным хостом (Добавлено в 7.19.0)
Redirect time (time_redirect)Время, в секундах, затраченное на редиректы, включая name lookup, connect, pretransfer и transfer. ‘time_redirect’ показывает суммарное время всех редиректов. (Добавлено в 7.12.3)

Используйте --version, чтобы узнать версию CURL.

$ curl --version

Время Отклика: 3 Важных Лимита

Небольшая заметка для информации.

  • 0.1 сек. — это время, за которое пользователь ощутит что система реагирует мгновенно, а это означает что никакой обратной связи, за исключением отображения результата, не требуется;
  • 1.0 сек. — это время, в течении которого поток мыслей пользователя остается непрерывным, даже если он и заметит задержку. Как правило, никакой обратной связи не требуется во время задержки более 0.1 но менее 1.0 секунды, однако пользователь теряет ощущение непосредственной работы с данными;
  • 10 сек. — это практически предел удерживания внимания пользователя на диалоге. Во время более длительных задержек, у пользователя возникнет желание заняться другими вещами, пока загрузка страницы не закончится. Поэтому возникает необходимость в организации обратной связи, которая будет показывать что все в порядке и операция выполняется. Обратная связь особенно важна если время задержки варьирует, так как пользователь не будет знать чего ожидать.

Проверяем Доступность Сайта из Командной Строки в Linux

Проверяем доступность сайта с помощью CURL

Выполните следующую команду для проверки доступности сайта и получения сообщения со статусом от сервера:

$ curl -Is http://xakinfo.ru | head -1 HTTP/1.1 200 OK

Статус код ‘200 OK’ означает что запрос был успешно выполнен и сайт доступен.

Вот еще один пример, который показывает как curl отображает разные ответы сервера:

$ curl -Is http://xakinfo.ru | head -n 1 HTTP/1.1 301 Moved Permanently

Так же с помощью curl можно проверить доступность отдельной страницы на сайте, например:

$ curl -Is http://xakinfo.ru/en/Bash-Colors | head -n 1 HTTP/1.1 200 OK

Проверяем доступность сайта с помощью TELNET

Вы так же можете проверить доступность сайта и получить сообщения со статусом от сервера с помощью команды telnet:

$ telnet xakinfo.ru 80
Trying 11.226.210.109...
Connected to www.xakinfo.ru.
Escape character is '^]'.
HEAD / HTTP/1.0
HOST: www.xakinfo.ru
<НАЖМИТЕ ENTER>
<НАЖМИТЕ ENTER>

Вы получите вывод вроде этого:

HTTP/1.1 200 OK
Server: nginx/1.1.10
Date: Sun, 26 May 2013 19:29:46 GMT
***

Который так же означает что с сайтом все ОК.

Как: Получить Список Всех Поддоменов Доменного Имени

Если Вам необходимо узнать все поддомены какого-либо доменного имени, Вы можете попробовать выполнить AXFR запрос.

Этот совет работает только в случае когда DNS-сервер, к которому мы будем обращаться, разрешает AXFR запросы.

Не все DNS-сервера разрешают запросы по протоколу AXFR. Большинство из них отвечают «Transfer failed».

Первая вещь, которую необходимо сделать, это узнать DNS-сервера отвечающие за зону нашего домена, например zonetransfer.me:

$ dig zonetransfer.me

Нас интересует информация из AUTHORITY SECTION:

;; AUTHORITY SECTION: 
zonetransfer.me. 7122 IN NS ns16.zoneedit.com.
zonetransfer.me. 7122 IN NS ns12.zoneedit.com.

В данном случае домен zonetransfer.me имеет 2 авторитетных сервера: ns12.zoneedit.com и ns16.zoneedit.com.

Теперь Вы можете запросить все поддомены zonetransfer.me у одного из этих серверов:

$ dig @ns12.zoneedit.com zonetransfer.me AXFR

Полученный результат:

; <<>> DiG 9.9.2-P1 <<>> @ns12.zoneedit.com zonetransfer.me AXFR 
; (1 server found)
;; global options: +cmd
*** zonetransfer.me. 7200 IN NS ns16.zoneedit.com.
zonetransfer.me. 7200 IN NS ns12.zoneedit.com.
zonetransfer.me. 7200 IN A 217.147.180.162
zonetransfer.me. 7200 IN MX 0 ASPMX.L.GOOGLE.COM.
***