2017-06-09 2 views
0

Ich schreibe gerade einen Server http auf Linux, der GET und POST-Abfragen dienen soll. Meine Frage ist:
- Wann sollte ich die Verbindung mit einem bestimmten Client herunterfahren? Sofort nach dem Senden der Antwort? Oder sollte ich auf Socket warten, um eine weitere Abfrage zu erhalten?
- Wie POST-Abfragen implementieren, so dass der Server so allgemein wie möglich bleibt? Soll ich CGI verwenden? Wenn das so ist, wie?Http Server auf SOCK_STREAM - Wann Verbindung zu beenden?

Ich hoffe, ich bin spezifisch genug, Danke!

+0

Was sagt die Spezifikation? –

+0

Also, wenn ich es richtig verstehe. Server und Client übergeben Metainformationen über die Verbindung im Connection-Header, richtig? – Kanes115

Antwort

1

In der Echtzeit-HTTP-Implementierungen (ich spreche über die HTTP GET) gab es einen Teil in der Kopfzeile, die über die persistenten Verbindungen sagt. Sie finden dies auch in den HTTP-Spezifikationen. Falls die Persistenz auf "True" gesetzt ist, würde der Server die Verbindung erst nach einem Timeout schließen. Dies dient dazu, das Durchsuchen in den Fällen zu beschleunigen, in denen der Client eine andere Ressource benötigt, die von der aktuellen Abfrage abhängig/verwandt ist. Zum Beispiel können Sie eine Webseite anfordern und diese Webseite kann Verweise auf Bilder oder andere Ressourcen enthalten.

Sie können die Verbindung schließen, sobald Sie PUT/POST-Anfragen beantworten.

Ich hoffe, dass dieser Link (https://en.wikipedia.org/wiki/HTTP_persistent_connection) Ihnen einen Einblick darüber geben wird. Die meisten HTTP-Verbindungen werden als persistent betrachtet (Hinweis: für eine kurze Zeitspanne, sagen wir bis zu einem Timeout), um Verzögerungen zu vermeiden, wie oben erwähnt, es sei denn, es wird extern spezifiziert.

Verwandte Themen