همه چیز درباره وضعیت HTTP 303 See Other

http 303 see other rfc 9110
20 آبان 1403

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

کد وضعیت 303 کاربرد خاصی دارد و معمولاً در سناریوهایی استفاده می‌شود که درخواست باید به یک منبع دیگر هدایت شود و مرورگر باید با استفاده از متد GET به آدرس جدید رجوع کند، حتی اگر درخواست اولیه با متد POST انجام شده باشد. این ویژگی باعث انعطاف‌پذیری بیشتر در نحوه‌ی کارکرد برنامه‌ها و سرویس‌های وب می‌شود.

در استفاده از کد وضعیت 303 اهمیت زیادی دارد که سرورها و مرورگرها به درستی متوجه ریدایرکت شوند و به درستی آن را انجام دهند. در غیر این صورت ممکن است کاربر با صفحه‌ای مواجه شود که نمی‌خواهد یا اطلاعات نادرستی دریافت کند.

مقایسه با سایر کدهای ریدایرکت

یکی از تفاوت‌های اصلی 303 با 301 و 302، نوع درخواست در آدرس جدید است. در 301 و 302 ممکن است نوع درخواست اولیه در مقصد حفظ شود، اما در 303 همیشه به GET تغییر می‌کند. این مورد در برخی سناریوها کارایی بهتری دارد و منجر به جلوگیری از تکرار ارسال داده‌ها یا درخواست‌های تحریف‌شده می‌شود.

همچنین، 303 با 307 متفاوت است، چرا که 307 اصرار به حفظ همان متد درخواست اولیه در مقصد می‌کند. این تفاوت در شرایط خاص باعث می‌شود هنگام طراحی سرویس‌های وب باید دقت کافی به خرج داد تا به نتیجه دلخواه برسید.

نمونه کد


HTTP/1.1 303 See Other
Location: https://www.example.com/new-page

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

HTTP/1.1 303 See Other
این خط نشان‌دهنده پروتکل HTTP و کد وضعیت 303 است که به معنای انتقال کاربر به آدرس جدید توسط مرورگر است.
Location: https://www.example.com/new-page
این خط نشان‌دهنده آدرس جدید است که باید کاربر به آن هدایت شود. مرورگر با استفاده از این خط متوجه محل جدید برای درخواست کاربران می‌شود و با متد GET به آن آدرس می‌رود.

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

؟

وضعیت HTTP 303 دقیقاً چه کاربردی دارد؟

؟

چطور می‌توانم یک ریدایرکت 303 ایجاد کنم؟