خیلی از کاربران زمانی که قصد دارن وارد یک سایت بشن، با یک صفحه خطا مواجه میشن و احساس ناخوشایندی پیدا میکنن. یکی از این خطاها، ارور 401 هست. مثل خیلی دیگه از کدهای پاسخ HTTP، اون چیزی که باعث میشه خطای 401 برای کاربران خیلی ناامیدکننده باشه، عدم وجود اطلاعات کافی برای تشخیص و حل مسئله هست. ممکنه خطای 401 در مورد هر مرورگری رخ بده، بنابراین مشکل خیلی رایجی هست که کاربران با اون مواجه میشن. در بیشتر موارد، این مسئله بهسادگی حل میشه. هدفمون در این مقاله، بررسی کامل خطای 401 و چرایی وقوع اون هست. همچنین هفت روش رو برای رفع این خطا معرفی کنیم. همراه ما باشید.
ارور 401 چیه؟
بر اساس تعریف کارگروه مهندسی اینترنت (IETF)، خطای 401، یک خطای غیرمجاز هست و این کد وضعیت غیرمجاز نشون میده که درخواست، به دلیل فقدان گواهیهای احراز هویت معتبر برای منبع هدف، پذیرفته نشده. سروری که پاسخ 401 رو ارائه میکنه، باید فیلد هدر WWW-Authenticate که حاوی حداقل یک چالش کاربردی به منبع هدف هست رو ارسال کنه.

معرفی کد ارور 401
در آموزش برنامه نویسی باید بگوییم که، کدهای وضعیت HTTP 400 زمانی مشاهده میشن که مسئلهای در زمان ارائه درخواست وجود داره. بهویژه، ارور 401 زمانی رخ میده که مرورگر، اجازه دسترسی شما به صفحهای که قصد بازدید از اون رو دارین، نمیده. درنتیجه مرورگر بهجای بارگذاری صفحه وب، پیام خطا رو بارگذاری میکنه. ممکنه خطاهای 402 در هر مرورگری رخ بده، بنابراین ممکنه ظاهر پیام متفاوت باشه.
مثلاً در مرورگرهای کروم (Chrome) یا اج (Edge)، شما آیکون یک صفحه رو همراه با یک پیام ساده میبینین که میگه این صفحه کار نمیکنه. همچنین عبارت HTTP ارور 401 در پایین مشاهده میشه و پیام تماس با مالک سایت در صورت تداوم مشکل، دیده میشه.

ممکنه در مرورگرهای دیگه، متن دیگهای رو در یک صفحه خالی با پیام نیاز به احراز هویت 401 مشاهده کنین.

بعضی از نسخههای دیگه این خطا هم وجود دارن:
- خطای HTTP 401 Error-Unauthorized (عدم احراز هویت ارور 401)
- – 401 Unauthorized (عدم احراز هویت خطای 401)
- Acess Denied (رد دسترسی)
کد ارور | کد غیرمجاز HTTP 401 |
نوع خطا | خطای سمت کلاینت |
انواع نسخههای خطا | 401 Authorization Required 401 Unauthorized HTTP 401 Error – Unauthorized Access Denied |
دلایل بروز خطا | کش و کوکیهای منقضی شده مرورگر عدم سازگاری پلاگین URL نادرست یا لینکهای منسوخ شده |
دلایل بروز خطای 401
اگر با یکی از خطاهای HTTP 4xx مواجه شدین، باید بدونین که با خطای سمت کلاینت (سمت مرورگر) مواجه هستین. هر چند که این مسئله ممکنه در مرورگر شما رخ بده، اما لزوماً همیشه به این معنی نیست که همیشه مرورگر شما مقصره. در قسمتهای بعد بیشتر در این مورد توضیح میدیم.
خطاهای 401 در منابع محدود مثل صفحات محافظت شده با رمزعبور در سایت ورد پرس شما رخ میدن. بنابراین میشه فرض کرد که علت این مسئله، احتمالاً با گواهیهای احراز هویت در ارتباط هست.
کش و کوکیهای قدیمی مرورگر
یکی از رایجترین دلایل بروز خطای 401، قدیمی بودن کش و کوکیهای مرورگر شما هست که باعث جلوگیری از احراز هویت کاربر میشه. اگر مرورگر شما از گواهیهای احراز هویت معتبری استفاده نمیکنه، سرور درخواست رو قبول نمیکنه.
ناسازگاری پلاگین
این خطا در مواقع دیگه ناشی از خطا یا ناسازگاری پلاگین هست. بهطور مثال، یک فایروال یا پلاگین امنیتی میتونه باعث اختلال در لاگین شدن شما بشه و فعالیت شما رو مخرب فرض کنه و از خطای 401 برای محافظت از صفحه استفاده کنه.

URL اشتباه یا لینک قدیمی
ممکنه علت اصلی این مسئله، بروز یک مشکل جزئی باشه. بهطور مثال، میتونیم به اشتباه در تایپ URL یا وجود یک لینک منسوخ و قدیمی اشاره کنیم.
نحوه رفع ارور 401
حالا که با خطای 140 و دلایل بروز اون بیشتر آشنا شدیم، میتونیم راهکارهای رفع این خطا رو بررسی کنیم. برای از بین بردن این خطا، میشه از هفت روش زیر استفاده کرد:
به دنبال رفع خطاهای URL باشید
ابتدا با سادهترین روش احتمالی برای رفع ارور 401 شروع میکنیم. مطمئن بشین که از URL صحیح استفاده کردین. ممکنه خیلی ساده به نظر برسه، اما خطاهای 401 بعضاً زمانی ظاهر میشن که URL بهدرستی وارد نشده باشن. همچنین امکان داره، لینکی که شما برای بازدید از صفحه یک سایت استفاده کردین، URL اشتباهی داره. بهطور مثال، ممکنه این URL قدیمی شده باشه یا مربوط به صفحهای باشه که دیگه وجود نداره ( و هیچ ریدایرکتی هم نیست).
بنابراین، میتونین دوبار روی URL که استفاده کردین، کلیک کنین. اگر خودتون URL رو تایپ کردین، دوباره حروفی که تایپ کردین رو بررسی کنین. اگر روی یک لینک کلیک کردین، مطمئن بشین که این لینک مرتبط با صفحه مورد نظر شما هست (یا سعی کنید صفحه مورد نظرتون رو بهطور مستقیم از طریق وبسایت ببینید).
کش مرورگر را پاک کنید
کش مرورگر شما برای بهبود تجربه کاربری با کاهش زمان لودینگ صفحه طراحی شده. متأسفانه، کش در بعضی موارد باعث اختلالات ناخواستهای میشه. همون طور که قبلاً اشاره کردیم، یکی از دلایل رایج بروز ارور 401، کوکیها یا دادههای کش نادرست یا منسوخ شده هست. بنابراین، اگر URL صفحه شما هیچ مشکلی نداره، مرحله بعدی، پاک کردن کش مرورگرتون هست.
بدین ترتیب تمامی اطلاعات نامعتبر موجود در مرورگر شما که میتونن باعث اختلال در فرآیند احراز هویت بشه، پاک میشن. بهطور مشابه، ممکنه کوکیهای مرورگر شما حاوی دادههای احراز هویت باشن که باید تازهسازی بشن.
اگه از مرورگر کروم استفاده می کنین، میتونین پاک کردن کش مرورگر رو با کلیک روی آیکون منو در گوشه بالا سمت راست مرورگر و سپس رفتن به تنظیمات (Settings) انجام بدین. در بخش Privacy and secuirty، روی Clear browsing data کلیک کنید.

یک پنجره جدید باز میشه. توی تب Basic، مطمئن بشین که هر سه گزینه انتخاب شدن. بعد، Clear data رو انتخاب کنید.

این فرآیند توی مرورگرهای دیگه، تا حدودی متفاوت هست. بهطور مثال اگه از موزیلا فایرفاکس استفاده می کنین، روی آیکون کتابخانه در گوشه بالا سمت راست مرورگر کلیک کنید و در ادامه History>Clear Recent History رو انتخاب کنین.

بعد در پنلی که باز میشه، Everything رو از منوی کشویی در بالا انتخاب کنید و مطمئن بشین که Cache انتخاب شده باشه. درنهایت روی دکمه Clear Now کلیک کنید.

DNS رو خالی کنید
روش دیگهای که میتونین برای رفع ارور 401 استفاده کنین، خالی کردن سرور نام دامنه (DNS) هست. هر چند که این مسئله کمتر رخ میده، اما ممکنه باعث بروز این خطا بشه. بنابراین اگر دو راهکار اول مؤثر نبودن، میتونین این روش رو امتحان کنین.
برای انجام این کار، روی دکمه Start کلیک کنید و عبارت cmd رو در نوار جستجو، تایپ کنید. دکمه Enter رو فشار بدین تا Command Prompt باز بشه. دستور ipconfig/flushdns رو کپی و پیست کنید و دوباره Enter رو بزنین.

اگر از سیستم عامل مک استفاده می کنین، میتونین این روند رو با Finder>Applications>Utilities >Terminal انجام بدین.

عبارت sudo killall -HUP mDNSResponder در خط دستور وارد کنین و Enter رو بزنین. سپس میتونین صفحهای که قصد داشتین ببینین رو رفرش کنید و وجود یا عدم وجود ارور 401 رو بررسی کنین.
پلاگینهای وردپرس رو غیرفعال کنین
ممکنه ایجاد خطای 401 به خاطر مرورگر شما نباشه. اگر در دسترسی به سایت تحت وردپرس خودتون مشکل دارین، احتمال داره یک یا چند پلاگین باعث بروز مشکل شده باشن. بعضی از پلاگین ها بهخصوص پلاگین های امنیتی، به نحوی پیکرهبندی شدن که در زمان تشخیص یک فعالیت مشکوک و احتمال بروز حمله، خطای 401 رو نشون میدن. ممکنه بعضی از پلاگین های دیگه هم دچار مشکلات سازگاری بشن. بنابراین، غیرفعال کردن تمامی پلاگین های وردپرس و بررسی حل شدن این موضوع، ایده خوبی به نظر میرسه.
شما میتونین تمامی پلاگین ها رو بهطور همزمان در داشبورد خودتون با رفتن به Plugins> Installed Plugins غیرفعال کنید. روی جعبه در قسمت بالا علامت بزنید و تمامی اونها رو انتخاب کنید. در مرحله بعد، زیر منوی کشویی Bul Actions، Deactivate رو انتخاب کنید و روی دکمه Apply کلیک کنید.

سپس صفحه رو مجدداً بارگذاری کنید تا وجود یا عدم وجود خطای 401 رو بررسی کنید. در صورت برطرف شدن این خطا، میتونین هر پلاگین رو بهصورت مجزا فعال کنید تا بتونین پلاگینی رو که باعث بروز خطا شده، تشخیص بدین. بنابراین میتونین اون پلاگین رو حذف کنید یا با یک پلاگین جدید، جایگزین کنید.
پاسخ هدر WWW-Authenticate رو بررسی کنید
اگر هیچ یک از راهکارهای بالا در مورد رفع ارور 401 مؤثر نبودن، ممکنه این مسئله از سمت سرور باشه. همون طور که دیدیم، پاسخ 401 از طریق هدر WWW-Authenticate ارسال میشه که بهصورت “WWW-Authenticate: <type> realm=<realm>” ظاهر میشه. این عبارت شامل چالشها یا استرینگهای دادهها است که نوع احراز هویت لازم جهت تائید دسترسی رو نشون میده.
بهطور خلاصه، شما قصد دارین ارسال شدن پاسخ هدر رو بررسی کنین و بهویژه، نوع روش احراز هویت رو مشاهده کنین. این روند دستکم باعث شناخت دلیل بروز مشکل میشه و شما رو یک گام به راهحل نزدیکتر میکنه. برای این کار، به صفحه وب نمایشدهنده ارور 401 برین و به کنسول توسعهدهنده در کروم دسترسی داشته باشین. میتونین روی این صفحه راست کلیک کرده و Inspect رو انتخاب کنید یا از Ctrl+Shift+J استفاده کنین. سپس روی تب Network کلیک کنید و صفحه رو دوباره بارگذاری کنید. بنابراین، فهرستی از منابع ایجاد میشه. هدر Status رو برای مرتب کردن جدول انتخاب کنید و کد وضعیت 401 رو تعیین کنید.

اون ورودی رو انتخاب کنید و سپس روی تب Headers کلیک کنید. زیر Response Headers، هدر WWW-Authenticate رو مشخص کنید.

دادههای نشون داده شده در هدر پاسخ بهخصوص طرحهای احراز هویت، اطلاعات بیشتری رو به شما در مورد اتفاقی که رخ داده و راهکار مناسب، ارائه میکنن. این اطلاعات به شما در تشخیص نوع احراز هویت مورد نظر سرور، کمک میکنن. در مثال بالا، مشاهده میشه که طرح احراز هویت، Basic هست. در واقع درخواست احراز هویت باید، صرفاً نیازمند یک ID و رمزعبور هست.
فایل .htaccess
اگر هنوز با مشکل ارور 401 در وبسایتتون مواجه هستین، ممکنه این مشکل به خاطر فایل .htaccess شما باشه. فایل .htaccess، یک فایل پیکربندی هست که توسط وب سرورهای آپاچی بهمنظور کنترل دسترسی به دایرکتوریها و فایلهای وبسایت شما استفاده میشه. در قسمت زیر، نحوه بررسی فایل .htaccess نسبت به دلایل بروز ارور 401 توضیح داده شده:
- اتصال به سرور وبسایت با استفاده از کلاینت FTP یا فایل منیجر
- ناوبری دایرکتوری و تعیین محل فایل .htaccess شما. معمولاً این فایل، دایرکتوری ریشهای وبسایت شما هست.
- دانلود نسخهای از فایل .htaccess در رایانه شما.
- فایل .htaccess رو در یک ویرایشگر متن (مثل Notepad++) بازی کنید و به دنبال خطوطی باشید که کنترلهای دسترسی یا الزامات احراز هویت رو تعیین میکنن. بهویژه، باید به دنبال پارامترهای زیر باشید: AuthUserFile, AuthName, AuthType و Require
- بررسی تطبیق کنترلهای دسترسی یا الزامات احراز هویت تعیین شده در فایل .htaccess با تنظیمات مورد نظر شما برای استفاده در وبسایت. بهطور مثال، اگر بهتازگی مکانیسم احراز هویت وبسایت خودتون رو بهروز کردین (AuthType)، ممکنه بهروزرسانی تنظیمات متناظر در فایل .htaccess شما، ضروری باشه.
- تغییرات فایل .htaccess رو خیره کرده و اون رو در سرور وبسایت آپلود کنید.
- مجدداً وبسایت رو برای بررسی رفع شدن ارور 401، ارزیابی کنید.
بررسی پیکربندی وب سرور
بسیاری از وب سرورهای پیشرفته، یک یا چند فایل پیکربندی رو ارائه میکنن که امکان تنظیم رفتار سرور رو به شما بر اساس طیف گستردهای از شرایط میدن. بهطور مثال، ممکنه سرور درخواستها رو برای دایرکتوریها یا URL های خاص قبول نکنه و این کار باعث بروز ارور 401 بشه. گزینههای پیکربندی برای هر نوع وب سرور، بسیار متفاوت هست. در زیر، فهرست بعضی از معروفترین سرورها رو ارائه کردیم:
- آپاچی
- Nginx
- IIS
- Node.js
- آپاچی تامکت

بررسی تشابه میان ارور 401 و ارور 403
هر چند به نظر میرسه این دو خطا یکسان هستن، اما تفاوتهای قابلتوجهی دارن. کد ارور 401 حالتی رو نشون میدهد که کاربر نتونسته به منابع آنلاین یا یک صفحه وبسایت دسترسی پیدا کنه. این خطا زمانی رخ میده که سرور درخواست مرورگر شما برای دسترسی به منابع رو تائید نمیکنه. یادتون باشه که سرور، این درخواست رو به دلیل رد میکنه:
- کاربر گواهی/ جزئیات لاگین رو ارائه نکرده.
- کاربر، جزئیات/ گواهیهای اشتباهی رو برای لاگین ارائه کرده.
خطای 403 یا خطای ممنوعه نشون میده که سرور دسترسی به بخش کوچکی از منابع درخواستی رو نمیپذیره. هنگامیکه با این خطا مواجه میشین، به بخش خاصی از منابع درخواستی در سایت، دسترسی پیدا میکنین.
تأثیر کد وضعیت 401 بر سئو
ارور 401 میتونه روی SEO شما تأثیر بذاره، هر چند تأثیر اون نسبت به مسدود کردن رباتهای موتور جستجو، متفاوت هست. وقتیکه یک صفحه به احراز هویت نیاز داره، اطلاعات اون نباید در دسترس عموم قرار داشته باشه. بنابراین، این صفحات لزوماً توسط موتورهای جستجو، کراول یا ایندکس نمیشن.
بااینحال، اگر صفحات عمومی شما به اشتباه پیکربندی شده باشن و احراز هویت ضروری باشه، ممکنه کدهای وضعیت 401 دوباره ظاهر بشن و مشکلات دیگهای ایجاد بشه. در این مواقع، موتورهای جستجو مثل گوگل نمیتونن به این صفحات دسترسی پیدا کنن و درنتیجه امکان کراول شدن، ایندکس شدن و رتبه گرفتن این صفحات وجود نداره. این عامل میتونه تأثیر منفی شدیدی بر پدیداری و دیده شدن سایت شما در نتایج موتورهای جستجو داشته باشه. همچنین تجربه کاربر هم عامل مهمی برای سئو هست و مواجهه با ارور 401 میتونه، برای کاربران سردرگم کننده یا ناامیدکننده باشه.
بیشتر بخوانید: خطای 403 چیست و چگونه رفع میشود؟
سخن آخر
ارور 401 یکی از انواع خطاهای 4xx هست که به دلیل دسترسی غیرمجاز به صفحات خاص، ایجاد میشه. بروز این خطا دلایل مختلفی داره که تو این مقاله با هم بررسی کردیم. روشهای مختلفی مثل بررسی دقیق بودن URL، پاک کردن کش و کوکیهای مرورگر مورد استفاده، خالی کردن DNS، غیرفعال کردن پلاگین های وردپرس، بررسی پاسخ WWW-AUTHENTICATE و فایل .htaccess وجود دارن که میتونن به رفع این خطا کمک کنن. همچنین دو خطای 401 و 403 رو بررسی کردیم. با وجود شباهت این دو خطا، اما تفاوتهای قابلتوجهی بین این دو خطا وجود داره که در این مقاله بیان شدن.