در یک برنامه پایتون ساده، با استفاده از socket و ssl.wrap_socket یک اتصال امن TLS به example.com روی پورت 443 برقرار کنید، یک درخواست GET برای مسیر '/' ارسال کنید و هدرها و بدنهی پاسخ را چاپ کنید.
4.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:34 0.0
برای حل این مسئله، یک سوکت TCP با ماژول socket بسازید و به example.com:443 متصل شوید؛ سپس با استفاده از ssl.wrap_socket سوکت را به یک سوکت امن تبدیل کنید تا handshake TLS انجام شود. پس از اتصال، یک رشته درخواست HTTP مانند "GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n" ارسال کنید و شروع به دریافت دادهها کنید. دریافت را در حلقه با recv(4096) انجام دهید تا تمام دادهها را بگیرید، سپس خروجی را با decode به متن تبدیل کرده و با جدا کردن در اولین '\r\n\r\n' هدرها و بدنه را جدا و چاپ کنید. از "Connection: close" استفاده کنید تا سرور پس از ارسال پاسخ اتصال را ببندد و حلقهٔ دریافت خاتمه یابد؛ از ماژولهای socket و ssl استفاده کنید و به نکات سادهسازی برای سطح مبتدی پایبند باشید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهٔ مهم این است که بهجای استفادهٔ مستقیم از ssl.wrap_socket، از یک SSLContext و context.wrap_socket با server_hostname استفاده کنید تا گواهی بهدرستی بررسی شود. این روش امنیت بیشتری دارد و همچنان برای یک کاربر مبتدی هم قابل فهم است. در دریافت دادهها حلقهٔ recv را تا پایان دادهها ادامه دهید و وقتی مقدار برگرداندهشده خالی بود حلقه را تمام کنید تا پایان پاسخ را چاپ کنید. همچنین با استفاده از Connection: close اطمینان حاصل کنید سرور پس از پاسخ، اتصال را میبندد.
گزارش