Python Socket HTTP-прокси: пересылка запросов - PullRequest
0 голосов
/ 26 мая 2020

В настоящее время я пытаюсь разработать простой HTTP-прокси для сокета python. Я нахожусь на этапе, когда я могу получить данные в этом формате:

b'GET http://example.com/ HTTP/1.1\r\nHost: example.com\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: keep-alive\r\nUpgrade-Insecure-Requests: 1\r\nCache-Control: max-age=0\r\n\r\n'

Я сейчас пытаюсь отправить это обратно в браузер, чтобы пересылайте все полученные данные только для гибкости Python и опыта, но на самом деле это не работает. Ниже показано, как я пытаюсь отправить данные:

s1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s1.connect((hst, 80))
s1.sendall(data)
print("Request sent?")
conn.sendall(data)

Обычно я открываю новый сокет, чтобы отправить полученный запрос обратно в браузер. В браузере он просто глохнет и загружается беспорядочно. Я думал, что это может быть связано с SSL, но веб-сайт, на котором я это тестирую, - это HTTP, а не HTTPS. Я не знаю, куда отсюда go. Пожалуйста, дайте мне указатели или решение по всем важным вопросам. Мне очень скучно в этом карантине.

Спасибо за ваше время!

Вставьте ужасный код, если нужно.

...