Рубрики
Без рубрики

Использование Http-сервера Python в качестве простого HTTP-сервера

Привет всем! В сегодняшней статье мы рассмотрим использование Http-сервера Python.

Автор оригинала: Pankaj Kumar.

Привет всем! В сегодняшней статье мы рассмотрим использование Http-сервера Python.

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

Ранее, в Python 2.7, этот модуль назывался Http Server . Но с Python3 этот модуль был объединен в модуль http.server .

Давайте начнем и запустим наш собственный Http-сервер!

Импорт модуля http-сервера Python

Этот модуль входит в состав стандартной библиотеки, поэтому нет необходимости устанавливать его на pip!

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

import http.server

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

Запуск нашего Http-Сервера

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

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

python -m http.server 9000

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

Подключение к серверу Http

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

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

Выход

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

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

Файл Http-Сервера Python

Запуск Http-сервера Python, который обслуживает пользовательский index.html файл

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

Например, мы будем запускать пользовательский Http-сервер, который использует http.server и socket server для 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-сервер с помощью:

python server.py
Пользовательская домашняя страница Python http сервер

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

Вывод

В этой статье мы узнали, как настроить SimpleHTTPServer в Python, используя модуль http.server . Мы также узнали, как определить метод do_GET() для обслуживания пользовательских файлов, когда мы делаем запрос на наш сервер.

Рекомендации