پروتکل HTTP یکی از پروتکلهای اصلی اینترنت برای انتقال دادهها است. یکی از بخشهای مهم این پروتکل، احراز هویت کاربران است که از طریق هدرهایی مثل WWW-Authenticate
پیادهسازی میشود. این هدر بخشی از پاسخ HTTP است که از سمت سرور به مرورگر ارسال میشود. هدف اصلی این هدر اعلام این موضوع به مرورگر است که چه نوع احراز هویتی برای دسترسی به این منبع لازم است.
فرض کنید شما به سایتی برخوردهاید که قسمتی از آن نیاز به ورود دارد. در اینجا سرور از شما میخواهد تا دادههای احراز هویت خود را ارسال کنید که این درخواست از طریق هدر WWW-Authenticate
اعلام میشود.
در پروتکل جدیدتر HTTP/1.1 و نسخه بهروز شده آن یعنی RFC 9110، مکانیزم احراز هویت توسعه یافته و گزینههای بیشتری برای امنیت بهتر و تجربه کاربری بهتر ارائه شدهاند. همچنین، روشهای جدیدی برای مدیریت و پردازش درخواستها و پاسخها در این پروتکل معرفی شدهاند که نه تنها سرعت اینترنت را بهبود بخشیده بلکه امنیت و ثبات بیشتری ایجاد کردهاند.
ابتدا باید بدانیم که WWW-Authenticate
چگونه کار میکند. وقتی که مرورگر یک درخواست ارسال میکند و سرور میفهمد که این درخواست به احراز هویت نیاز دارد، به جای ارسال مستقیماً محتوای درخواستشده، با کد وضعیت 401 و هدر WWW-Authenticate
پاسخ میدهد. مرورگر بر اساس این هدر، صفحه ورود را به کاربر نمایش میدهد.
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Access to the staging site"
حال ببینیم که این کد HTTP چه معنایی دارد. اول از همه، پاسخی با کد وضعیت 401
دریافت میکنیم که به معنای عدم اجازه یا عدم احراز هویت صحیح است. بعد از آن، هدر WWW-Authenticate
آمده که اطلاعات بیشتری راجع به نوع احراز هویت ارائه میدهد. در اینجا از نوع احراز هویت "Basic" استفاده شده است.
توضیح خط به خط کد
HTTP/1.1 401 Unauthorized
این خط نشاندهنده کد وضعیت پاسخ است که به مرورگر میگوید دسترسی بدون احراز هویت معتبر یا صحیح امکانپذیر نیست.
WWW-Authenticate: Basic realm="Access to the staging site"
این هدر جزئیات احراز هویت لازم را فراهم میکند. نوع احراز هویت Basic
است و حوزه امن (realm) "Access to the staging site" را تعیین میکند که نشان میدهد به چه اطلاعاتی باید دسترسی داشت.
در آخر باید تاکید کرد که همیشه برای استفاده از احراز هویت، به شیوههای رمزگذاری قویتر و امنتر متوسل شویم، به خصوص در مواردی که اطلاعات حساسی منتقل میشود.