2011-01-12 16 views
10

Normalerweise gebe ich Daten zwischen meinen Webservern (an verschiedenen Orten) mit HTTP-Anfragen weiter (manchmal mit SSL, wenn es empfindlich ist). Ich fragte mich, ob es irgendwelche Feuerzeugprotokolle gäbe, die ich in der Lage sein könnte, HTTP (S) zu tauschen, das auch öffentliche/private Schlüssel wie SSH oder etwas unterstützen würde.Andere gebräuchliche Protokolle außer HTTP?

Ich habe PHP-Sockets verwendet, um einen SMTP-Client zu erstellen, so dass ich nichts dagegen haben würde, falls erforderlich.

+6

HTTP ist schon ziemlich leicht ... – skaffman

+1

Oh? Hmmm .. Ich nahm nur an, dass, da es so weit verbreitet war, es wie SOAP, Wordpress, Windows und andere Dinge aufgebläht sein muss ... – Xeoncross

+1

Nun ziemlich :) HTTP ist auch allgegenwärtig und in unzähligen verschiedenen Problembereichen verwendet. Das ist ein Beweis für seine Flexibilität und das Fehlen von Gepäck. Das gleiche kann nicht für diese anderen gesagt werden. – skaffman

Antwort

7

Es gibt viele und viele, viele Protokolle . Viele. Beginnen Sie hier für eine Liste. http://en.wikipedia.org/wiki/Internet_Protocol_Suite

SFTP macht Spaß, Daten herumzugeben. Es läuft gut. Sie werden feststellen, dass es nicht viel besser ist als HTTP, da HTTP ziemlich einfach ist. http://en.wikipedia.org/wiki/SSH_file_transfer_protocol

SMTP würde funktionieren. http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol

SNMP kann zur Arbeit gemacht werden. http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol Sie müssen wirklich den Umschlag schieben.

Alle diese beinhalten jedoch TCP/IP-Sockets, die aufgrund der Aushandlung einer Verbindung und der Bestätigung von Paketen einen beträchtlichen Overhead verursachen.

Wenn Sie echten Spaß mit sehr geringem Overhead wünschen, verwenden Sie UDP.
http://en.wikipedia.org/wiki/User_Datagram_Protocol

Sie könnten Reliable UDP verwenden, wenn Sie befürchten, dass Nachrichten gelöscht werden. http://en.wikipedia.org/wiki/Reliable_User_Datagram_Protocol

+1

Danke, ich werde in UDP und RDUP schauen.Aber vielleicht ist es am besten, einfach bei HTTP zu bleiben. Ich muss eine Art Benchmark herausfinden. – Xeoncross

0
+0

Nun, ich möchte nicht nur die Daten auf den anderen Server legen - ich möchte, dass die Daten von ihm empfangen und verarbeitet werden. Ich denke, ich könnte Cron-Jobs einrichten, um nach neu hochgeladenen Dateien zu suchen - aber das würde hinter Echtzeit zurückbleiben. – Xeoncross

+0

Spaß Sache ist, in dem Protokoll senden Sie nur Daten mit einem beliebigen Dateinamen. Sie könnten leicht einen Client haben, der eine gefälschte Datei mit generierten Daten sendet, und einen Server, der die Daten übernimmt und verarbeitet, ohne die Datei tatsächlich zu speichern. In der Tat ist das nicht viel anders als eine '.htm' Datei, die in einer URL erscheint, die tatsächlich von einem serverseitigen Skript erzeugt wird. – GolezTrol

1

Ich möchte XMPP zusätzlich zu den bereits in anderen Antworten aufgeführten Protokollen erwähnen.

Es ist leicht und wird in einigen "Echtzeit" -Kommunikationssystemen verwendet (z. B. in GTalk).

+0

XML ist kein Licht als JSON, also gibt es verschwendet Pakete mit XMPP. Andererseits könnte das Protokoll geändert werden, um JSON oder eine andere einfache Übertragung mit hoher Komprimierung zu verwenden. – Xeoncross

Verwandte Themen