کارشناسان سئو برای حفظ رتبهبندی سایت، مدیران سایت برای دسترسی همیشگی کاربران به محتوا و برنامهنویسان وب برای عملکرد بینقص سرورها، همگی باید به زبان سرورها مسلط باشند. اما مگر سرورها هم حرف میزنند؟ بله اما با یک زبان متفاوت؛ کد وضعیت HTTP. ین کدها زبان سرورها هستند که پیامهایی درباره موفقیت یا خطای درخواستها ارسال میکنند. آشنایی با این کدها، نه تنها به درک بهتر عملکرد وب کمک میکند، بلکه ابزاری مهم برای بهینهسازی سایت و پیشگیری از مشکلات آینده است. اگر هنوز به خوبی این کدها را نمیشناسید، این مطلب دقیقا برای شما نوشته شده است. با ما همراه باشید تا اطلاعات بیشتری درباره کدهای وضعیت HTTP کسب کنید.
کد وضعیت HTTP چیست؟
کدهای وضعیت (HTTP Status Code) کدهایی سه رقمی هستند که توسط یک سرور در پاسخ به درخواست مرورگر صادر میشوند. هر بار که روی یک لینک کلیک میکنید یا یک URL را تایپ میکنید و Enter را میزنید، مرورگر شما درخواستی را برای سرور سایت مورد نظر ارسال میکند. سرور درخواست را دریافت و پردازش میکند و سپس منابع مرتبط را همراه با یک هدر HTTP ارسال میکند.
هدرهای HTTP که شامل همان کد سه رقمی هستند، به شما میگویند که هنگام دریافت درخواست برای مشاهده یک صفحه خاص چه اتفاقی افتاده است. هر بار که مرورگر شما با یک سرور تعامل دارد، این نوع پیامها از سرور به سمت مرورگر بازگردانده میشوند، حتی اگر شما آنها را نبینید. معمولا فقط زمانی که مشکلی پیش میآید، ممکن است یکی از این کدها را در مرورگر خود مشاهده کنید.
درک کلاسهای HTTP Status Code
کد وضعیت HTTP به ۵ کلاس تقسیم میشود که هر کلاس شامل پاسخهایی با معنی مشابه یا مرتبط است. آشنایی با هر کلاس به شما کمک میکند تا ماهیت کلی کد وضعیت مربوط به آن کلاس را درک کنید. بیایید نگاهی به هر یک از این کلاسها داشته باشیم که عبارتاند از:
- ۱XX: کدهایی که با ۱ شروع میشوند، ماهیت اطلاعرسانی دارند و نشان میدهند که درخواست ایجاد شده توسط مرورگر در حال پردازش است.
- ۲XX: این کدها نشان میدهند که فرایند درخواست مرورگر توسط سرور دریافت، درک و پردازش شده است.
- ۳XX: کدهای ۳XX نشاندهنده تغییر مسیر هستند و زمانی بازگردانده میشوند که یک منبع جدید جایگزین منبع درخواست شده است.
- ۴XX: این کدها خطای کلاینت را نشان میدهند، به این معنا که احتمالا مشکلی در ایجاد درخواست وجود داشته است.
- ۵XX: کدهایی که با ۵ شروع میشوند، خطای سرور را نشان میدهند. به این معنی که درخواست از سمت سرور پذیرفته شده است، اما خطایی در سرور مانع از تکمیل درخواست شده است.
در هر یک از این کلاسها، انواع مختلفی از کد وضعیت وجود دارد که ممکن است توسط سرور بازگردانده شوند. هر status code معنای خاص و منحصربهفردی دارد که در ادامه به صورت دقیقتر به آن خواهیم پرداخت.
کدهای وضعیت ۱XX: اطلاعاتی (Informational)
همانطور که گفته شد، کدهای وضعیت HTTP که با رقم ۱ شروع میشوند، نشان میدهند که درخواست شما توسط سرور دریافت شده و در حال پردازش است. این کدها به معنای وجود مشکل نیستند، بلکه نشان میدهند که فرایند هنوز در حال انجام است. در این گروه، چند کد وجود دارد که کاربران ممکن است با آنها مواجه شوند و باید از آنها آگاه باشند. ابتدا نگاهی به جدول خواهیم داشت و سپس کدهای رایجتر را بیشتر بررسی میکنیم.
کد وضعیت | توصیف | توضیحات |
۱۰۰ | Continue | درخواست دریافت شده و کاربر میتواند به ارسال داده ادامه دهد. |
۱۰۱ | Switching Protocols | سرور، درخواست کاربر برای تغییر پروتکل را پذیرفته است. |
۱۰۲ | Processing | سرور در حال پردازش درخواست است اما هنوز پاسخی دریافت نشده است. |
۱۰۳ | Early Hints | سرور هدر پاسخ را قبل از ارسال کامل پاسخ، برمیگرداند. |
کد ۱۰۰ (Continue)
این کد به شما میگوید که بخشی از درخواست بدون هیچ مشکلی دریافت شده است. در این مرحله، همه چیز خوب است اما هنوز پردازش ادامه دارد. اگر بخش باقیمانده درخواست رد نشود، سرور پس از تکمیل درخواست، یک پاسخ نهایی ارسال خواهد کرد.
کد ۱۰۱ (Switching Protocols)
از زمان آغاز به کار اینترنت، پروتکلهای HTTP زیادی ایجاد شده است. اولین نسخه مستند این پروتکل، نسخه ۰.۹ بود و آخرین نسخه آن هم HTTP 2.0 است. کد وضعیت ۱۰۱ نشان میدهد که سرور درخواست کلاینت برای تغییر به یک پروتکل HTTP متفاوت از طریق فیلد هدر Upgrade را پذیرفته است.
کدهای وضعیت ۲XX: اعلام موفقیت (Success)
کدهای وضعیت HTTP 2XX نشان میدهند که درخواست شما با موفقیت توسط سرور پردازش شده است و پاسخ موردنظر به شما ارسال شده است. برخلاف کدهای وضعیت ۴XX، کدهای وضعیت ۲XX نشاندهنده خطا نیستند و به شما میگویند که همه چیز به درستی در حال انجام است توجه داشته باشید کدهای وضعیت ۲XX در پشت صحنه پردازش شده و به ندرت توسط کاربران مشاهده میشوند، مگر اینکه از ابزارهای توسعه یا SEO برای مشاهده تمام پاسخهای HTTP یک صفحه استفاده کنید.
کد وضعیت | توصیف | توضیحات |
۲۰۰ | OK | درخواست با موفقیت انجام شده و پاسخ حاوی محتوای درخواستی است. این رایجترین کد وضعیت ۲XX است. |
۲۰۱ | Created | درخواست با موفقیت انجام و یک منبع جدید ایجاد شده است (مثل ایجاد یک حساب کاربری جدید). |
۲۰۲ | Accepted | درخواست دریافت شده اما هنوز پردازش نشده است (مثلا در صف پردازش قرار گرفته است). |
۲۰۳ | Non-Authoritative Information | اطلاعات برگردانده شده لزوما جدیدترین یا کاملترین نیستند. |
۲۰۴ | No Content | درخواست با موفقیت انجام شده اما محتوایی برای ارسال وجود ندارد. |
۲۰۵ | Reset Content | مشتری باید صفحه را بازنشانی کند (مثلا برای پاک کردن فیلدهای فرم). |
۲۰۶ | Partial Content | فقط بخشی از محتوای درخواستی ارسال شده است (مثلا در هنگام دانلود فایلهای بزرگ). |
۲۰۷ | Multi-Status | پاسخ شامل اطلاعات مربوط به چندین منبع است (مثلا در سیستمهای وبلاگنویسی). |
کد ۲۰۰ (OK)
این رایجترین کد وضعیت HTTP است و نشان میدهد که همه چیز به خوبی پیش رفته است. همانطور که گفته شد، این کد به صورت عادی نمایش داده نمیشود اما در هدر پاسخ وجود دارد.
کدهای ۲۰۱ تا ۲۰۷
این کدها برای شرایط خاصتر استفاده میشوند و نشان میدهند که درخواست با موفقیت انجام شده است اما ممکن است برخی تفاوتهای جزئی در نحوه پردازش درخواست وجود داشته باشد.
کدهای وضعیت ۳XX: تغییر مسیر (Redirection)
کدهای وضعیت ۳XX برای تغییر مسیر URL استفاده میشوند. وبسایتها دائما در حال تغییر و تکامل هستند، بنابراین مواقعی وجود دارد که مدیران وبسایت بخواهند کاربران را به یک صفحه بهروزشده یا متفاوت هدایت کنند. تغییر مسیرها به کاربران کمک میکند تا بدون گم شدن در وبسایت، به صفحه مورد نظر برسند. اقدامات تغییر مسیر ممکن است به طور خودکار توسط مرورگر انجام شود یا نیاز به تعامل بیشتر از طرف کاربران داشته باشد. این کدها برای سئو و تجربه کاربری بسیار مهم هستند، زیرا به موتورهای جستجو میگویند که چه محتوایی را بررسی و ایندکس کنند.
کد وضعیت | توصیف | توضیحات |
۳۰۰ | Multiple Choices | درخواست چندین پاسخ احتمالی دارد و کاربر باید یکی را انتخاب کند. |
۳۰۱ | Moved Permanently | منبع درخواستی به طور دائم به یک URL جدید منتقل شده است. |
۳۰۲ | Found (Moved Temporarily) | منبع درخواستی به طور موقت به یک URL جدید منتقل شده است. |
۳۰۳ | See Other | پاسخ به یک درخواست POST باید با یک GET در URL مشخص شده انجام شود. |
۳۰۴ | Not Modified | محتوای منبع از آخرین درخواست تغییر نکرده است. |
۳۰۵ | Use Proxy | برای دسترسی به منبع، باید از پروکسی مشخص شده استفاده شود. |
۳۰۷ | Temporary Redirect | مشابه ۳۰۲ است اما متد HTTP در درخواستهای بعدی باید حفظ شود. |
۳۰۸ | Permanent Redirect | مشابه ۳۰۱ است اما متد HTTP در درخواستهای بعدی باید حفظ شود. |
کدهای ۳۰۱ و ۳۰۸
این دو کد تقریبا عملکرد یکسانی دارند و نشان میدهند که تغییر مسیر دائمی است و مرورگر باید به طور خودکار به آدرس جدید هدایت شود و لینکهای موجود نیز به آدرس جدید تغییر کنند.
کدهای ۳۰۲ و ۳۰۷
این دو کد هم عموما یکسان در نظر گرفته میشوند و نشان میدهند که تغییر مسیر موقتی است اما ممکن است در آینده آدرس منبع تغییر کند. بنابراین، برخلاف کد وضعیت ۳۰۱، کد وضعیت ۳۰۲ نشان دهنده یک جابجایی موقت است.
کد ۳۰۳ (See Other)
این کد زمانی استفاده میشود که سرور میخواهد به مرورگر بگوید به آدرس دیگری برود. این معمولا بعد از ارسال یک فرم (POST) اتفاق میافتد، تا کاربر به یک صفحه نتیجه یا تایید هدایت شود. نکته مهم این است که درخواست جدید باید با روش GET انجام شود، حتی اگر درخواست اول POST باشد. به عنوان مثال، زمانی که فرم خرید و پرداخت را در یک فروشگاه اینترنتی پر میکنید و تایید را میزنید، تغییر مسیر ۳۰۳ شما را به صفحه پرداخت موفق میبرد. این باعث میشود که اگر کاربر صفحه را دوباره بارگذاری کند، فرم خرید دوباره ارسال نشود.
کد ۳۰۴
این کد به مرورگر میگوید که محتوای صفحه از آخرین بار که درخواست شده تغییر نکرده است و بنابراین نیازی به دانلود مجدد آن نیست. این کد برای بهبود عملکرد و کاهش ترافیک شبکه استفاده میشود. در صورتی که صفحه از زمان آخرین بازدید تغییر کرده باشد، سرور یک کد وضعیت OK 200 را برمیگرداند و محتوای بهروز را به کلاینت ارسال میکند.
کدهای وضعیت ۴XX: خطاهای کلاینت (Client Error)
کدهای ۴XX در HTTP نشاندهنده خطاهای سمت کلاینت هستند، به این معنا که مشکلی در درخواست ارسالشده از سوی کاربر وجود دارد. این کدها معمولا نشاندهنده اشتباهاتی مانند درخواست برای صفحهای که وجود ندارد (۴۰۴ Not Found)، عدم دسترسی به منبع به دلیل احراز هویت ناکافی (۴۰۱ Unauthorized) یا ممنوع بودن دسترسی (۴۰۳ Forbidden) هستند. کدهای ۴XX هم جزو کدهای وضعیت مهم برای سئو هستند، چنانچه اگر موتورهای جستجو سایت شما را بررسی کنند و به عنوان مثال با خطای ۴۰۴ مواجه شوند، این را به عنوان یک خطا در نظر میگیرند. در این شرایط شما باید از یک ریدایرکت استفاده کنید تا کاربر را به صفحهای دیگر هدایت کند. به طور کلی، ارسال کد ۴XX به این معنی است که سرور درخواست شما را درک کرده، اما به دلایلی نمیتواند آن را پردازش کند.
کد وضعیت | توصیف | توضیحات |
۴۰۰ | Bad Request | درخواست شما از نظر نحوی نامعتبر است. ممکن است خطایی در آدرس URL، پارامترها یا هدرهای درخواست وجود داشته باشد. |
۴۰۱ | Unauthorized | برای دسترسی به این منبع، احراز هویت لازم است. ممکن است نیاز به وارد کردن نام کاربری و رمز عبور داشته باشید. |
۴۰۳ | Forbidden | حتی با احراز هویت، شما مجاز به دسترسی به این منبع نیستید. ممکن است به دلیل محدودیتهای دسترسی یا مجوزها باشد. |
۴۰۴ | Not Found | منبع یا صفحه درخواستی یافت نشد. ممکن است آدرس URL اشتباه باشد یا صفحه حذف شده باشد. |
۴۰۵ | Method Not Allowed | متد HTTP استفاده شده برای این درخواست مجاز نیست. |
۴۰۶ | Not Acceptable | هیچ یک از قالبهای محتوایی که سرور پشتیبانی میکند، با درخواست شما مطابقت ندارد. |
۴۰۸ | Request Timeout | سرور در مدت زمان مشخص شده پاسخی دریافت نکرد. ممکن است اتصال شما قطع شده یا سرور مشغول باشد. |
۴۰۹ | Conflict | درخواست شما نمیتواند به دلیل تعارض با وضعیت فعلی منبع انجام شود. |
۴۱۰ | Gone | منبع درخواستی دیگر وجود ندارد و آدرس آن تغییر نخواهد کرد. |
۴۱۱ | Length Required | طول محتوا در درخواست مشخص نشده است. |
۴۱۲ | Precondition Failed | پیش شرطهای درخواست برآورده نشده است. |
۴۱۳ | Payload Too Large | اندازه بدنه درخواست از حداکثر اندازه مجاز بیشتر است. |
۴۱۴ | URI Too Long | آدرس URI درخواست بیش از حد طولانی است. |
۴۱۵ | Unsupported Media Type | نوع محتوای درخواست پشتیبانی نمیشود. |
۴۱۶ | Range Not Satisfiable | محدوده درخواست شده معتبر نیست. |
۴۲۲ | Unprocessable Entity | ساختار دادههای درخواست معتبر نیست. |
۴۲۹ | Too Many Requests | تعداد درخواستهای شما در واحد زمان از حد مجاز گذشته است. |
۴۳۱ | Request Header Fields Too Large | اندازه هدرهای درخواست بیش از حد بزرگ است. |
۴۵۱ | Unavailable For Legal Reasons | دسترسی به منبع به دلایل قانونی غیرممکن است. |
کد ۴۰۴ (Not Found)
یکی از رایجترین و بدنامترین کدهای وضعیتی که کاربران و توسعهدهندگان با آن مواجه میشوند، کد وضعیت خطای ۴۰۴ است. این کد نشان میدهد که منبع یا صفحه مورد نظر از سرور حذف شده یا اصلا وجود ندارد. در مواردی که صفحه برای همیشه حذف میشود، یا باید از ریدایرکت مناسب (۳۰۱ -۳۰۲) استفاده شود یا کد وضعیت ۴۱۰ استفاده شود تا نشان دهد محتوای مورد نظر به دلایلی حذف شده است.
کد ۴۰۳ (Forbidden)
این خطا زمانی رخ میدهد که شما مجوز دسترسی به یک صفحه یا فایل را ندارید. احتمالا موقع استفاده از سرویسهای بینالمللی مثل ابزارهای گوگل یا وبسایتهای آموزشی زیاد با این خطا روبرو شده باشید، زیرا از سوی کشورهای دیگر تحریم هستیم و به همین دلیل برخی از وبسایتهای خارجی به ما اجازه دسترسی به محتوای خود را نمیدهند.
کد ۴۰۶ (Not Acceptable)
کد وضعیت ۴۰۶ زمانی برگردانده میشود که سرور نمیتواند محتوایی مطابق با معیارهای تعیینشده در هدر درخواست کاربر ارائه دهد. مثلا اگر کلاینت درخواست دادههایی به فرمت JSON بدهد، ولی سرور فقط HTML داشته باشد، این کد را برمیگرداند (کاربران ایرانی هم ممکن است با این کد به عنوان جایگزین کد ۴۰۳ روبهرو شوند).
کد ۴۰۸ (Request Timeout)
کد ۴۰۸ به این معنی است که سرور منتظر دریافت کامل درخواست از کلاینت است ولی درخواست در زمان مشخصشده ارسال نشده است. به عبارت دیگر، اگر کلاینت نتواند درخواست را در زمان مناسب ارسال کند، سرور این کد را ارسال میکند و به کلاینت میگوید که درخواستش زمانبر بوده است. در بسیاری از موارد ممکن است به دلیل کندی یا قطعی اینترنت با کد ۴۰۸ مواجه شوید، چرا که ارسال درخواست بسیار طولانی شدهاست.
کدهای وضعیت HTTP 5XX: خطاهای سرور
کدهای وضعیت HTTP 5XX نشان میدهند که مشکلی در سمت سرور وجود دارد و درخواست شما به دلیل خطایی که در سرور رخ داده است، نمیتواند پردازش شود. در چنین شرایطی، درخواست شما از نظر نحوی صحیح است اما سرور دچار مشکل فنی یا نقص در عملکرد شده است.
کد وضعیت | توصیف | توضیحات |
۵۰۰ | Internal Server Error | خطای داخلی سرور. این یک خطای کلی است که نشان میدهد سرور در پردازش درخواست شما با مشکلی مواجه شده است. |
۵۰۱ | Not Implemented | سرور توانایی پردازش این درخواست را ندارد. ممکن است این ویژگی در سرور پیادهسازی نشده باشد. |
۵۰۲ | Bad Gateway | سرور به عنوان یک دروازه عمل میکند و در دریافت پاسخ از سرور بالادستی با مشکل مواجه شده است. |
۵۰۳ | Service Unavailable | سرور در حال حاضر در دسترس نیست. ممکن است به دلیل بارگذاری زیاد، تعمیرات یا مشکلات دیگر باشد. |
۵۰۴ | Gateway Timeout | سرور به عنوان یک دروازه عمل میکند و در دریافت پاسخ از سرور بالادستی در زمان تعیین شده موفق نبوده است. |
۵۰۵ | HTTP Version Not Supported | نسخه HTTP مورد استفاده در درخواست پشتیبانی نمیشود. |
کد ۵۰۳ زمانی به کاربر نمایش داده میشود که سرور به طور موقت قادر به پردازش درخواست نباشد. این وضعیت معمولا به دلیل بار زیاد روی سرور، تعمیرات یا نگهداری موقت رخ میدهد. برای مثال، اگر یک وبسایت به دلیل بهروزرسانی سرور یا ترافیک بیش از حد از دسترس خارج شود، سرور ممکن است کد ۵۰۳ را ارسال کند تا به کلاینت بگوید که این مشکلی موقت است و بعدا دوباره امتحان کند.
کد ۵۰۴ (Gateway Timeout)
کد ۵۰۴ زمانی رخ میدهد که سرور به عنوان یک واسطه عمل میکند و در دریافت پاسخ از سرور بالادستی با تاخیر مواجه شود. برای مثال، اگر شما از یک وبسایت بازدید کنید و آن وبسایت برای دریافت اطلاعات به یک سرویس خارجی وابسته باشد اما آن سرویس خارجی به موقع پاسخ ندهد، سرور ممکن است کد ۵۰۴ را برگرداند.
خطاهای ۵XX میتوانند بر سئوی وبسایت تاثیر منفی بگذارند. بنابراین، اگر وبسایتی که از آن بازدید میکنید به طور مکرر خطاهای ۵XX را نشان میدهد، بهتر است از وبسایتهای دیگر استفاده کنید.
نکته: خطاهای ۵XX معمولا به دلیل مشکلات در سرور رخ میدهند و شما به عنوان کاربر نمیتوانید کاری برای رفع آنها انجام دهید.
چگونه کدهای وضعیت پاسخ HTTP را بررسی کنیم؟
برای بررسی کدهای وضعیت HTTP دهها روش وجود دارد که هر کدام از آنها را میتوانید با توجه به نیازهایتان استفاده کنید. در ادامه چند مورد از ابزارهای بررسی خطا و کد وضعیت را معرفی میکنیم.
بررسی کد وضعیت با REDbot
برای تجزیه و تحلیل جزئی یک صفحه، میتوانید از ابزاری مانند REDbot استفاده کنید که هدرها را بررسی میکند. آدرس URL صفحهای را که میخواهید تست کنید در این ابزار وارد کنید و سپس روی دکمه فلش کلیک کنید تا هدرهای صفحه را دریافت کند.
بررسی کد وضعیت HTTP با WebSniffer
برای بررسی پیشرفتهتر، میتوانید از WebSniffer استفاده کنید. میتوانید یک URL را وارد و روی «Lookup» (جستجو) کلیک کنید تا یک تست ساده اجرا شود. همچنین میتوانید روی «Options» (تنظیمات) کلیک کنید تا نوع درخواست، نسخه HTTP و user agent را پیکربندی کنید. تغییر user agent به Googlebot به شما کمک میکند تا ببینید چه کدهای وضعیتی در زمان کرال وبسایت توسط گوگل برگردانده میشود. در حالت ایدهآل، Googlebot باید کدهای پاسخی مشابه سایر user agent دریافت کند، اما گاهی اوقات ممکن است مشکلی در تنظیمات سرور وجود داشته باشد.
برای مشاهده وضعیت کدها، ابتدا آدرس صفحه مورد نظر را وارد و روی Lookup کلیک کنید تا هدرهای HTTP و کد وضعیت دریافت شود. برای مشاهده نتایج باید به پایین صفحه بروید.
بررسی کد وضعیت HTTP در ابزار توسعهدهنده گوگل کروم (DevTools)
شما میتوانید با استفاده از DevTools گوگل کروم، کد وضعیت یک صفحه را بررسی کنید. برای راهاندازی DevTools، قبل از باز کردن یک صفحه وب در کروم روی صفحه راستکلیک و «Inspect» (بررسی) را انتخاب کنید. همچنین میتوانید با کلید F12 آن را باز کنید. پس از باز شدن DevTools، روی «Network» (شبکه) در نوار بالا کلیک کنید. (توجه داشته باشید که ممکن است این گزینه پنهان باشد و با کلیک روی «>>» میتوانید آن را پیدا کنید.) پس از باز کردن Network، صفحه وب را به طور معمول در مرورگر کروم خود بارگذاری کنید.
تمام منابع مورد نیاز برای بارگذاری صفحه شما در ناحیه Network فهرست شدهاند. اولین منبع فهرستشده، صفحه اصلی بارگذاری شده است. روی آن کلیک کنید و یک پنل جدید ظاهر میشود. در این پنل میتوانید کد وضعیت صفحه درخواستشده را مشاهده کنید.
بررسی کلی کد وضعیت HTTP یک وبسایت
به جای بررسی تکتک صفحات، میتوانید با استفاده از ابزارهایی مانند وبسایت HTTPStatus، کدهای پاسخ چندین صفحه را به طور همزمان بررسی کنید. همچنین میتوانید از ابزاری مانند Screaming Frog یا Jet Octopus برای بررسی وضعیت پاسخ استفاده کنید. پس از اجرای این ابزارها، لیستی از تمام صفحاتی که در وبسایت شما وجود دارند و کدهای وضعیت مربوط به آنها را مشاهده خواهید کرد. حتما به صفحاتی که کد وضعیت ۲۰۰ را برنمیگردانند، توجه کنید.
سخن پایانی
در این مطلب سعی کردیم تمام کدهای وضعیت HTTP را لیست کنیم و کدهای رایجتر را کمی دقیقتر توضیح دهیم. شناخت این کدها و توانایی پیدا کردن آنها، یکی از مهارتهای ضروری برای توسعهدهندگان و کارشناسان سئو است که میخواهند یک خروجی بدون خطا به کاربر ارائه بدهند. بنابراین برای شناخت این کدها، ابزارها و راههای رفع کدهای نامطلوب زمان بگذارید.
منابع:
www.developer.mozilla.org | www.w3schools.com
دیدگاهتان را بنویسید