我的http标头出了什么问题?

时间:2017-06-11 07:55:27

标签: python python-2.7 sockets

我在服务器和浏览器之间建立连接后尝试将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)

有什么问题?

2 个答案:

答案 0 :(得分:1)

您必须发送Content-LengthConnection: 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)