คำว่า "Payload" หมายถึงอะไรในการเขียนโปรแกรม


101

ฉันกำลังอ่านซอร์สโค้ดของเฟรมเวิร์กโอเพนซอร์ซซึ่งฉันเห็นตัวแปร "น้ำหนักบรรทุก" กล่าวถึงหลายครั้ง แนวคิดใดที่ "payload" ย่อมาจาก?

คำตอบ:


193

คำว่า 'payload' ใช้เพื่อแยกความแตกต่างระหว่างข้อมูล 'ที่น่าสนใจ' ในกลุ่มข้อมูลหรือสิ่งที่คล้ายกันและโอเวอร์เฮดเพื่อรองรับ มันยืมมาจากการขนส่งซึ่งหมายถึงส่วนหนึ่งของภาระที่ 'จ่าย': ตัวอย่างเช่นรถบรรทุกน้ำมันอาจบรรทุกน้ำมันได้ 20 ตัน แต่รถที่บรรทุกเต็มแล้วมีน้ำหนักมากกว่านั้น - มีตัวรถเอง คนขับรถถังน้ำมัน ฯลฯ มีค่าใช้จ่ายในการเคลื่อนย้ายสิ่งเหล่านี้ แต่ลูกค้าให้ความสำคัญกับ (และจ่ายเงิน) น้ำมันดังนั้น 'จ่ายโหลด'

ในการเขียนโปรแกรมการใช้งานทั่วไปของคำนี้อยู่ในบริบทของโปรโตคอลข้อความเพื่อแยกความแตกต่างของค่าใช้จ่ายโปรโตคอลจากข้อมูลจริง ยกตัวอย่างเช่นการตอบกลับของบริการเว็บ JSON ที่อาจมีลักษณะเช่นนี้ (จัดรูปแบบเพื่อให้สามารถอ่านได้):

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

ในตัวอย่างนี้สตริงHello, world!คือส่วนของข้อมูลส่วนที่ผู้รับมีความสนใจ ส่วนที่เหลือในขณะที่ข้อมูลที่สำคัญคือค่าใช้จ่ายโปรโตคอล

การใช้คำศัพท์ที่มีชื่อเสียงอีกประการหนึ่งคือมัลแวร์ ซอฟต์แวร์ที่เป็นอันตรายมักมีวัตถุประสงค์สองประการคือการแพร่กระจายตัวเองและทำการแก้ไขบางอย่างในระบบเป้าหมาย (ลบไฟล์, ประนีประนอมความปลอดภัยของระบบ, โทรกลับบ้านและอื่น ๆ ) ส่วนที่แพร่กระจายเป็นโอเวอร์เฮดในขณะที่โค้ดที่ทำให้เกิดความชั่วร้ายที่แท้จริงคือเพย์โหลด


20
ว้าว! ขอบคุณมากสำหรับคำอธิบายที่ดี :)
Vishwas G

คำอธิบายที่ดี ... tks = D
rizidoro

2
คำอธิบายของคุณยอดฮิต
pushya

คำอธิบายที่ดี - เรียนรู้สิ่งใหม่วันนี้!
Roland Tepp

มันไม่ได้เป็นที่ดีที่จะประกาศตัวแปรชื่อเป็นstring jsonPayLoad = " ";แทนstring json = " ";ในWebHookซึ่งได้รับJsonการจัดรูปแบบข้อมูล?
stom

9

ฉันพบความหมายสองประการPayloadแล้ว:

1) ข้อมูลสำคัญที่อยู่ภายในแพ็คเก็ตหรือชุดเกียร์อื่น ๆ เพย์โหลดไม่รวมข้อมูล "ค่าใช้จ่าย" ที่จำเป็นในการรับแพ็คเก็ตไปยังปลายทาง โปรดทราบว่าสิ่งใดที่ถือว่าเพย์โหลดอาจขึ้นอยู่กับมุมมอง สำหรับเลเยอร์การสื่อสารที่ต้องการข้อมูลค่าใช้จ่ายในการทำงานบางครั้งส่วนของข้อมูลจะถูกพิจารณาเพื่อรวมส่วนของข้อมูลค่าใช้จ่ายที่เลเยอร์นี้จัดการ อย่างไรก็ตามในการใช้งานทั่วไปมากขึ้น payload เป็นบิตที่ส่งมอบให้กับผู้ใช้ปลายทางที่ปลายทาง

2) ผลสุดท้ายของไวรัสซอฟต์แวร์ที่ส่งไปยังคอมพิวเตอร์ของผู้ใช้


Sry! .. แต่คุณหมายความว่าอย่างไรกับข้อมูล "ค่าใช้จ่าย" และ btw ฉันส่วนใหญ่เห็นการใช้ "น้ำหนักบรรทุก" กำลังทำในเหตุการณ์เยี่ยงอย่างและมันไหล
Vishwas G

4
การกำหนดกรอบ / ค่าโสหุ้ยจะเป็นสิ่งที่ห่อหุ้มน้ำหนักบรรทุกเพื่อให้ได้ตำแหน่งที่ต้องการจะระบุว่าเป็นสิ่งที่ต้องระบุ คุณสามารถเปรียบเทียบกับคำขอเว็บซึ่งส่งผลให้ส่วนหัวที่ระบุสิ่งต่าง ๆ เกี่ยวกับหน้าจริงเช่นการเข้ารหัสขนาดรูปแบบและอื่น ๆ เพย์โหลดเป็นหน้าจริงซึ่งมาหลังจากส่วนหัวที่ทำให้ผู้รับสามารถเข้าใจได้
Lars Viklund
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.