Запуск простого HTTP-сервера в Python 3: команда и модули
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Чтобы запустить HTTP-сервер на Python 3, используйте модуль http.server
следующим образом:
python3 -m http.server 8000
Данный код запустит HTTP-сервер, который будет поддерживать текущую директорию на порту 8000. Если вы не укажите порт, по умолчанию будет использоваться порт 8000.
Привязка к локальному адресу в Python 3
Если вам не нужно предоставлять доступ к файлам через Интернет, ограничьте доступ только для локальных запросов, связав сервер с определенным IP-адресом (127.0.0.1
):
python3 -m http.server --bind 127.0.0.1 8000 # и ваш секрет не будет раскрыт!
Обслуживание определенной директории
Если вам нужно предоставить доступ к файлам конкретной директории, используйте параметр --directory
:
python3 -m http.server --directory /path/to/directory 8000 # на подиум выходят мои котограммы!
Изменение порта
Не хотите использовать занятый порт 8000 или просто хотите разнообразия? Выберите любой другой свободный порт:
python3 -m http.server 9000 # потому что девятка — это просто красиво!
Приветствие IPv6
Если у вас установлен Python 3.8 или более новая версия, вы можете использовать IPv6. Для этого укажите IPv6-адрес в параметре привязки:
python3 -m http.server --bind ::1 # Привет, сеть нового поколения!
Дружелюбное предупреждение
Тем не менее, несмотря на удобство и простоту использования, модуль http.server
не предназначен для использования в продакшн-среде. Его минимальные функции безопасности делают его легкой добычей для хакеров!
Запуск устаревшего кода Python 2
Хотите запустить код Python 2 на Python 3? Используйте инструмент 2to3
для гладкого перехода:
2to3 – <<< "import SimpleHTTPServer" # Воскрешаем из архивов...
Он подскажет, какие изменения нужно внести, чтобы код SimpleHTTPServer
работал на Python 3 без проблем.
Визуализация
Переход с Python 2 на Python 3 можно сравнить с обновлением старого велосипеда до современного электросамоката:
Старый велосипед (Python 2): 🚲
Команда: **`python -m SimpleHTTPServer`** ➡️ *На таком далеко не уедешь...*
Добро пожаловать в мир Python 3:
Электросамокат (Python 3): 🛴
Команда: **`python -m http.server`** ➡️ *Дадим жару!
Прощай, устаревший мир технологий, здравствуй, яркий мир современной продуктивности.
Полезные материалы
- Официальная документация модуля
http.server
Python 3.12.1 — здесь вы найдёте всё оhttp.server
, великолепный ресурс по данному модулю. - Как использовать Python SimpleHTTPServer – PythonForBeginners.com — пошаговое руководство для начинающих без всяких загадок.
- Эквивалент команды "python -m SimpleHTTPServer" в Python 3 – Stack Overflow — коллективный опыт и мудрость сообщества на все случаи жизни.
- Руководство по использованию
http.server
для запуска веб-серверов – DigitalOcean — подробное иллюстрированное руководство, которое быстро превратит вас в мастераhttp.server
. - Как настроить локальный тестовый сервер? – Обучение веб-разработке | MDN — MDN Web Docs расскрывают все секреты запуска и настройки локальных серверов для разработки.
- Улучшения модуля
http.server
в Python 3.7+ – Python Insider — оставайтесь в курсе последних обновлений и улучшений, начиная с версии Python 3.7. - Минимальный HTTP-сервер на Python – GitHub Gist — проверенный временем код, который обеспечивает базовую обработку различных HTTP-запросов.