Ich habe eine HTTP-Antwort vonWas benötigt man für einen Browser, insbesondere Safari und Opera, um eine HTTP-Antwort zu verstehen?
HTTP/1.0 200 OK\r\n\r\n
<!DOCTYPE html>...
Firefox und Chrome scheinen es zu verstehen ganz gut und die HTML-Inhalte zeigen - aber Safari und Opera mir einfach alles im Klartext anzeigen. Hinzufügen eines "Content-Type" -Feldes macht alles für alle Browser durcheinander.
Was ist der Haken?
Ich bin nicht den vollständigen Code schreiben gehen, weil es eine Menge von beliebiger Programmlogik ist nicht auf die Frage bezogen, aber was so etwas passiert ist:
ich eine Fassung zu erstellen, dann sind alle damit verbunden Socket-Operationen auftreten - alles funktioniert wie Magie, dann nach all der Verarbeitung ich .send ("Antwort hier") und aus irgendeinem Grund wird nur in Firefox und Chrome angezeigt.
Der Antwort-String sieht wie folgt aus:
'''
HTTP/1.1 200 OK\r\n
<!DOCTYPE html>
...
...
</html>
'''
Das ist, was ich sehe: http://cl.ly/0y0U1s0G3X2v1C11282S
Können Sie genau zeigen, wie Sie den 'Content-Type' hinzugefügt haben? –
Nur um klarzustellen, senden Sie die Zeichen "\ r \ n" oder senden Sie Wagenrücklauf (Bytewert 13) und dann Zeilenumbruch (Bytewert 10)? –
Was oben gezeigt wird, ist was ich mit socket.send() sende. Also ja \ r \ n. @gnibbler "Content-Type: text/html" – antonpug