همه چیز درباره وضعیت HTTP 206 Partial Content و نحوه استفاده از آن

http status 206 partial content guide
20 آبان 1403

اگر تا به حال با دنیای توسعه وب و کار با سرورها و کلاینت‌ها آشنا شده باشید، حتماً با مفهوم وضعیت HTTP آشنایی دارد. یکی از کدهای وضعیت که معمولاً در موارد خاصی به کار می‌رود، کد وضعیت 206 Partial Content است. این حالت معمولاً زمانی رخ می‌دهد که یک کلاینت مانند مرورگر وب درخواست بخشی از یک منبع را از سرور می‌کندو سرور می‌تواند فقط آن بخش خاص را ارسال کند.

به طور کلی، این کد وضعیت برای زمانی که بخواهید فقط یک بخش از فایلی مانند ویدیو یا موسیقی را بارگیری کنید، بسیار مفید است. فرض کنید یک ویدیو در حال پخش شدن باشد و شما به نقطه خاصی از آن پرش کنید. در این حالت، مرورگر شما درخواست HTTP به سرور ارسال می‌کند و اگر سرور از وضعیت 206 استفاده کند، نیازی به دانلود کل فایل مجدداً نیست.

اما سرور کدام قسمت فایل را ارسال می‌کند؟ این قسمت توسط هدرهای خاصی در درخواست HTTP مشخص می‌شود که به سرور می‌گوید چه بخشی از فایل نیاز است. این هدرها با نام Range شناخته می‌شوند. عملیات با این هدرها معمولاً در مواردی استفاده می‌شود که بخواهید فایل‌های بزرگ و حجیم را به صورت تکه‌تکه دریافت کنید یا حتی آنها را از سرورهای مختلف بارگذاری کنید.

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

در نهایت، استفاده از کد وضعیت 206 می‌تواند کاربردهای بیشتری داشته باشد، مثلاً در ساخت آپلودرهای مقسم بخش یا در پیاده‌سازی تکنیک‌هایی برای افزایش سرعت بارگذاری صفحه‌ها، مسئله‌ای که برای بسیاری از توسعه‌دهندگان وب اهمیت ویژه‌ای دارد.

مثال کد: درخواست HTTP با کد وضعیت 206


  GET /video.mp4 HTTP/1.1
Host: example.com
Range: bytes=200-1000
HTTP/1.1 206 Partial Content
Content-Range: bytes 200-1000/67589

توضیح خط به خط کد

GET /video.mp4 HTTP/1.1: این خط نشان می‌دهد که کلاینت درخواست GET (دریافت داده) به فایل video.mp4 روی سرور فرستاده است.
Host: example.com: این هدر برای مشخص کردن میزبان یا دامنه سرور است که کلاینت می‌خواهد به آن متصل شود.
Range: bytes=200-1000: این هدر بیان می‌کند که کلاینت می‌خواهد بایت‌های 200 تا 1000 فایلرا دریافت کند.
HTTP/1.1 206 Partial Content: پاسخ سرور که نشان می‌دهد 206 Partial Content را برگشت داده و درخواست کلاینت را برای بخشی از فایل قبول کرده است.
Content-Range: bytes 200-1000/67589: در پاسخ، سرور با استفاده از این هدر مشخص می‌کند که در حال ارسال بایت‌های 200 تا 1000 از مجموع 67589 بایت فایل است.

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

؟

چرا از وضعیت 206 Partial Content استفاده کنیم؟

؟

آیا همه سرورها از وضعیت 206 پشتیبانی می‌کنند؟

؟

هدر Range چیست؟