HTTP hat HTTP-Cookies. Cookies ermöglichen es dem Server, den Benutzerstatus, die Anzahl der Verbindungen, die letzte Verbindung usw. zu verfolgen.
HTTP verfügt über dauerhafte Verbindungen (Keep-Alive), über die mehrere Anforderungen von derselben TCP-Verbindung gesendet werden können.
Antworten:
Obwohl mehrere Anforderungen über dieselbe HTTP-Verbindung gesendet werden können, misst der Server ihrer Ankunft über denselben Socket keine besondere Bedeutung bei. Dies ist lediglich eine Leistungssache, um die Zeit / Bandbreite zu minimieren, die sonst für die Wiederherstellung einer Verbindung für jede Anforderung aufgewendet würde.
In Bezug auf HTTP handelt es sich bei allen noch um separate Anforderungen, und sie müssen selbst genügend Informationen enthalten, um die Anforderung zu erfüllen. Das ist das Wesen der "Staatenlosigkeit". Anforderungen werden nicht miteinander verknüpft, es sei denn, der Server kennt einige gemeinsame Informationen. In den meisten Fällen handelt es sich dabei um eine Sitzungs-ID in einem Cookie.
quelle
Aus Wikipedia :
Was das Protokoll staatenlos macht , ist , dass der Server nicht erforderlich Zustand über mehrere Anforderungen, zu verfolgen , nicht , dass es nicht so tun können , wenn es will. Dies vereinfacht den Vertrag zwischen Client und Server und minimiert in vielen Fällen (z. B. beim Bereitstellen statischer Daten über ein CDN) die Datenmenge, die übertragen werden muss. Wenn Server wurden erforderlich , den Zustand der Kundenbesuche die Struktur der Ausstellung und die Reaktion auf Anfragen zu halten wäre komplexer. So wie es ist, ist die Einfachheit des Modells eines seiner größten Merkmale.
quelle
Da für ein zustandsloses Protokoll nicht erforderlich ist, dass der Server Sitzungsinformationen oder den Status jedes Kommunikationspartners für die Dauer mehrerer Anforderungen beibehält.
HTTP ist ein zustandsloses Protokoll. Dies bedeutet, dass die Verbindung zwischen dem Browser und dem Server nach Beendigung der Transaktion unterbrochen wird.
quelle
HTTP wird als aufgerufen,
stateless protocol
da jede Anforderung unabhängig ausgeführt wird, ohne dass die zuvor ausgeführten Anforderungen bekannt sind. Sobald die Transaktion beendet ist, geht auch die Verbindung zwischen dem Browser und dem Server verloren.Was das Protokoll ausmacht,
stateless
ist, dass HTTP in seinem ursprünglichen Design relativ einfach istfile transfer protocol
:Es gab keine Beziehung zwischen einer Verbindung und einer anderen, auch nicht vom selben Client. Dies vereinfacht den Vertrag zwischen Client und Server und minimiert in vielen Fällen die Datenmenge, die übertragen werden muss.
quelle
Wenn das Protokoll HTTP als Status-Vollprotokoll angegeben ist, verwendet das Browserfenster eine einzelne Verbindung, um mit dem Webserver für mehrere Anforderungen an die Webanwendung zu kommunizieren. Dies gibt dem Browserfenster die Möglichkeit, die Verbindungen zwischen dem Browserfenster und den Webservern für lange Zeit zu aktivieren und beizubehalten Dies kann dazu führen, dass die maximale Anzahl von Verbindungen des Webservers erreicht wird, obwohl die meisten Verbindungen in Clients inaktiv sind.
quelle
HTTP ist verbindungslos und dies ist eine direkte Folge davon, dass HTTP ein zustandsloses Protokoll ist. Der Server und der Client kennen sich nur während einer aktuellen Anforderung. Danach vergessen sich beide. Aufgrund dieser Art des Protokolls können weder der Client noch der Browser Informationen zwischen verschiedenen Anforderungen auf den Webseiten speichern.
quelle
Was ist staatenlos?
Sobald die Anfrage gestellt und die Antwort an den Client zurückgesendet wurde, wird die Verbindung getrennt oder beendet. Der Server vergisst alles über den Anforderer.
Warum staatenlos?
Das Web entscheidet sich für das zustandslose Protokoll. Es war eine geniale Wahl, weil das ursprüngliche Ziel des Webs darin bestand, Dokumente (Webseiten) für extrem große Zahlen bereitzustellen. von Menschen, die sehr einfache Hardware für den Server verwenden.
Die Aufrechterhaltung einer langjährigen Verbindung wäre äußerst ressourcenintensiv gewesen.
Wenn das Web als Stateful-Protokoll ausgewählt worden wäre, wäre die Belastung des Servers erhöht worden, um die Verbindung des Besuchers aufrechtzuerhalten.
quelle
HTTP
ist staatenlos.TCP
ist zustandsbehaftet. Es gibt kein sogenanntesHTTP connection
, sondern nurHTTP request
undHTTP response
. Wir brauchen nichts zu warten, um ein anderes zu machenHTTP request
. Ein Verbindungsheader, der "Keep-Alive" ist, bedeutet "TCP
von den nachfolgendenHTTP
Anforderungen und Antworten wiederverwendet wird , anstatt dieTCP
Verbindung ständig zu trennen und wiederherzustellen .quelle
Ich denke, jemand hat einen sehr unglücklichen Namen für das STATELESS-Konzept gewählt, und deshalb wird das ganze Missverständnis verursacht. Es geht nicht darum, Ressourcen zu speichern, sondern um die Beziehung zwischen Client und Server.
Kunde: Ich halte alle Ressourcen auf meiner Seite und sende Ihnen die "Liste" aller wichtigen Elemente, die verarbeitet werden müssen. Mach deinen Job.
Server: In Ordnung. Lassen Sie mich die Verantwortung für das Filtern übernehmen, was wichtig ist, um Ihnen die richtige Antwort zu geben.
Dies bedeutet, dass der Server der "Slave" des Clients ist und nach jeder Anfrage seinen "Master" vergessen muss. Tatsächlich bezieht sich STATELESS nur auf den Status des Servers.
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_3
quelle