Запуск http сервера python

Запуск простого HTTP сервера из Python

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

№ python -m SimpleHTTPServer

По умолчанию это запустит HTTP сервер на порту 8000. Данный HTTP сервер опубликует содержимого текущего каталога.

Чаще всего я использую этот способ, чтобы быстро опубликовать файлы из произвольного каталога хоста Linux по HTTP, и скачать файлы на другое устройство. Например, мне нужно скачать определенный лог файл из каталога /var/log.

Для этого нужно перейти в указанный каталог:

И запустить HTTP сервер python:

$ python3 -m http.server 8080

запустить веб сервер на python

Если этот порт закрыт файерволом, нужно предварительно временно открыть его:

$ sudo firewall-cmd —add-port=8080/tcp

Теперь на другом устройства откройте браузер, перейдите по адресу http://192.168.79.128:8080 и скачайте нужные файлы.

расшарить файлы в каталоге через HTTP с помощью python

HTTP сервер пишет в консоль лог всех обращений к файлам (HTTP GET).

Затем вернитесь в консоль Linux и завершите процесс веб сервера Python, нажав Ctrl+C .

логи http сервера на python

Этот трюк можно использовать в том числе для передачи файлов из WSL в Windows.

Источник

HttpServer в качестве простого HTTP-сервера в Python

Этот модуль служит очень быстрым и простым способом запустить локальный Http-сервер в вашей сети.

Ранее в Python 2.7 этот модуль назывался HttpServer . Но в Python3 этот модуль был объединен с модулем http.server . Давайте начнем и запустим наш собственный Http-сервер.

Http Server

Импорт модуля httpserver

Этот модуль входит в состав стандартной библиотеки, поэтому устанавливать его не нужно. Чтобы импортировать этот модуль, просто используйте следующую инструкцию:

Читайте также:  Проверить работу кода html

Теперь все готово к запуску сервера. Теперь давайте напишем немного кода для обслуживания файлов.

Запуск HTTP-сервера

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

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

Здесь мы запускаем наш локальный Http-сервер на порту 9000.

Подключение

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

  1. Зайдите на сервер и узнайте IP-адрес сервера с помощью arp -a в Windows или ip -a | grep inet в Linux.
  2. На удаленном клиенте просто введите http://IP_ADDRESS:9000/ в своем браузере.

Базовый Http-Сервер

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

список файлов

Запуск HttpServer, который обслуживает настраиваемый файл index.html

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

Например, мы будем запускать собственный Http-сервер, который использует http.server и socketserver для связи TCP.

MyHttpRequestHandler вызывает метод do_GET() для обслуживания запроса. Чтобы обслужить пользовательский файл для запроса, мы можем переопределить функцию, просто определив другой метод do_GET(), который возвращает другое значение.

# server.py import http.server # Our http server handler for http requests import socketserver # Establish the TCP Socket connections PORT = 9000 class MyHttpRequestHandler(http.server.SimpleHTTPRequestHandler): def do_GET(self): self.path = 'index.html' return http.server.SimpleHTTPRequestHandler.do_GET(self) Handler = MyHttpRequestHandler with socketserver.TCPServer(("", PORT), Handler) as httpd: print("Http Server Serving at port", PORT) httpd.serve_forever()

Если вы назовете это как server.py , вы можете запустить http-сервер, используя:

домашняя страница

Поскольку мы определили нашу пользовательскую функцию do_GET(), мы можем обслуживать HTML-файл домашней страницы, используя наш сервер, которым в данном случае является index.html. Также, если сервер работает в вашей системе, вы можете напрямую получить доступ к серверу, используя localhost: вместо использования IP.

Читайте также:  Border for html form

Источник

Оцените статью