Python - Máy chủ HTTP
Thư viện tiêu chuẩn Python đi kèm với một máy chủ web được xây dựng sẵn có thể được gọi để giao tiếp với máy chủ khách hàng web đơn giản. Số cổng có thể được chỉ định theo chương trình và máy chủ web được truy cập thông qua cổng này. Mặc dù nó không phải là một máy chủ web đầy đủ tính năng có thể phân tích cú pháp nhiều loại tệp, nhưng nó có thể phân tích cú pháp các tệp html tĩnh đơn giản và phân phát chúng bằng cách phản hồi chúng bằng các mã phản hồi cần thiết.
Chương trình dưới đây khởi động một máy chủ web đơn giản và mở nó ở cổng 8001. Việc máy chủ chạy thành công được biểu thị bằng mã phản hồi 200 như được hiển thị trong đầu ra chương trình.
import SimpleHTTPServer
import SocketServer
PORT = 8001
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:
serving at port 8001
127.0.0.1 - - [14/Jun/2018 08:34:22] "GET / HTTP/1.1" 200 -
Phục vụ một máy chủ cục bộ
Nếu chúng tôi quyết định đặt máy chủ python làm máy chủ cục bộ chỉ phục vụ máy chủ cục bộ, thì chúng tôi có thể sử dụng chương trình sau để làm điều đó.
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()
Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:
Serving HTTP on 127.0.0.1 port 8000 ...