Я читаю одну книгу о сети (я только начал) с python, и там был такой код:
import sys, socket
try:
rfc_number = int(sys.argv[1])
except (IndexError, ValueError):
print('Must supply an RFC number as first argument')
sys.exit(2)
host = "www.ietf.org"
port = 80
socket = socket.create_connection((host, port))
req = (f"GET /rfc/rfc{rfc_number}.txt HTTP/1.1\r\n"
f"Host: {host} : {port}\r\n"
f"User-Agent: Python {sys.version_info[0]}\r\n"
"Connection: close\r\n"
"\r\n"
)
socket.sendall(req.encode("ascii"))
rfc_raw = bytearray()
while True:
buf = socket.recv(4096)
print(buf)
if not len(buf):
break
rfc_raw += buf
rfc = rfc_raw.decode('utf-8')
print(rfc)
Я все понял и попытался запустить, но это не сработало, потому что, как я обнаружил, что веб-страница https, а не http. И теперь мне интересно, как я могу подключиться к этой веб-странице с помощью этого кода (этот код отлично работает для http, я пробовал для веб-страницы http). Поскольку я знаю, что в https есть безопасность, и я думаю, из-за этого я не могу подключиться . (Я пока не особо углублялся в сети). Поэтому в этот код должно быть что-то добавлено для проверки безопасности или что-то в этом роде (я не знаю)
Был код, использующий urllib, и он отлично работал но я заинтересован в использовании кода сокета. возможно ли это с помощью сокета и как? Пожалуйста, объясните немного. Заранее спасибо.
Я тоже нашел в гугле людей, использующих "import ssl". Для веб-страницы они выбирают, что их код работает. Когда я изменил и попробовал их код для ietf.org, этого не произошло. есть ли у кого-нибудь ответ на мой вопрос?