خطای HTTP 413 محتوا بیش از حد بزرگ

http status 413 content too large
20 آبان 1403

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

در بسیاری از موارد، این محدودیت توسط سرور یا اپلیکیشنی که روی سرور اجرا می‌شود تعیین می‌گردد. مثلاً، در سرورهای وبی مانند Apache یا Nginx، پارامترهایی وجود دارد که حداکثر سایز مجاز برای یک درخواست را تنظیم می‌کند.

برای رفع این مشکل، شما می‌توانید تنظیمات سرور را طوری تغییر دهید که به شما اجازه دهد داده‌های بزرگ‌تری را ارسال کنید. البته در بعضی موارد، بهتر است بررسی کنید که آیا واقعاً نیاز است که این حجم از داده ارسال شود یا نه، زیرا ممکن است کارآمدی اپلیکیشن شما را تحت‌تأثیر قرار دهد.

اگر دسترسی به تنظیمات سرور ندارید، می‌توانید اندازه داده‌های ارسال شده را کاهش دهید یا با مسئول سرور جهت افزایش محدودیت تماس بگیرید.

در بیشتر زبان‌های برنامه‌نویسی و محیط‌های توسعه (مثل PHP و Node.js)، گزینه‌ها و تنظیمات خاصی وجود دارد که می‌توانید با استفاده از آن‌ها این محدودیت را تنظیم کنید.

در ادامه به چند نمونه از تنظیمات و کدهای مربوطه برای مثال در وب سرور Nginx و زبان PHP مشاهده می‌کنیم:


server {
    client_max_body_size 100M;
}

; In PHP
upload_max_filesize = 100M
post_max_size = 100M

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


تنظیمات Nginx :


client_max_body_size 100M; - این خط به سرور Nginx دستور می‌دهد که حداکثر سایز داده‌های ارسالی به کلاینت را به 100 مگابایت محدود کند.

تنظیمات PHP :


upload_max_filesize = 100M - این خط حداکثر سایز مجاز برای فایل‌هایی که آپلود می‌شوند را به 100 مگابایت محدود می‌کند.

post_max_size = 100M - این خط حداکثر سایز مجاز برای تمام داده‌هایی که به همراه متد HTTP POST ارسال می‌شود را به 100 مگابایت محدود می‌کند.

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

؟

چگونه می‌توانم محدودیت سایز درخواست را در Nginx تغییر دهم؟

؟

آیا افزایش محدودیت سایز درخواست‌ها تأثیری روی امنیت سیستم دارد؟

؟

آیا تنظیمات مشابهی در سرورهای دیگر برای رفع این خطا وجود دارد؟