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