خطای HTTP 416 زمانی رخ میدهد که یک درخواست برای محدودهای از دادهها به سرور ارسال میشود، اما محدودهای که درخواست شده در دسترس نیست. این مشکل معمولاً وقتی اتفاق میافتد که مرورگر یا کلاینت میخواهد بخشی از یک فایل را دانلود کند و بخشی که درخواست شده خارج از محدوده واقعی فایل روی سرور است. دلیل این خطا میتواند درخواست محدودهای باشد که بزرگتر از اندازه فایل یا اینکه سرور توانایی ارائه محدوده را ندارد.
یکی از دلایل عمده دریافت این خطا، وجود ارزشدهی نادرست در هدر های HTTP است. برای مثال، درخواست یک محدوده بایت از یک فایل که فراتر از اندازه واقعی فایل است، منجر به این خطا میشود. به همین دلیل، وقتی اندازه فایل در دسترس نیست یا محاسبه نشده است، باید از درخواست محدوده خاص اجتناب کرد.
برای جلوگیری از این خطا، میتوانید بررسی کنید که آیا اندازه فایل روی سرور را دارید یا خیر، و در صورتی که دارید، توجه داشته باشید که محدوده مورد نظر داخل آن اندازه است. همچنین، به یاد داشته باشید که برخی سرورها به طور پیشفرض پشتیبانی از محدوده را غیر فعال کردهاند.
گاهی اوقات، میتوانید با توجه به تنظیمات سرور و شرایط شبکه، از ارسال درخواست محدوده صرفنظر کنید یا ابتدا اطمینان حاصل کنید که سرور پشتیبانی از قابلیت محدوده را دارد یا خیر. این کار نه تنها به جلوگیری از خطاهای HTTP 416 کمک میکند، بلکه میتواند از کاهش کارایی دانلودهای جزئی نیز جلوگیری کند.
اجازه دهید با یک مثال ساده از درخواست محدوده بایت و بررسی آن با کد، بهتر آشنا شویم:
GET /file.mp4 HTTP/1.1
Host: example.com
Range: bytes=0-1023
در اینجا، ما درخواست ارسال یک بخش خاص از فایل را کردیم:
GET /file.mp4 HTTP/1.1
: ارسال یک درخواست HTTP به سرور برای دریافت فایل با نام file.mp4
.
Host: example.com
: تعیین دامین یا آدرس سرور مقصد برای این درخواست.
Range: bytes=0-1023
: درخواست محدوده بایت از 0 تا 1023 از سرور، یعنی اولین 1024 بایت از فایل.