Was bedeutet der Begriff "Payload" in der Programmierung

101

Ich habe den Quellcode eines Open-Source-Frameworks durchgesehen, wo ich eine Variable "payload" gesehen habe, die oft erwähnt wurde. Irgendwelche Ideen, wofür "Nutzlast" steht?

Vishwas G
quelle

Antworten:

193

Der Begriff "Nutzlast" wird verwendet, um zwischen den "interessanten" Informationen in einem Datenblock oder ähnlichem und dem Aufwand für die Unterstützung zu unterscheiden. Es wird aus dem Verkehr entlehnt und bezieht sich auf den Teil der Ladung, der "bezahlt" wird: Ein Tanklastwagen kann beispielsweise 20 Tonnen Öl transportieren, aber das voll beladene Fahrzeug wiegt viel mehr als das - es gibt das Fahrzeug selbst, das Fahrer, Kraftstoff, Tank usw. Es kostet Geld, all dies zu transportieren, aber der Kunde kümmert sich nur um das Öl (und bezahlt es), daher „Nutzlast“.

In der Programmierung wird der Begriff am häufigsten im Zusammenhang mit Nachrichtenprotokollen verwendet, um den Protokoll-Overhead von den tatsächlichen Daten zu unterscheiden. Nehmen Sie zum Beispiel eine JSON-Webdienst-Antwort, die folgendermaßen aussehen könnte (aus Gründen der Lesbarkeit formatiert):

{
    "status":"OK",
    "data":
        {
            "message":"Hello, world!"
        }
}

In diesem Beispiel ist die Zeichenfolge Hello, world!die Nutzlast, der Teil, an dem der Empfänger interessiert ist. Der Rest ist, während wichtige Informationen, Protokoll-Overhead.

Eine weitere bemerkenswerte Verwendung des Begriffs ist Malware. Schädliche Software hat normalerweise zwei Ziele: Sie verbreitet sich selbst und führt auf dem Zielsystem eine Änderung durch (Löschen von Dateien, Beeinträchtigen der Systemsicherheit, Anrufen zu Hause usw.). Der sich ausbreitende Teil ist der Overhead, während der Code, der das eigentliche Böse tut, die Nutzlast ist.

tdammers
quelle
20
Beeindruckend! Vielen Dank für diese großartige Erklärung. :)
Vishwas G
Nette Erklärung ... tks = D
rizidoro
2
Ihre Erklärung trifft Volltreffer.
Pushya
Tolle Erklärung - heute etwas Neues gelernt!
Roland Tepp
Ist es so genannte Variable zu erklären , nicht gut string jsonPayLoad = " ";statt string json = " ";in WebHookdenen empfängt JsonDaten formatiert?
Stom
9

Ich habe bisher zwei Bedeutungen kennengelernt Payload:

1) Die wesentlichen Daten, die in einem Paket oder einer anderen Übertragungseinheit übertragen werden. Die Nutzlast enthält nicht die "Overhead" -Daten, die erforderlich sind, um das Paket an sein Ziel zu bringen. Es ist zu beachten, dass das, was die Nutzlast ausmacht, von der Sichtweise abhängen kann. Für eine Kommunikationsschicht, die einen Teil der Overhead-Daten benötigt, um ihre Arbeit zu verrichten, wird manchmal angenommen, dass die Payload den Teil der Overhead-Daten enthält, den diese Schicht verarbeitet. Bei allgemeinerer Verwendung sind die Nutzdaten jedoch die Bits, die an den Endbenutzer am Ziel geliefert werden.

2) Die mögliche Auswirkung eines Softwarevirus, der auf den Computer eines Benutzers übertragen wurde.

EL Yusubov
quelle
Sry! .. aber was meinst du mit "Overhead" -Daten genau? Übrigens sehe ich meistens, dass die Verwendung von "Payload" im Event-Dispatching und dessen Fluss erfolgt.
Vishwas G
4
Der Framing / Overhead ist das Zeug, das um die Nutzlast gewickelt ist, um sie dahin zu bringen, wo sie sein muss, gekennzeichnet als das, als was sie identifiziert werden muss. Sie können es mit einer Webanforderung vergleichen, die eine Reihe von Kopfzeilen enthält, die Informationen über die eigentliche Seite enthalten, z. B. die Codierung, die Größe, das Format usw. Die Nutzlast ist die eigentliche Seite, die hinter den Headern steht, damit der Empfänger einen Sinn daraus ziehen kann.
Lars Viklund