کد وضعیت 409 Conflict در دسته ارورهای سمت کلاینت طبقه بندی می شود و در مواردی استفاده می شود که درخواست HTTP معتبر است ولی وضعیت فعلی سرور مانع از اجرای آن می شود.
برای این موضوع می توان به چند مورد خاص اشاره کرد :
1 – کاربری قصد اضافه کردن یک فایل به پوشه ای را دارد، اما آن پوشه هنوز وجود ندارد.
2 – در سرویس Amazon S3 زمانی که بخواهید یک bucket را حذف کنید در حالی که خالی نباشد.
3 – ایجاد یک پست جدید در سایت، در حالی که به دسته ای اشاره می کند که حذف شده است.
نکته مهمی که در اینجا باید به آن توجه داشت این می باشد که ممکن است پس از حل این مشکل دوباره همان درخواست را اجرا کنید، برای مثال :
1 – ایجاد پوشه ای که می خواهید در آن آپلود کنید.
2 – حذف همه آیتم ها از bucket سرویس S3 قبل از این که برداشته شود.
3 – ایجاد یا حذف مجدد دسته ای که قرار است به پست یک وب سایت اختصاص داده شود.
لذا توصیه می شود که بدنه پاسخ HTTP حاوی اطلاعاتی باشد که کاربر بتواند از آن برای حل مشکل Conflict استفاده کند.
موارد استفاده :
اگر در حال ساخت یک API هستید، ایده خوب این است که در هنگام مواجه شدن با موقعیت های ذکر شده در بالا، از کد وضعیت 409 استفاده کنید که در مواردی می توان از آن به عنوان یک کد وضعیت خاص تر در مقایسه با 400 یا 403 بهره برداری کرد.
و یا ممکن است قادر باشید تا یک بدنه پاسخ تعریف کنید که یک کلاینت بتواند از آن برای حل خودکار مشکل Conflict استفاده کند و یا اینکه حداقل به صورت استاندارد به اطلاع کاربر برساند که چه بخشی اشتباه بوده است.
امیدواریم این آموزش مورد توجه شما قرار گرفته باشد.