آشنایی با کد وضعیت HTTP 207 Multi-Status
وقتی که صحبت از HTTP و پروتکلهای مرتبط میشود، یکی از کدهای وضعیت جالب و کمتر شناختهشده 207 Multi-Status است. این کد در چارچوب WebDAV (که مخفف "Web Distributed Authoring and Versioning" است) مورد استفاده قرار میگیرد. این پروتکل برای مدیریت و همکاری روی اسناد در وب طراحی شده است و در واقع مکمل HTTP محسوب میشود.
کد وضعیت 207 نشاندهنده این است که پاسخ شامل چندین وضعیت مختلف است که به روشنی وضعیت عملیاتهای مختلف درخواستی را شرح میدهند. برای مثال، در حالتی که درخواست شما شامل عملیاتهای متعددی به روی فایلها و پوشهها است، این کد میتواند به شما کمک کند تا بیشتر بدانید هر عملیات به چه نتیجهای رسیده است.
نحوه استفاده از کد 207 Multi-Status
در یک پاسخ 207 Multi-Status، بدنه HTTP به فرم XML بوده که شامل عناصر مختلفی است. هر عنصر نشاندهنده وضعیت یک منبع خاص یا یکی از عملیاتهای درخواست شده میباشد. این رویکرد سبب میشود تا مدیریت و تحلیل پاسخها بسیار پویاتر و دقیقتر شود، خصوصاً زمانی که با منابع زیادی سروکار دارید.
چرا استفاده از RFC 4918 و کد 207 مهم است؟
استفاده از RFC 4918 و کد 207، به توسعهدهندگان و مدیران شبکه این امکان را میدهد تا بهرهوری بیشتری از پروتکل HTTP و کاربرد بهتر فایلها در محیطهای تحت وب داشته باشند. برخورداری از توان مدیریت حقوق دسترسی، تغییرات و نسخهدهی پیشرفته، تنها بخشی از مزایای استفاده از WebDAV است.
نمونهای از نحوه ارسال پاسخ 207 در یک درخواست
<?xml version="1.0" encoding="utf-8"?>
<d:multistatus xmlns:d="DAV:">
<d:response>
<d:href>/file1</d:href>
<d:status>HTTP/1.1 200 OK</d:status>
</d:response>
<d:response>
<d:href>/file2</d:href>
<d:status>HTTP/1.1 404 Not Found</d:status>
</d:response>
</d:multistatus>
توضیح خط به خط نمونه کد
<?xml version="1.0" encoding="utf-8"?>
این خط مشخص میکند که محتوای XML با چه نسخهای و چه انکودینگی نوشته شده است.
<d:multistatus xmlns:d="DAV:">
این عنصر ریشهای سند XML برای پاسخهای چندگانه است و فضای نام دیفولی WebDAV را تنظیم میکند.
<d:response>
برای هر منبع یا عملیات، یک پاسخ جداگانه تعیین میشود که با این عنصر آغاز میشود.
<d:href>/file1</d:href>
این عنصر نشاندهنده URI منبع یا عملیاتی که در حال گزارش وضعیت است میباشد.
<d:status>HTTP/1.1 200 OK</d:status>
کد وضعیت HTTP برای منبع یا عملیات مربوطه را نمایش میدهد؛ در اینجا عملیات موفقیتآمیز بوده است.