مقدمه
آیا تا به حال با ارور HTTP Status 414 URI Too Long روبرو شدهاید؟ شاید بپرسید که این ارور چه معنیای دارد و چطور میتوانیم آن را رفع کنیم. در واقع این خطا به این معناست که آدرس اینترنتی (URI) که شما تلاش میکنید به آن دسترسی پیدا کنید، طولانیتر از حد مجاز است. این مشکل معمولاً زمانی به وجود میآید که یک درخواست بیش از حد بزرگ ارسال میشود و سرور نمیتواند آن را پردازش کند.
به طور کلی، URI وردی برای یک درخواست HTTP باید در حدود ۲۰۴۸ کاراکتر باشد، اما این حد بسته به سرور متفاوت است. برخی از سرورها ممکن است این حد را کمتر از ۲ در نظر بگیرند. دلیل وجود چنین محدودیتی نیز مربوط به مسائل مختلفی نظیر امنیت و کارایی است. از آنجا که آدرسهای طولانی میتوانند مشکلاتی را در پردازش درخواستها ایجاد کنند، به همین دلیل، سرورها توانایی پردازش طولهای بالای URI را ندارند.
چطور میتوانیم این مشکل را حل کنیم؟ اول از همه، اگر شما کنترل سرور را در دست دارید، ممکن است که بتوانید محدودیت طول URI را تنظیم کنید. اما اگر این سرور متعلق به شما نیست، باید سعی کنید که حجم اطلاعاتی را که در URI ارسال میکنید کاهش دهید. یکی از راههای کاهش طول URI این است که از متدهای HTTP مثل POST به جای GET استفاده کنید. چرا که در روش GET، اطلاعات در URL قرار میگیرد و باعث افزایش طول آن میشود.
در اینجا به شما نشان خواهیم داد که چگونه با استفاده از متد POST میتوانید یک درخواست را ارسال کنید بدون این که با مشکل طول URI مواجه شوید. همچنین، این تغییر نه تنها خطا را رفع میکند بلکه به بهبود عملکرد اپلیکیشن شما نیز کمک میکند، چراکه ارسال دادهها در بدنه درخواست نه تنها امنیت بیشتری دارد بلکه به شما این اجازه را میدهد که حجم بیشتری از دادهها را منتقل کنید.
نمونه کد
<form action="/submit-data" method="POST">
<input type="text" name="data" />
<input type="submit" value="ارسال داده" />
</form>
توضیح کد
<form action="/submit-data" method="POST">
با استفاده از تگ <form>
یک فرم جدید ایجاد کردهایم که زمانی که ارسال شود، دادهها را با استفاده از متد POST به آدرس /submit-data
میفرستد.
<input type="text" name="data" />
تگ <input>
با نوع text
یک فیلد متنی برای ورودی دادهها ایجاد میکند.
<input type="submit" value="ارسال داده" />
تگ <input>
با نوع submit
دکمهای برای ارسال فرم ایجاد میکند.
</form>
تگ </form>
نشان دهنده پایان فرم است که تمام فیلدها و دکمههای مربوطه را در بر میگیرد.