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

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

использования, и авторы браузера Mosaic основали компанию Netscape, чтобы

писать коммерческие веб-приложения. Компания Netscape стала достоянием обще-

ственности как часть возникшего в то время интернет-безумия, и взрывной рост

Всемирной паутины не остановился до сих пор.

Практически каждый язык программирования был использован для написания

веб-клиентов и веб-серверов. Динамические языки Perl, PHP и Ruby стали особен-

но популярными. В этой главе я покажу вам, почему Python является особенно

хорошим языком для работы в Интернете на любом из следующих уровней:

 клиенты для удаленного доступа;

 серверы, предоставляющие данные для сайтов и веб-API;

 веб-API и сервисы, позволяющие обмениваться данными другими способами,

отличающимися от просматриваемых веб-страниц.

Выполняя упражнения в конце главы, мы создадим настоящий интерактивный

сайт.

Веб-клиенты

Низкоуровневая система проводящих путей Интернета называется Transmission

Control Protocol/Internet Protocol (протокол управления передачей/интернет-

протокол), или просто TCP/IP (в подразделе «TCP/IP» раздела «Сети» главы 11

этот протокол рассматривается более подробно). Он перемещает байты между ком-

пьютерами, но не обращает внимания на то, что они значат. Это работа высокоуров-

невых протоколов — определений синтаксиса для некоторых целей. HTTP — это

стандартный протокол для обмена данными в Сети.

Всемирная паутина — это клиент-серверная система. Клиент делает запрос

серверу: он открывает соединение TCP/IP, отправляет URL и другую информацию

с помощью HTTP и получает ответ.

Формат ответа также определяется протоколом HTTP. Он включает в себя

статус запроса и (в том случае, если запрос выполнен успешно) данные и формат

ответа.

Самый известный веб-клиент — это браузер. Он может создавать HTTP-запросы

несколькими способами. Вы можете инициировать запрос вручную, написав URL

в адресной строке или щелкнув на ссылке на веб-странице. Очень часто для ото-

бражения сайта используются возвращаемые данные: HTML-документы, файлы

JavaScript, файлы CSS и изображения, — но данные могут быть любого типа, в том

числе и не предназначенные для отображения.

Важный аспект HTTP — этот протокол не имеет состояния. Каждое создаваемое

вами соединение HTTP не зависит от других. Это упрощает базовые операции, но

усложняет другие. Рассмотрим несколько примеров таких усложнений.

 Кэширование. Удаленный контент, который не меняется, должен быть сохранен

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

Веб-клиенты

259

 Сессии. Интернет-магазин должен запоминать содержимое вашей корзины.

 Аутентификация. Сайты, которые требуют ваши имя пользователя и пароль,

должны запоминать их, пока вы авторизованы.

Решения для этих усложнений включают в себя cookie, в которых сервер от-

правляет клиенту довольно специфическую информацию, позволяющую их рас-

познать, когда клиент отправляет cookie назад.

Тестируем с telnet

HTTP — это протокол, основанный на тексте, поэтому вы можете вручную вводить