Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 200

его код во время тестирования. Древняя программа telnet позволяет вам подклю-

читься к любому серверу и порту и вводить команды.

Запросим у любимого многими тестового сайта Google базовую информацию

о его домашней странице. Введем следующее:

$ telnet www.google.com 80

Если на порте 80 по адресу google.com существует веб-сервер (я думаю, что это бес-

проигрышный вариант), telnet выведет на экран подтверждающую информацию, а затем

отобразит пустую строку, которая является приглашением ввести что-то еще:

Trying 74.125.225.177...

Connected to www.google.com.

Escape character is '^]'.

Теперь введем настоящую команду HTTP для telnet, которую он отправит на

веб-сервер Google. Самая распространенная команда HTTP (ее использует ваш

браузер каждый раз, когда вы вводите URL в адресной строке) — это GET. Она по-

зволяет получить содержимое заданного ресурса вроде HTML-файла и возвраща-

ет его клиенту. Для первой проверки мы используем команду HTTP HEAD, которая

просто получает некую базовую информацию о ресурсе:

HEAD / HTTP/1.1

Конструкция HEAD / отправляет запрос HTTP HEAD глагол (команда), чтобы полу-

чить информацию о домашней странице (/). Добавьте дополнительный символ

возврата каретки, чтобы отправить пустую строку, тогда удаленный сервер будет

знать, что вы закончили и ждете ответа. Вы получите ответ вроде следующего (мы

обрезали некоторые длинные строки с помощью многоточий, чтобы они не выва-

ливались за пределы страницы):

HTTP/1.1 200 OK

Date: Sat, 26 Oct 2013 17:05:17 GMT

Expires: -1

Cache-Control: private, max-age=0

Content-Type: text/html; charset=ISO-8859-1

Set-Cookie: PREF=ID=962a70e9eb3db9d9:FF=0:TM=1382807117:LM=1382807117:S=y...

260

Глава 9. Распутываем Всемирную паутину

expires=Mon, 26-Oct-2015 17:05:17 GMT;

path=/;

domain=.google.com

Set-Cookie: NID=67=hTvtVC7dZJmZzGktimbwVbNZxPQnaDijCz716B1L56GM9qvsqqeIGb...

expires=Sun, 27-Apr-2014 17:05:17 GMT

Web Clients | 219 path=/;

domain=.google.com;

HttpOnly

P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts...

Server: gws

X-XSS-Protection: 1; mode=block

X-Frame-Options: SAMEORIGIN

Alternate-Protocol: 80:quic

Transfer-Encoding: chunked

Так выглядят заголовки ответов HTTP и их значения. Некоторые из них, вроде

Date или Content-Type, обязательны. Другие, наподобие Set-Cookie, используются

для отслеживания вашей активности в течение нескольких посещений (мы пого-

ворим об управлении состоянием немного позже). Когда вы делаете запрос HTTP