Что означает термин «полезная нагрузка» в программировании?

101

Я просматривал исходный код фреймворка с открытым исходным кодом, в котором много раз упоминалась переменная «полезная нагрузка». Любые идеи, что означает "полезная нагрузка"?

Вишвас Г
источник

Ответы:

194

Термин «полезная нагрузка» используется для того, чтобы различать «интересную» информацию в блоке данных или аналогичную информацию и накладные расходы на ее поддержку. Он заимствован из транспорта, где он относится к той части груза, которая «платит»: например, автоцистерна может перевозить 20 тонн нефти, но полностью загруженное транспортное средство весит намного больше - есть само транспортное средство, водитель, топливо, бак и т. д. Все это стоит денег, но клиент заботится только о масле (и оплачивает его), следовательно, о «полезной нагрузке».

В программировании наиболее распространенное использование этого термина в контексте протоколов сообщений, чтобы отличить издержки протокола от фактических данных. Возьмем, к примеру, ответ веб-службы JSON, который может выглядеть следующим образом (отформатирован для удобства чтения):

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

В этом примере строка Hello, world!- это полезная нагрузка, часть, которая интересует получателя; остальное, хотя и жизненно важная информация, является издержками протокола.

Другое известное использование термина в вредоносных программах. Вредоносное программное обеспечение обычно преследует две цели: распространять себя и выполнять какие-то изменения в целевой системе (удалять файлы, нарушать безопасность системы, звонить домой и т. Д.). Распространяющаяся часть - это накладные расходы, в то время как код, который фактически совершает зло, - это полезная нагрузка.

tdammers
источник
20
Вау! Большое спасибо за такое великолепное объяснение. :)
Vishwas G
Хорошее объяснение ... tks = D
rizidoro
2
Ваше объяснение поражает яблочко.
пушя
Отличное объяснение - узнал что-то новое сегодня!
Роланд Тепп
Разве это не хорошо объявлять переменную с именем string jsonPayLoad = " ";вместо того, string json = " ";в WebHookкотором получает Jsonотформатированные данные?
17
9

PayloadДо сих пор я встречал два значения :

1) Основные данные, которые переносятся в пакете или другом блоке передачи. Полезная нагрузка не включает в себя «служебные» данные, необходимые для доставки пакета к месту назначения. Обратите внимание, что то, что составляет полезную нагрузку, может зависеть от точки зрения. Для уровня связи, которому для выполнения своей работы требуются некоторые служебные данные, иногда считается, что полезная нагрузка включает часть служебных данных, которую обрабатывает этот уровень. Однако при более общем использовании полезная нагрузка - это биты, которые доставляются конечному пользователю в месте назначения.

2) Возможное влияние программного вируса, который был доставлен на компьютер пользователя.

Е.Л. Юсубов
источник
Sry! .. но что вы подразумеваете под "накладными" данными точно? И, между прочим, я в основном наблюдаю, как используется «полезная нагрузка» при распределении событий, и это происходит.
Vishwas G
4
Кадрирование / накладные расходы - это материал, который обернут вокруг полезной нагрузки, чтобы получить его там, где он должен быть, помечен как то, что он должен быть идентифицирован. Вы можете сопоставить его с веб-запросом, который приводит к множеству заголовков, которые идентифицируют вещи о реальной странице, такие как кодировка, размер, формат и так далее. Полезная нагрузка - это фактическая страница, которая идет после заголовков, что позволяет получателю разобраться в этом.
Ларс Виклунд