Wenn du daten übers netzt versendest musst du dich für ein Protokoll entscheiden.
Da hast du praktisch 2 Möglichkeiten:
1. bereits bekanntes protokoll verwenden
Der De-Facto standard fürs netz ist aktuell HTTP. Egal ob Video/Musik Streaming, Login funktionalität, oder auch manche spiele verwenden oftmals HTTP. Das hat den Grund das HTTP sehr flexibel ist, da es das übertragen von beliebigen Daten als Text encodiert (z.B. json) erlaubt. Außerdem kann man damit den Server einfach in PHP schreiben und kann ihn auf jedem Freehoster laufen lassen. Etwas doof ist es allerdings da die meisten Server immernoch nur version 1.2 verwenden und noch nicht HTTP2. HTTP/1.2 hat einen ernormen Overhead und daher rate ich davon ab.
2. Du schreibst dein eigenes Protokoll auf basis eines Transport protokolls. Das erlaubt dir das Protokoll perfekt auf dein System zu finetunen, allerdings bedeutet das natürlich mehr arbeit. Als Transport Protokoll kannst du entweder TCP (sicher stream) oder UDP (lightwight pakete) verwenden. TCP ist außerdem socket gebunden, was bedeutet sobald dein Rechner die Internet connection verliert ist der TCP stream broken.
Alternativ sollten die ersten Versionen von Quic mittlerweile benutzbar sein, praktisch eine auf UDP aufbauende TCP alternative welche nicht so statisch wie TCP sein soll, aber auch weniger overhead hat.
Wenn du ganz crazy bist kannst du auch ohne Transport Protokoll (IPRaw) arbeiten, damit kann man in lokalen netzwerken echt coolen shit machen, würde ich für Internet access aber nicht empfehlen (da du spätestens beim NAT auf die nase fliegst)
Die Frage bevor du dich für eine der Optionen entscheiden kannst ist natürlich, was willst du überhaupt machen. Login funktionalität sollte man praktisch immer in einem sicheren stream, also TCP oder Quick (z.B. mit HTTP) machen. Die frage ist, was passiert nach dem Login.
PS: Sicher bezeichnet hier nicht IT-Security Sicher (also gegen angriffe) sondern lediglich die tatsache das auf den Übertragungsweg nichts verloren geht). Egal was man in einen TCP oder Quic stream schreibt, es kommt entweder auf der anderen seite an, oder die Connection breakt komplett. Bei UDP sendet man keinen stream sondern einzelne Pakete, und die können ankommen, müssen aber nicht. Damit ist UDP natürlich deutlich schneller als TCP, aber nicht sicher