تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

راهنمای ساخت یک سرور HTTP ساده و کاربردی در پایتون


۱۴ آبان ۱۴۰۴

ماژول http.server داخلی پایتون، ابزاری کاربردی است که با یک دستور ساده از ترمینال، می‌توانید یک سرور وب ایجاد کنید. این قابلیت برای توسعه‌دهندگان بسیار مفید است. زیرا اجازه می‌دهد فایل‌ها را برای توسعه محلی به اشتراک بگذارند، فایل‌ها را روی شبکه توزیع کنند یا حتی نمونه‌های اولیه برنامه‌های وب را بدون نیاز به تنظیم سرورهای پیچیده مانند آپاچی یا ان‌جی‌نیکس آزمایش کنند. این ماژول بخشی ضروری از ابزارهای هر توسعه‌دهنده پایتون است و راهی سریع برای راه‌اندازی سرور در عرض چند ثانیه فراهم می‌کند.

در این آموزش از لیارا، یاد می‌گیرید چگونه از http.server پایتون برای ایجاد یک سرور HTTP ساده از هر دایرکتوری روی سیستم خود استفاده کنید. پوشش می‌دهیم چگونگی شروع سرور، دسترسی به آن از مرورگر و ارائه فایل‌ها. همچنین تفاوت‌های بین SimpleHTTPServer در پایتون 2 و ماژول http.server در پایتون 3 را بررسی می‌کنیم. علاوه بر این، به گسترش قابلیت‌های سرور برای مدیریت درخواست‌های خاص، ارائه فایل‌ها روی شبکه و حتی افزودن لایه امنیتی با SSL می‌پردازیم.

همین الان، بدون هیچ‌گونه پیچیدگی، هاست Python خود را در کمتر از ۳۰ ثانیه راه‌اندازی کنید.
✅ استقرار سریع و آسان ✅ پشتیبانی از فریم‌ورک‌های مختلف ✅ عملکرد پایدار
خرید هاست Python

آنچه در ادامه خواهید خواند:

  • نکات مهم و حائز اهمیت
  • http.server پایتون چیست؟
  • چرا از یک سرور HTTP ساده در پایتون استفاده کنیم؟
  • چگونگی شروع سرور (دستور یک‌خطی)
  • چگونگی شروع سرور به صورت برنامه‌ای
  • ارائه یک دایرکتوری خاص
  • انتخاب پورت
  • Python SimpleHTTPServer
  • Python Simple HTTP Server
  • خطای Python SimpleHTTPServer – No module named SimpleHTTPServer
  • مثال Python SimpleHTTPServer
  • Python HTTP Server
  • ملاحظات امنیتی
  • ایمن‌سازی سرور HTTP ساده با SSL/TLS
  • موارد استفاده و بهترین روش ها
  • سفارشی‌سازی رفتار سرور با هندلر سفارشی
  • مدیریت درخواست‌های POST
  • موارد استفاده بالقوه هوش مصنوعی
  • سوالات متداول
  • جمع بندی

نکات مهم و حائز اهمیت

  • ماژول http.server داخلی پایتون می‌تواند هر دایرکتوری را به یک سرور وب HTTP ساده برای توسعه محلی یا اشتراک فایل تبدیل کند.
  • می‌توانید سرور را از ترمینال با دستور یک‌خطی python -m http.server 8000 راه‌اندازی کنید.
  • http.server در پایتون ۳، جانشین ماژول SimpleHTTPServer از پایتون ۲ است.
  • این سرور برای محیط‌های تولید توصیه نمی‌شود، زیرا فاقد ویژگی‌های امنیتی است.
  • می‌توانید با تولید گواهی خودامضا، رمزنگاری SSL/TLS را برای استفاده امن‌تر روی شبکه محلی اضافه کنید.
  • برای قابلیت‌های پیشرفته مانند مدیریت درخواست‌های POST، می‌توانید با زیرکلاس کردن SimpleHTTPRequestHandler، یک هندلر درخواست سفارشی ایجاد کنید.
راهنمای ساخت یک سرور HTTP ساده و کاربردی در پایتون

http.server پایتون چیست؟

http.server پایتون یک ماژول داخلی است که به شما اجازه می‌دهد یک سرور HTTP ساده برای ارائه فایل‌ها از یک دایرکتوری بسازید. این ابزار برای آزمایش، توسعه و اشتراک فایل‌ها روی شبکه عالی است، اما برای استفاده در تولید توصیه نمی‌شود.

چرا از یک سرور HTTP ساده در پایتون استفاده کنیم؟

استفاده از سرور HTTP ساده در پایتون مزایای زیادی دارد:

  • اشتراک آسان فایل‌ها: بدون نیاز به سرور کامل، فایل‌ها را با دیگران روی همان شبکه به اشتراک بگذارید.
  • آزمایش سریع: اپلیکیشن‌های وب یا وب‌سایت‌های استاتیک را بدون تنظیم پیچیده آزمایش کنید.
  • راحتی در توسعه: فایل‌ها را از یک دایرکتوری برای توسعه یا آزمایش محلی ارائه دهید.

چگونگی شروع سرور (دستور یک‌خطی)

برای شروع یک سرور HTTP ساده در پایتون، از این دستور یک‌خطی در ترمینال یا پرامپت فرمان استفاده کنید:

python -m http.server 8000

این دستور سروری روی پورت 8000 راه‌اندازی می‌کند که فایل‌ها را از دایرکتوری فعلی ارائه می‌دهد.

چگونگی شروع سرور به صورت برنامه‌ای

هرچند دستور یک‌خطی برای کارهای سریع عالی است، اما می‌توانید سرور را از داخل یک اسکریپت پایتون هم راه‌اندازی کنید. این روش کنترل بیشتری می‌دهد و اجازه می‌دهد سرور را در اپلیکیشن‌های بزرگ‌تر یا جریان‌های کاری آزمایش خودکار ادغام کنید.

برای این کار، از ماژول‌های داخلی http.server و socketserver پایتون استفاده می‌کنید.

اینجا یک اسکریپت پایه برای راه‌اندازی سرور است:

python

import http.server
import socketserver

PORT = 8000

Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print(f"Serving at port {PORT}")
    # Start the server and keep it running until you stop the script
    httpd.serve_forever()

در این اسکریپت:

  • ماژول‌های لازم را وارد می‌کنیم.
  • socketserver.TCPServer یک سرور TCP ایجاد می‌کند. آرگومان اول (“”, PORT) به سرور می‌گوید روی تمام اینترفیس‌های شبکه موجود روی پورت مشخص گوش دهد، که آن را برای دستگاه‌های دیگر روی شبکه محلی قابل دسترسی می‌کند.
  • http.server.SimpleHTTPRequestHandler هندلر پیش‌فرض است که فایل‌ها و لیست دایرکتوری‌ها را ارائه می‌دهد.
  • httpd.serve_forever() سرور را شروع می‌کند و تا زمانی که آن را متوقف نکنید (مثلاً با Ctrl+C) ادامه می‌دهد.

این کد را به عنوان یک فایل پایتون (مثلاً server.py) ذخیره کنید و از ترمینال اجرا کنید:

python server.py

خروجی “Serving at port 8000” را خواهید دید و سرور فعال می‌شود.

ارائه یک دایرکتوری خاص

برای ارائه فایل‌ها از یک دایرکتوری خاص، به آن دایرکتوری در ترمینال یا پرامپت فرمان بروید و دستور سرور را اجرا کنید. برای مثال، اگر می‌خواهید فایل‌ها را از دایرکتوری به نام myproject ارائه دهید، به myproject بروید و اجرا کنید:

python -m http.server 8000

این کار فایل‌ها را از دایرکتوری myproject ارائه می‌دهد.

انتخاب پورت

به طور پیش‌فرض، سرور روی پورت ۸۰۰۰ اجرا می‌شود. اگر می‌خواهید پورت دیگری استفاده کنید، آن را به عنوان آرگومان پس از دستور سرور مشخص کنید. برای مثال، برای اجرای سرور روی پورت ۹۰۰۰:

python -m http.server 9000

Python SimpleHTTPServer

Python SimpleHTTPServer فقط دو متد HTTP را پشتیبانی می‌کند – GET و HEAD. بنابراین ابزاری خوب برای اشتراک فایل‌ها روی شبکه است. Python SimpleHTTPServer به ماژول http.server در پایتون ۳ منتقل شده است، امروز در مورد هر دو ماژول یاد می‌گیریم و می‌بینیم چقدر کار با آن‌ها آسان است. فرض کنید شما و دوستتان روی همان شبکه محلی هستید. فایل‌هایی دارید که می‌خواهید با دوستتان به اشتراک بگذارید. به جای کپی کردن آن‌ها روی هارد قابل حمل، می‌توانید از SimpleHTTPServer پایتون برای اشتراک مستقیم استفاده کنید. در این آموزش، اصول Python SimpleHTTPServer را یاد می‌گیریم تا بتوانید در زندگی روزمره از آن استفاده کنید.

Python Simple HTTP Server

اگر از سیستم عامل ویندوز استفاده می‌کنید، به فولدر یا دایرکتوری مورد نظر بروید. حالا shift+کلیک راست کنید. گزینه‌ای برای باز کردن Command Prompt در آن دایرکتوری پیدا خواهید کرد. روی آن کلیک کنید و پرامپت فرمان را باز کنید. اما اگر از اوبونتو استفاده می‌کنید، فقط روی آن دایرکتوری کلیک راست کنید و ترمینال را باز کنید. بعد، دستور زیر را اجرا کنید:

python -m SimpleHTTPServer 9000

می‌توانید سرور http پایتون را روی هر پورتی اجرا کنید، پورت پیش‌فرض ۸۰۰۰ است. سعی کنید از شماره پورت بالاتر از ۱۰۲۴ استفاده کنید تا از تداخل جلوگیری شود. سپس مرورگر مورد علاقه‌تان را باز کنید و localhost:9000 را تایپ کنید. تمام! حالا آدرس IP خود را بدانید و localhost را با IP خود جایگزین کنید و با دوستتان به اشتراک بگذارید.

خطای Python SimpleHTTPServer – No module named SimpleHTTPServer

اگر پایتون ۳ اجرا می‌کنید، خطای No module named SimpleHTTPServer می‌گیرید. دلیلش این است که در پایتون ۳، SimpleHTTPServer به ماژول http.server ادغام شده است. می‌توانید از دستور زیر برای اجرای سرور HTTP در پایتون ۳ استفاده کنید.

python3 -m http.server 9000

مثال Python SimpleHTTPServer

تصاویر زیر خروجی Python SimpleHTTPServer را در ترمینال و مرورگر نشان می‌دهند. [توضیح تصاویر: خروجی ترمینال و لیست دایرکتوری در مرورگر]

توجه کنید که اگر فایل index.html وجود داشته باشد، به مرورگر ارائه می‌شود، در غیر این صورت لیست دایرکتوری نشان داده می‌شود مانند تصویر.

Python HTTP Server

تصویر زیر خروجی ترمینال برای ماژول http.server پایتون ۳ را نشان می‌دهد. خروجی مرورگر همان تصاویر بالا است. [توضیح تصویر: خروجی ترمینال]

همانطور که از خروجی ترمینال می‌بینید، ماژول http.server پایتون ۳ تمیزتر است و پیام‌های واضحی ارائه می‌دهد. ماژول http.server پایتون جزئیات تمام ماژول‌های پایتون را هنگام خروج از کیبورد نشان نمی‌دهد، که رویکرد تمیزتری است. این همه چیز در مورد Python SimpleHTTPServer در پایتون ۲ و http.server در پایتون ۳ است. اگر پایتون روی سیستم‌تان نصب نیست و می‌خواهید امتحان کنید، لطفاً آموزش پایتون برای مبتدیان را ببینید.

ملاحظات امنیتی

هنگام استفاده از http.server پایتون، توجه به جنبه‌های امنیتی ضروری است. از آنجایی که این سرور برای اهداف توسعه و آزمایش طراحی شده، برای استفاده در تولید توصیه نمی‌شود. اینجا برخی ملاحظات امنیتی که باید در نظر بگیرید:

  • افشای داده‌ها: سرور تمام فایل‌های دایرکتوری مشخص را افشا می‌کند، از جمله داده‌های حساس. مطمئن شوید که اطلاعات حساس ارائه نمی‌دهید.
  • کنترل دسترسی: سرور هیچ مکانیسمی برای کنترل دسترسی ندارد. هر کسی با دسترسی شبکه می‌تواند فایل‌های شما را ببیند.
  • پشتیبانی SSL/TLS: سرور از رمزنگاری SSL/TLS پشتیبانی نمی‌کند، که آن را در برابر استراق سمع و حملات مرد میانی آسیب‌پذیر می‌کند.

برای کاهش این ریسک‌ها، از سرور فقط برای توسعه و آزمایش محلی استفاده کنید و مطمئن شوید داده‌های حساس ارائه نمی‌دهید.

ایمن‌سازی سرور HTTP ساده با SSL/TLS

همانطور که بخش ملاحظات امنیتی برجسته می‌کند، سرور HTTP پیش‌فرض بدون رمزنگاری و ناامن است. هرچند نباید آن را به اینترنت عمومی افشا کنید، اما می‌توانید امنیت آن را برای استفاده روی شبکه محلی با افزودن رمزنگاری SSL/TLS بهبود بخشید و سرور http:// را به https:// تبدیل کنید.

برای این کار، به یک گواهی SSL نیاز دارید. برای توسعه محلی، گواهی خودامضا کافی است.

گام ۱: تولید گواهی خودامضا

می‌توانید با استفاده از OpenSSL یک گواهی خودامضا تولید کنید. اگر آن را ندارید، ابتدا نصب کنید. دستور زیر را در ترمینال اجرا کنید:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

این دستور اطلاعاتی (مانند کشور، سازمان و غیره) از شما می‌پرسد، اما برای استفاده محلی می‌توانید آن‌ها را خالی بگذارید. دو فایل در دایرکتوری فعلی ایجاد می‌شود:

  • key.pem: کلید خصوصی شما.
  • cert.pem: گواهی عمومی شما.

فایل key.pem را امن نگه دارید، زیرا کلید خصوصی شماست.

گام ۲: ایجاد اسکریپت پایتون برای سرور HTTPS

بعداً، اسکریپت سرور برنامه‌ای را برای استفاده از ماژول داخلی ssl پایتون تغییر دهید تا سوکت سرور را با گواهی SSL شما بپیچید.

python

import http.server
import socketserver
import ssl

PORT = 8000
HANDLER = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), HANDLER) as httpd:
    httpd.socket = ssl.wrap_socket(
        httpd.socket,
        keyfile="key.pem",
        certfile="cert.pem",
        server_side=True
    )
    
    print(f"Serving securely on https://localhost:{PORT}")
    # Start the server
    httpd.serve_forever()

مطمئن شوید فایل‌های key.pem و cert.pem در همان دایرکتوری اسکریپت هستند، یا مسیرهای درست را ارائه دهید.

گام ۳: دسترسی به سرور امن شما

اسکریپت را اجرا کنید:

python secure_server.py

حالا مرورگر وب را باز کنید و به https://localhost:8000 بروید.

مرورگر هشدار امنیتی نشان می‌دهد زیرا گواهی خودامضا است (یعنی توسط مقام گواهی معتبر صادر نشده). این مورد انتظار می‌رود. برای توسعه محلی، می‌توانید با کلیک روی “Advanced” و انتخاب ادامه به سایت، ایمن پیش بروید. اتصال شما به سرور محلی حالا رمزنگاری شده است.

موارد استفاده و بهترین روش ها

اینجا برخی موارد استفاده و بهترین شیوه‌ها برای استفاده از http.server پایتون:

  • توسعه محلی: از سرور برای توسعه و آزمایش محلی اپلیکیشن‌های وب استفاده کنید.
  • اشتراک فایل: فایل‌ها را با همکاران یا دوستان روی شبکه محلی به اشتراک بگذارید.
  • نمونه‌سازی سریع: برای نمونه‌سازی سریع و آزمایش ایده‌های وب استفاده کنید.

بهترین شیوه‌ها:

  • از کاربر غیرروت برای اجرای سرور استفاده کنید.
  • مطمئن شوید سرور به اینترنت عمومی افشا نمی‌شود.
  • از فایروال برای محدود کردن دسترسی به سرور استفاده کنید.
  • نسخه پایتون خود را به طور منظم به‌روزرسانی کنید تا آخرین پچ‌های امنیتی را داشته باشید.

راه‌اندازی سرور توسعه محلی برای آزمایش تغییرات فرانت‌اند

برای راه‌اندازی سرور توسعه محلی برای آزمایش تغییرات فرانت‌اند، به دایرکتوری پروژه بروید و اجرا کنید:

python -m http.server 8000

این کار سروری روی پورت ۸۰۰۰ راه‌اندازی می‌کند که فایل‌ها را از دایرکتوری پروژه ارائه می‌دهد.

ارائه فایل‌های استاتیک در هکاتون‌ها یا دموهای پروژه

برای ارائه فایل‌های استاتیک در هکاتون‌ها یا دموهای پروژه، به دایرکتوری حاوی فایل‌های استاتیک بروید و اجرا کنید:

python -m http.server 8000

این کار اجازه می‌دهد پروژه‌تان را سریع روی شبکه محلی با دیگران به اشتراک بگذارید.

استفاده روی Raspberry Pi برای ارائه فایل‌ها روی LAN

برای استفاده از http.server پایتون روی Raspberry Pi برای ارائه فایل‌ها روی LAN، این گام‌ها را دنبال کنید:

  • اگر پایتون نصب نیست، روی Raspberry Pi نصب کنید.
  • به دایرکتوری حاوی فایل‌های مورد نظر بروید.
  • دستور زیر را برای شروع سرور اجرا کنید: python -m http.server 8000
  • روی دستگاه دیگری متصل به همان شبکه، مرورگر را باز کنید و به http://<آدرس IP Raspberry Pi>:8000 بروید.

آزمایش سریع برای وب‌هوک‌ها یا هدرهای CORS

برای آزمایش سریع وب‌هوک‌ها یا هدرهای CORS، می‌توانید از http.server پایتون برای شبیه‌سازی محیط سرور استفاده کنید. برای مثال، یک فایل HTML ساده با درخواست وب‌هوک یا CORS ایجاد کنید و آن را با سرور ارائه دهید.

سفارشی‌سازی رفتار سرور با هندلر سفارشی

هندلر پیش‌فرض SimpleHTTPRequestHandler محدود به ارائه فایل‌ها با درخواست‌های GET و HEAD است. برای قابلیت‌های پیشرفته‌تر مانند مدیریت درخواست‌های POST یا افزودن هدرهای سفارشی، می‌توانید هندلر درخواست خود را با زیرکلاس کردن SimpleHTTPRequestHandler ایجاد کنید.

زیرکلاس کردن اجازه می‌دهد متدهای پیش‌فرض را اورراید کنید یا متدهای جدید اضافه کنید تا رفتار سرور سفارشی تعریف شود.

اینجا چگونگی ایجاد یک هندلر سفارشی پایه که متد do_GET را برای لاگ کردن پیام سفارشی اورراید می‌کند:

python

import http.server
import socketserver

PORT = 8000

class CustomHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        print("A custom GET request was received.")
        # Call the parent class's do_GET method to serve the file
        super().do_GET()

with socketserver.TCPServer(("", PORT), CustomHandler) as httpd:
    print(f"Serving at port {PORT} with a custom handler")
    httpd.serve_forever()

وقتی این اسکریپت را اجرا کنید و به http://localhost:8000 در مرورگر دسترسی پیدا کنید، ترمینال برای هر فایل درخواستی توسط مرورگر، “A custom GET request was received” را چاپ می‌کند، در حالی که هنوز فایل‌ها را ارائه می‌دهد.

مدیریت درخواست‌های POST

یک نیاز رایج، مدیریت داده‌های ارسال‌شده از طریق درخواست‌های POST است. می‌توانید این قابلیت را با پیاده‌سازی متد do_POST در هندلر سفارشی خود اضافه کنید. این متد هر زمان که سرور درخواست POST دریافت کند، به طور خودکار فراخوانی می‌شود.

در متد do_POST، می‌توانید داده‌های ورودی را بخوانید، پردازش کنید و پاسخی به کلاینت بفرستید.

مثال زیر یک هندلر سفارشی را نشان می‌دهد که می‌تواند داده‌های POST مبتنی بر متن ساده را دریافت و پردازش کند:

python

import http.server
import socketserver

PORT = 8000

class CustomHandler(http.server.SimpleHTTPRequestHandler):
    def do_POST(self):
        content_length = int(self.headers['Content-Length'])
        
        post_data = self.rfile.read(content_length)
        
        print(f"Received POST data: {post_data.decode('utf-8')}")
        
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.end_headers()
        
        response_message = b"POST request received successfully!"
        self.wfile.write(response_message)

with socketserver.TCPServer(("", PORT), CustomHandler) as httpd:
    print(f"Serving at port {PORT}, ready to handle POST requests")
    httpd.serve_forever()

برای آزمایش این سرور، اسکریپت را اجرا کنید و سپس از ابزاری مانند curl در ترمینال دیگری برای ارسال درخواست POST استفاده کنید:

curl -X POST -d “Hello, Server!” http://localhost:8000

ترمینال سرور نمایش می‌دهد:

Received POST data: Hello, Server!

و دستور curl پاسخ را دریافت می‌کند: POST request received successfully!

موارد استفاده بالقوه هوش مصنوعی

سرور HTTP ساده پایتون می‌تواند ابزاری مؤثر در جریان‌های کاری توسعه هوش مصنوعی و یادگیری ماشین مدرن باشد. این ماژول پایه‌ای سبک برای ایجاد نقاط انتهایی API برای مدل‌ها، آزمایش رابط‌ها و ساخت ابزارهای مبتنی بر AI فراهم می‌کند.

ارائه یک مدل ML ساده

می‌توانید از یک هندلر درخواست سفارشی برای پیچیدن یک مدل یادگیری ماشین پیش‌آموزش‌دیده (مثلاً از scikit-learn یا Hugging Face Transformers) استفاده کنید و آن را به عنوان یک نقطه انتهایی API پایه افشا کنید. سرور به درخواست‌های POST حاوی داده‌های ورودی گوش می‌دهد، آن را به مدل برای استنتاج می‌فرستد و پیش‌بینی را به عنوان JSON برمی‌گرداند.

این رویکرد برای نمونه‌سازی سریع رفتار مدل قبل از استقرار با چارچوبی قوی‌تر مانند FastAPI عالی است.

استفاده از هوش مصنوعی مولد برای ایجاد کد سریع

از مدل‌های زبان بزرگ (LLMها) برای تسریع توسعه سرور استفاده کنید. به جای نوشتن هندلرهای سفارشی از صفر، می‌توانید از پرامپت‌ها برای تولید کد لازم استفاده کنید. این کار به ویژه برای ایجاد نقاط انتهایی API ساختگی یا منطق تجزیه درخواست پیچیده مفید است.

مثال پرامپت برای یک LLM:

“یک اسکریپت پایتون با استفاده از ماژول http.server بنویس. یک هندلر سفارشی ایجاد کن که به درخواست‌های GET در مسیر /api/v1/users پاسخ دهد و یک آرایه JSON با سه شیء کاربر ساختگی برگرداند. هر شیء کاربر باید id، name و email داشته باشد.”

این کار اجازه می‌دهد روی منطق اپلیکیشن تمرکز کنید در حالی که AI تنظیمات پایه سرور را مدیریت می‌کند.

تحلیل لاگ و دیباگینگ مبتنی بر AI

می‌توانید سرور سفارشی خود را برای لاگ کردن هر درخواست در یک فایل پیکربندی کنید. سپس، از یک اسکریپت جداگانه مبتنی بر AI برای تحلیل این لاگ‌ها استفاده کنید. این اسکریپت می‌تواند:

  • ناهنجاری‌ها را تشخیص دهد: الگوهای غیرعادی مانند افزایش ناگهانی خطاهای ۴۰۴ Not Found از یک IP خاص را شناسایی کند، که ممکن است نشان‌دهنده اسکن امنیتی باشد.
  • خطاهای رایج را شناسایی کند: خطاهای مشابه را گروه‌بندی کند تا دیباگینگ کارآمدتر شود.
  • پیشنهادهای رفع پیشنهاد دهد: یک AI پیشرفته می‌تواند پیام‌های خطا را تحلیل کند و علل احتمالی یا راه‌حل‌ها را پیشنهاد دهد، مانند تداخل پورت یا مشکلات مجوز.

ایجاد یک رابط چت‌بات AI ساده

ماژول http.server راه عالی برای میزبانی یک فرانت‌اند ساده برای چت‌بات AI است.

  • فرانت‌اند: یک فایل index.html پایه با جاوااسکریپت ارائه دهید. این صفحه شامل ورودی متن برای کاربر و ناحیه نمایش برای تاریخچه چت است.
  • بک‌اند: یک هندلر POST سفارشی در نقطه انتهایی مانند /chat ایجاد کنید.
  • ادغام:
    • فرانت‌اند جاوااسکریپت از API fetch برای ارسال پیام کاربر به نقطه انتهایی /chat شما استفاده می‌کند.
    • هندلر پایتون پیام را دریافت می‌کند.
    • هندلر یک تماس API به سرویس LLM (مانند API Gemini یا OpenAI) برقرار می‌کند.
    • پاسخ چت‌بات را دریافت می‌کند و آن را به عنوان JSON به فرانت‌اند برمی‌گرداند.
    • کد جاوااسکریپت پاسخ AI را روی صفحه نمایش می‌دهد.

این کار یک اپلیکیشن چت‌بات کاملاً خودکفا و محلی میزبانی‌شده ایجاد می‌کند که برای آزمایش و یادگیری عالی است.

با هوش مصنوعی لیارا، دسترسی سریع و پایدار به API هوش مصنوعی داشته باشید.
✅ ارائه API هوش مصنوعی✅ ادغام آسان با سرویس‌ها و اپلیکیشن‌ها✅ مقیاس‌پذیری و امنیت بالا
خرید و راه‌اندازی سرویس هوش مصنوعی

همچنین، لیارا از جمله نخستین سرویس‌های میزبانی ابری ایرانی است که در زمینه ارائه خدمات مرتبط با هوش مصنوعی پیشتاز محسوب می‌شود. برای اطلاعات بیشتر، مستندات سرویس هوش مصنوعی لیارا را مشاهده کنید.

سؤالات متداول

در ادامه به سوالاتی که امکان دارد در این زمینه برای شما بدون پاسخ بماند، جواب‌های کوتاه اما مفیدی داده‌ایم که با استفاده از آن می‌توانید به سوال خود پاسخ صحیحی را بدهید.

دستور شروع یک سرور HTTP ساده در پایتون ۳ چیست؟

دستور شروع یک سرور HTTP ساده در پایتون ۳ این است:

python -m http.server 8000

این کار سروری روی پورت 8000 راه‌اندازی می‌کند که فایل‌ها را از دایرکتوری فعلی ارائه می‌دهد.

چگونه پورت سفارشی مشخص کنم؟

برای مشخص کردن پورت سفارشی، شماره پورت را به عنوان آرگومان پس از دستور سرور اضافه کنید. برای مثال، برای اجرای سرور روی پورت 9000:

python -m http.server 9000

چگونه دایرکتوری دیگری ارائه دهم؟

برای ارائه دایرکتوری دیگر، قبل از اجرای دستور سرور، به آن دایرکتوری در ترمینال یا پرامپت فرمان بروید. برای مثال، اگر می‌خواهید فایل‌ها را از دایرکتوری به نام myproject ارائه دهید، با دستور cd myproject به این دایرکتوری بروید و اجرا کنید:

python -m http.server 8000

این کار فایل‌ها را از دایرکتوری myproject ارائه می‌دهد.

آیا http.server پایتون برای تولید امن است؟

خیر، http.server پایتون به دلیل نگرانی‌های امنیتی برای استفاده در تولید توصیه نمی‌شود. برای اهداف توسعه و آزمایش طراحی شده است.

چگونه فایل‌ها را روی شبکه، نه فقط localhost، ارائه دهم؟

برای ارائه فایل‌ها روی شبکه، نه فقط localhost، مطمئن شوید سرور برای گوش دادن روی اینترفیس شبکه پیکربندی شده و پورت‌های لازم شبکه باز هستند. علاوه بر این، ممکن است نیاز به پیکربندی روتر برای فوروارد درخواست‌های ورودی به سرور داشته باشید.

اینجا یک برنامه پایتون که می‌تواند به ارائه فایل‌ها روی شبکه کمک کند:

python

import http.server
import socketserver

PORT = 8000

Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()

این برنامه فایل‌ها را از دایرکتوری فعلی روی پورت ۸۰۰۰ ارائه می‌دهد. می‌توانید شماره پورت و دایرکتوری را طبق نیاز تغییر دهید.

جمع بندی

در این آموزش، یاد گرفتید چگونه از http.server پایتون برای راه‌اندازی سریع یک سرور وب ساده برای توسعه محلی و اشتراک فایل استفاده کنید. پوشش دادیم شروع سرور، ارائه فایل‌ها، ایمن‌سازی آن با SSL برای استفاده محلی و گسترش قابلیت‌ها با هندلرهای درخواست سفارشی.

هرچند http.server برای توسعه و نمونه‌سازی عالی است، اما به دلیل کمبود ویژگی‌های امنیتی و عملکردی ذاتی، برای محیط‌های تولید مناسب نیست.

به اشتراک بگذارید

برچسب‌ها: