14 февраля 2013 г.

Простой HTTP сервер на Python


HTTP сервер на Python
Если вам нужно быстро запустить web-сервер и вы не желаете разбираться с настройкой Apache или чем-либо подобным, то вам несомненно сможет помочь Python.
Python поставляется вместе с простым встроенным HTTP сервером. При помощи этого маленького HTTP сервера вы можете включить любой из каталогов вашей системы в директорий вашего web сервера. Для этого вам нужно всего лишь малость - установить Python.


По правде говоря, это очень полезно для того, чтобы, например, сделать общедоступными кое-какие файлы и каталоги в вашей локальной сети.
Установить и запустить этот крошечный, но тем не менее весьма полезный HTTP сервер, очень просто. Нужно всего лишь перейти в целевой каталог выполнить одну однострочную команду.

Итак, предположим, что нам нужно "расшарить" каталог /home/myshare и IP адрес компьютера 192.168.1.2

Запускаем Терминал и выполним команды:

$ cd /home/myshare
$ python -m SimpleHTTPServer

Готово! Сейчас ваш HTTP сервер запустится по порту 8000. Вы получите сообщение:

Serving HTTP on 0.0.0.0 port 8000 ...

Теперь откройте браузер и наберите в нем web адрес:

http://192.168.1.2:8000

Вы также можете доступится туда же по адресу:

http://127.0.0.1:8000

Если в директории /home/myshare (ее вы указывали как цель для сервера выше), есть файл с именем index.html, то этот файл будет служить как основной (home). Если же там не было файла index.html, то отобразится список файлов этого каталога.

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

$ python -m SimpleHTTPServer 8080

Если же вам нужно работать только на localhost, нужно написать небольшую програмку на Python, например такую:

---
import sys
import BaseHTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler

HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"

if sys.argv[1:]:
port = int(sys.argv[1])
else:
port = 8000
server_address = ('127.0.0.1', port)

HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)

sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
httpd.serve_forever()

---

Кстати, это все еще должно работать и под Windows и Cygwin.

Источник: linewb.moy.su
Related Posts Plugin for WordPress, Blogger...