HTTP / RFC 9112: کدگذاری‌های انتقال داده

http rfc 9112 http11 transfer codings
20 آبان 1403

مقدمه‌ای بر Transfer Coding

تا حالا شده ندانید چرا صفحه وبی که می‌بینید سریع یا کند بارگذاری می‌شود؟ یکی از عواملی که می‌تواند در این موضوع مؤثر باشد، انتقال داده بین سرور و کلاینت است. در پروتکل HTTP، نوع و روش انتقال داده‌ها اهمیت زیادی دارد. در نسخه ۱٫۱ این پروتکل که در سند RFC 9112 مشخص شده، قسمت ۷ به موضوع Transfer Codings (کدگذاری‌های انتقال) اختصاص دارد.

کاربرد Transfer Coding

آیا می‌دانید کدگذاری‌های انتقال برای چی استفاده می‌شوند؟ اگر بخواهیم ساده بگیم، این کدگذاری‌ها برای فشرده سازی و تفکیک داده‌ها در انتقال به کار می‌رود. این کار به افزایش کارایی و سرعت بارگذاری کمک می‌کند، به خصوص با فایل‌های بزرگ و رسانه‌های سنگین.

چرا از Transfer Coding استفاده کنیم؟

شاید بپرسید چرا باید از این کدگذاری‌ها استفاده کنیم؟ یکی از دلایل اصلی، بهینه‌سازی در انتقال داده‌ها و کاهش پهنای باند مصرفی است. وقتی حجم داده‌ها کمتر شود، دانلودها سریع‌تر انجام می‌شود و فشار کمتری به سرور و شبکه وارد می‌شود.

انواع مختلف Transfer Codings

تا حالا به این فکر کردید که چه انواعی از کدگذاری‌ها وجود دارد؟ HTTP/1.1 مشخصاتی برای انواع مختلف تعیین کرده است که شامل کدگذاری Chunked و Compress است. هر کدام از این ها کاربرد خاص خود را دارد و بسته به نیاز و وضعیت می‌توان از آن‌ها استفاده کرد.

چگونه Transfer Coding در کدها اعمال می‌شود؟


GET /resource HTTP/1.1
Host: example.com
Transfer-Encoding: chunked

4
Wiki
5
pedia
E
in

chunks.
0

کد بالا درخواست HTTP با کدگذاری chunked را نشان می‌دهد:
GET /resource HTTP/1.1: درخواست برای دریافت منبع با نسخه ۱٫۱ پروتکل HTTP است.
Host: example.com: میزبان درخواست را مشخص می‌کند.
Transfer-Encoding: chunked: نوع کدگذاری انتقال که بر حالت chunked دلالت دارد.
4: اندازه اولین تکه را نشان می‌دهد که ۴ بایت است.
Wiki: اولین تکه داده. 5: اندازه دومین تکه را نشان می‌دهد که ۵ بایت است.
pedia: دومین تکه داده.
E: اندازه سومین تکه است که ۱۴ بایت است. in chunks.: سومین تکه داده.
0: نشان دهنده پایان داده‌هاست.

سوالات متداول

؟

کدگذاری chunked در HTTP چیست؟

؟

چه مزایایی در استفاده از کدگذاری‌های انتقال وجود دارد؟

؟

آیا استفاده از Transfer Codings پیچیده است؟