Що означає термін "корисна навантаження" в програмуванні


101

Я переглядав вихідний код фреймворку з відкритим кодом, де я багато разів бачив змінну "корисного навантаження". Будь-які ідеї, що означає "корисний вантаж"?

Відповіді:


193

Термін "корисне навантаження" використовується для розмежування "цікавої" інформації в купі даних або подібної інформації та накладних витрат на її підтримку. Він запозичений з перевезень, де йдеться про частину вантажу, яка "платить": наприклад, вантажівка-цистерна може перевозити 20 тонн нафти, але повністю завантажений транспортний засіб важить набагато більше, ніж це - є сам транспортний засіб, водій, паливо, бак і т.д. Це коштує грошей, щоб перенести все це, але замовник піклується лише про (і платить за) нафту, отже, "оплачує навантаження".

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

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

У цьому прикладі рядок Hello, world!- це корисне навантаження, частина, яка цікавить одержувача; решта, хоча життєво важлива інформація, - накладні витрати на протокол.

Ще одне помітне використання цього терміна - у зловмисному ПЗ. Зловмисне програмне забезпечення, як правило, має дві цілі: розповсюдження себе та здійснення певної модифікації в цільовій системі (видалення файлів, компрометація безпеки системи, виклик додому тощо). Розповсюджувальна частина - це накладні витрати, тоді як код, який робить фактичне злочинство, - це корисне навантаження.


20
Оце Так! Велике спасибі за таке чудове пояснення. :)
Vishwas G

Приємне пояснення ... tks = D
rizidoro

2
Ваше пояснення вражає бичне око.
пушя

Чудове пояснення - сьогодні дізналися щось нове!
Roland Tepp

Хіба це не добре , щоб оголосити змінну з ім'ям , як string jsonPayLoad = " ";замість того , щоб string json = " ";в WebHookякий приймає Jsonдані в форматі?
стовп

9

Я вже зустрічав два значення Payload:

1) Основні дані, що передаються в пакеті чи іншому блоці передачі. Корисне навантаження не включає "накладні" дані, необхідні для отримання пакета до місця призначення. Зауважте, що те, що становить корисне навантаження, може залежати від точки зору. Для рівня зв'язку, якому потрібні деякі накладні дані, щоб виконати свою роботу, іноді вважається, що корисне навантаження включає ту частину накладних даних, якою обробляється цей рівень. Однак при більш загальному використанні корисна навантаження - це біти, які доставляються кінцевому користувачу в пункт призначення.

2) Можливий ефект від програмного вірусу, який був доставлений на комп'ютер користувача.


Вибачте! .. але що ви розумієте саме під "накладними" даними? І btw, я в основному бачу, як використання "корисного навантаження" робиться у випадку відправки, і це потік.
Vishwas G

4
Обрамлення / накладні витрати - це матеріал, який обертається навколо корисного вантажу, щоб отримати його там, де він повинен бути, позначений як те, що його потрібно ідентифікувати. Ви можете порівняти його з веб-запитом, в результаті якого з’являється купа заголовків, які ідентифікують факти фактичної сторінки, такі як кодування, розмір, формат тощо. Корисне навантаження - це фактична сторінка, яка надходить після заголовків, що дає можливість одержувачу зрозуміти це.
Ларс Віклунд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.