Máy chủ web nhỏ Python

Máy chủ là phần mềm hoặc phần cứng máy tính xử lý các yêu cầu và cung cấp dữ liệu cho khách hàng qua mạng. Có nhiều loại máy chủ khác nhau, phổ biến nhất là máy chủ web, máy chủ cơ sở dữ liệu, máy chủ ứng dụng và máy chủ giao dịch

Các máy chủ web được sử dụng rộng rãi như Apache, Monkey và Jigsaw khá tốn thời gian để thiết lập khi thử nghiệm các dự án đơn giản và trọng tâm của nhà phát triển được chuyển từ sản xuất logic ứng dụng sang thiết lập máy chủ

Mô-đun

$ python3 -m http.server 8000
4 của Python là một công cụ hữu ích và đơn giản mà các nhà phát triển có thể sử dụng cho một số trường hợp sử dụng, với mục đích chính là đây là cách nhanh chóng để phân phát tệp từ một thư mục

Nó loại bỏ quá trình tốn nhiều công sức liên quan đến việc cài đặt và triển khai các máy chủ web đa nền tảng có sẵn

Ghi chú. Mặc dù

$ python3 -m http.server 8000
4 là một cách tuyệt vời để dễ dàng phục vụ các tệp từ một thư mục, nhưng nó không nên được sử dụng trong môi trường sản xuất. Theo tài liệu Python chính thức, nó "chỉ thực hiện kiểm tra bảo mật cơ bản. "

Máy chủ HTTP là gì

HTTP là viết tắt của Giao thức truyền siêu văn bản. Chúng ta hãy nghĩ về một giao thức như một ngôn ngữ nói như tiếng Anh. Tiếng Anh có một bộ quy tắc và từ vựng. Vì vậy, nếu cả hai chúng ta đều hiểu các quy tắc và từ vựng xác định Ngôn ngữ tiếng Anh, thì chúng ta có thể giao tiếp bằng ngôn ngữ một cách hiệu quả

Cũng giống như con người, các thiết bị điện tử để giao tiếp với nhau. Do đó, họ cần một 'bộ quy tắc và từ vựng' để chủ động truyền và nhận thông tin từ nhau

Giao thức là một bộ quy tắc tiêu chuẩn tạo điều kiện giao tiếp thành công giữa các thiết bị điện tử. Các bộ quy tắc được triển khai và chấp nhận lẫn nhau này bao gồm các lệnh được sử dụng để bắt đầu gửi và nhận dữ liệu, loại dữ liệu được truyền giữa các thiết bị, cách phát hiện lỗi trong dữ liệu, cách xác nhận truyền dữ liệu thành công, v.v.

Ví dụ: khi bạn thực hiện tìm kiếm đơn giản bằng trình duyệt, có hai hệ thống thiết yếu tham gia - Máy khách HTTP và Máy chủ HTTP

Máy khách, thường được gọi là trình duyệt, có thể là một chương trình phức tạp như Google Chrome hoặc Firefox nhưng cũng có thể đơn giản như một ứng dụng CLI. Máy khách gửi yêu cầu của bạn đến máy chủ, nơi xử lý các yêu cầu HTTP và cung cấp phản hồi cho máy khách. Trong trường hợp trình duyệt, phản hồi thường là một trang HTML

Mô-đun SimpleHTTPServer của Python

Khi bạn cần một máy chủ web chạy nhanh, việc thiết lập một máy chủ cấp sản xuất là quá mức cần thiết

Mô-đun

$ python3 -m http.server 8000
4 của Python là một công cụ tiết kiệm sức lao động mà bạn có thể tận dụng để biến bất kỳ thư mục nào trong hệ thống của mình thành một máy chủ web đơn giản. Nó đi kèm với một máy chủ HTTP đơn giản cung cấp các trình xử lý yêu cầu
$ python3 -m http.server 8000
7 và
$ python3 -m http.server 8000
8 tiêu chuẩn

Với máy chủ HTTP tích hợp, bạn không cần phải cài đặt hoặc định cấu hình bất kỳ thứ gì để khởi động và chạy máy chủ web của mình

Ghi chú. Mô-đun Python

$ python3 -m http.server 8000
4 đã được hợp nhất vào mô-đun
$ python3 -m http.server 8000
1 trong Python 3. Trong suốt bài viết này, chúng tôi sẽ sử dụng phiên bản Python 3, nhưng nếu bạn đang sử dụng Python 2, bạn có thể hoán đổi
$ python3 -m http.server 8000
1 cho
$ python3 -m http.server 8000
4 và phiên bản này sẽ hoạt động trong hầu hết các trường hợp

Sử dụng dòng lệnh

Cách đơn giản nhất để khởi động một máy chủ web phục vụ thư mục chạy lệnh là chỉ cần điều hướng đến thư mục dự án của bạn bằng thiết bị đầu cuối và chạy

Trăn 2

$ python -m SimpleHTTPServer 8000

Trăn 3

$ python3 -m http.server 8000

Bằng cách chạy lệnh này, bạn sẽ có thể truy cập các tệp trong thư mục của mình thông qua trình duyệt của mình tại

$ python3 -m http.server 8000
4

Như bạn có thể thấy, máy chủ cung cấp giao diện người dùng thư mục đơn giản trong đó bạn có thể truy cập bất kỳ tệp nào. Đây là cách đơn giản nhất để trực tiếp phục vụ các tệp cục bộ qua HTTP

Cách sử dụng Python mặc định

Vì lý do này hay lý do khác, việc chạy máy chủ này thông qua dòng lệnh có thể không phù hợp với trường hợp sử dụng của chúng tôi. Vào những lúc như thế này, thay vào đó, chúng ta có thể sử dụng máy chủ trực tiếp trong mã của mình bằng cách sử dụng đối tượng

$ python3 -m http.server 8000
5. Nhưng trước tiên, chúng ta cần thiết lập nó với một máy chủ socket

Bên dưới giao thức HTTP là UDP [Giao thức gói dữ liệu người dùng] hoặc TCP [Giao thức điều khiển truyền], là các giao thức vận chuyển xử lý việc vận chuyển dữ liệu từ vị trí mạng này sang vị trí mạng khác. Vì chúng tôi đang chạy máy chủ HTTP, ứng dụng của chúng tôi sẽ sử dụng giao thức TCP, thông qua Địa chỉ ổ cắm TCP chứa địa chỉ IP và số cổng. Điều này có thể được thiết lập với

$ python3 -m http.server 8000
6 của Python mà chúng tôi đã triển khai bên dưới

import http.server
import socketserver

PORT = 8000

handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer[["", PORT], handler] as httpd:
    print["Server started at localhost:" + str[PORT]]
    httpd.serve_forever[]

Ghi chú. Mã sẽ không thành công với lỗi

$ python3 -m http.server 8000
7 đối với các phiên bản Python

Chủ Đề