“La conexión se restableció” en los navegadores web al intentar conectarse a un servidor de socket localhost

Estoy tratando de hacer un servidor en Python usando sockets a los que puedo conectarme en cualquier navegador web. Estoy usando el host como “localhost” y el puerto como 8888.

Cuando bash conectarme a él, las cosas que quiero que se muestren se muestran durante una fracción de segundo, y luego desaparecen con el navegador que dice “La conexión se restableció”.
He hecho que haga algo muy simple para probar si aún lo hace, y lo hace.

¿Hay alguna manera de detener esto?

import time import socket HOST = "localhost" PORT = 8888 def function(sck): sck.send(bytes("test"),"UTF-8")) sck.close() ssck=socket.socket(socket.AF_INET,socket.SOCK_STREAM) ssck.bind((HOST,PORT)) ssck.listen(1) while True: sck,addr=ssck.accept() function(sck) 

Probablemente sea el mismo problema que Perl: reinicio de la conexión con un servidor HTTP simple , un servidor de socket HTTP ultra simple, escrito en PHP, que se comporta de forma inesperada , el servidor HTTP no envía el archivo completo a WGET, Firefox. ¿Se restableció la conexión por pares? . Es decir, no lee el encabezado HTTP desde el navegador, sino que simplemente envía su respuesta y cierra la conexión.

tl; dr tu función debe ser

 def function(sck): sck.send(bytes("HTTP/1.1 200 OK\n\n
test page

test page!

"),"UTF-8")) sck.close()

Con un servidor tan simple como eso, solo estás creando un socket TCP.

Los protocolos HTTP sugieren que el cliente debería pedir una página, algo como:

 HTTP/1.1 GET /somepath/somepage.html Host: somehost.com OtherHeader: look at the http spec 

La respuesta debe ser entonces:

 HTTP/1.1 200 OK some: headers