我在服务器和浏览器之间建立连接后尝试将http标头发送到浏览器:
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((IP, PORT))
server_socket.listen(10)
print "Listening for connections on port %d" % PORT
while True:
client_socket, client_address = server_socket.accept()
print 'New connection received'
handle_client(client_socket)
我发送标题的代码:
data = get_file_data('index.html')
header = 'HTTP/1.1 200 OK\r\n Content-Type: text/html; charset=utf 8\r\n\r\n' + data
client_socket.sendall(header)
有什么问题?
答案 0 :(得分:1)
您必须发送Content-Length
和Connection: close
标题。
您可以使用len(data)
作为案例中的内容长度。
答案 1 :(得分:1)
您必须在http标头中添加Content-Length:
您可以使用此行代码:
data = get_file_data('index.html')
header = 'HTTP/1.1 200 OK\r\nContent-Length: %d\r\nContent-Type: text/html; charset=utf 8\r\n\r\n%s' % (len(data), data)
client_socket.sendall(header)