Python socket server handle HTTPS request

后端 未结 2 961
醉酒成梦
醉酒成梦 2021-01-14 10:12

I wrote a socket server using Python 2.7 and the socket module.

Everything works as expected when I issue an HTTP request: the server accepts it and ans

相关标签:
2条回答
  • 2021-01-14 10:48

    I had the same problem. You have to configure "ssl" context within your code as such:

    import socket, ssl
    
    HOST = "www.youtube.com"
    PORT = 443
    
    context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s_sock = context.wrap_socket(s, server_hostname=HOST)
    s_sock.connect((HOST, 443))
    s_sock.send(" GET / HTTP/1.1\r\nHost: www.youtube.com\r\n\r\n ".encode())
    
    while True:
        data = s_sock.recv(2048)
        if ( len(data) < 1 ) :
            break
        print(data)
    
    s_sock.close()
    
    0 讨论(0)
  • 2021-01-14 11:00

    Try this. The module names have changed so that they are now part of the http.server module (part of a standard installation) - see the note at the top of the SimpleHTTPServer documentation for Python 2. The main problem, though, is that you need to get an SSL certificate to secure connections with (the easiest way I believe is OpenSSL).

    0 讨论(0)
提交回复
热议问题