Простой Python. Современный стиль программирования (Любанович) - страница 153

, то должны увидеть список каталогов, и сервер выведет на экран строки обращения к журналам наподобие следующих:

>127.0.0.1 — [20/Feb/2013 22:02:37] "GET / HTTP/1.1" 200 -

localhost и 127.0.0.1 являются для TCP синонимами вашего локального компьютера, поэтому они сработают независимо от того, подключены ли вы к Интернету. Вы можете интерпретировать эти строки следующим образом.

• 127.0.0.1 — это IP-адрес клиента.

• Первый символ — это имя удаленного пользователя, если он присутствует.

• Второй символ — это имя авторизующегося пользователя, если требуется.

• [20/Feb/2013 22:02:37] — это дата и время доступа.

• "GET / HTTP/1.1" — это команда, отправленная веб-серверу:

• метод HTTP (GET);

• запрошенный ресурс (/, верхний уровень);

• версия HTTP (HTTP/1.1).

• Последнее число (200) — это код статуса HTTP, возвращенный веб-сервером.

Щелкните на любом файле. Если ваш браузер может распознать его формат (HTML, PNG, GIF, JPEG и т. д.), он должен отобразить его, и сервер занесет этот запрос в журнал. Например, если в вашем текущем каталоге имеется файл oreilly.png, запрос http://localhost:8000/oreilly.png должен вернуть изображение встревоженной зверушки, показанное на рис. 7.1, а в журнале должна появиться похожая запись:

>127.0.0.1 — [20/Feb/2013 22:03:48] "GET /oreilly.png HTTP/1.1" 200 -

Если у вас в этой папке находятся и другие файлы, их названия должны появиться в списке. Можете щелкнуть на одном из файлов, чтобы загрузить его. Если ваш браузер сконфигурирован так, чтобы отображать формат этого файла, вы увидите результат на экране, в противном случае браузер спросит, хотите ли вы загрузить и сохранить файл.

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

>$ python — m http.server 9999

Вы должны увидеть следующее:

>Serving HTTP on 0.0.0.0 port 9999…

Этот сервер, написанный только на Python, лучше всего подходит для быстрых тестов. Мы можете выключить его, остановив его процесс с помощью комбинации клавиш Ctrl+C.

Вы не должны использовать этот простой сервер для загруженного производственного сайта. Традиционные веб-серверы вроде Apache и Nginx гораздо быстрее работают со статическими файлами. Кроме того, этот простой сервер не может работать с динамическим содержимым, на что оказываются способны более продвинутые серверы, принимая дополнительные параметры.

Web Server Gateway Interface

Довольно быстро необходимость в простых файлах исчезает, и нам уже нужен сервер, который может запускать программы динамически. В первые годы существования Всемирной паутины общий интерфейс шлюза