یک سرور HTTP ساده در پایتون بسازید که با استفاده از HTTPServer و BaseHTTPRequestHandler برای هر درخواست GET، هدر پاسخ "X-Server: MyServer" را اضافه کند و مقدار هدر "User-Agent" ارسالی از کلاینت را در بدنهٔ پاسخ نمایش دهد.

4.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:28

0.0

برای حل این مسئله یک کلاس که از BaseHTTPRequestHandler مشتق می‌شود بسازید و متد do_GET را پیاده‌سازی کنید؛ از self.send_response برای کد وضعیت، از self.send_header برای افزودن هدرهای Content-Type و X-Server، و در پایان از self.end_headers استفاده کنید. مقدار هدر ورودی User-Agent را با self.headers.get('User-Agent') بخوانید و آن را به صورت متن ساده با self.wfile.write به کلاینت بفرستید. سرور را با http.server.HTTPServer در یک پورت محلی راه‌اندازی کرده و با curl یا مرورگر آن را تست کنید (مثلاً curl -v http://localhost:8000 -H "User-Agent: MyClient")؛ برای خاتمه دادن از KeyboardInterrupt (Ctrl+C) استفاده کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:28
دسته بندی ها: Python Python for beginner
reyhaneh در 201 روز قبل ساعت 06:18

نکتهٔ کلیدی این است که برای نوشتن بدنهٔ پاسخ با wfile.write باید داده‌ها را به بایت‌ها تبدیل کنید (مثلاً متن را با utf-8 کدگذاری کنید). برای سرویس‌دهی هم‌زمان از ThreadingHTTPServer به جای HTTPServer استفاده کنید تا درخواست‌ها به طور هم‌زمان پاسخ داده شوند. در ارسال هدرها، Content-Type را با یک مقدار مناسب مثل text/plain و X-Server را به عنوان نام سرور اضافه کنید و سپس با end_headers پایان دهید. اگر User-Agent در درخواست وجود نداشت، یک مقدار پیش‌فرض امن مانند «Unknown» در بدنه برگردانید تا پاسخ سازگار بماند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری