代码如下

import socket

SPLIT_LINE = '\r\n'


def connect(host, port, req_url):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((host, port))
    sd = 'GET ' + req_url + ' HTTP/1.1' + SPLIT_LINE
    sd = sd + get_header(host, port)
    sd = sd + SPLIT_LINE
    s.send(sd.encode())
    data = s.recv(1024)
    print(data)
    while True:
        data2 = s.recv(1024)
        if not data2:
            break
        print(data2)
    s.close()


def get_header(host, port):
    s = 'Accept:text/html,application/xhtml+xml,application/xml'+SPLIT_LINE
    s = s + 'Accept-encoding:gzip, deflate, br' + SPLIT_LINE
    s = s + 'Accept-Language:zh-CN,zh;q=0.9' + SPLIT_LINE
    s = s + 'Cache-Control:max-age=0' + SPLIT_LINE
    s = s + 'Connection:keep-alive' + SPLIT_LINE
    s = s + 'Host:' + host + ':' + str(port) + SPLIT_LINE
    s = s + 'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36' + SPLIT_LINE
    return s


if __name__ == '__main__':
    req_url = '/hello/world'
    connect('localhost', 8080, req_url)