تغییرات رشته User-Agent، استراتژیهایی که Chrome و Firefox برای کاهش تأثیر در نظر میگیرند، و اینکه چگونه میتوانید کمک کنید.
کروم و فایرفاکس تا چند ماه دیگر به نسخه 100 می رسند. این پتانسیل ایجاد شکستگی در سایت هایی را دارد که برای اجرای منطق تجاری به شناسایی نسخه مرورگر متکی هستند. این پست جدول زمانی رویدادها، استراتژیهایی را که کروم و فایرفاکس برای کاهش تأثیر در نظر میگیرند، و نحوه کمک شما را پوشش میدهد.
رشته کاربر-عامل
User-Agent (UA) رشتهای است که مرورگرها در هدرهای HTTP ارسال میکنند تا سرورها بتوانند مرورگر را شناسایی کنند. این رشته همچنین از طریق جاوا اسکریپت با navigator.userAgent
قابل دسترسی است. معمولاً به صورت زیر قالب بندی می شود:
<browser_name>/<major_version>.<minor_version>
به عنوان مثال، آخرین نسخه های منتشر شده از مرورگرها در زمان انتشار این پست عبارتند از:
- Chrome:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
- فایرفاکس:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
- Safari:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15
نسخه اصلی 100 - شماره نسخه سه رقمی
نسخه اصلی 100 یک نقطه عطف بزرگ برای کروم و فایرفاکس است. همچنین با انتقال از شماره نسخه دو رقمی به سه رقمی، این پتانسیل باعث شکستگی در وب سایت ها می شود. توسعهدهندگان وب از انواع تکنیکها برای تجزیه این رشتهها، از کد سفارشی گرفته تا استفاده از کتابخانههای تجزیه کاربر-عامل استفاده میکنند، که سپس میتواند برای تعیین منطق پردازش مربوطه استفاده شود. User-Agent و هر مکانیزم گزارش نسخه دیگر به زودی یک شماره نسخه سه رقمی را گزارش خواهند داد.
جدول زمانی نسخه 100
مرورگرهای نسخه 100 ابتدا در نسخه های آزمایشی (Chrome Canary، Firefox Nightly)، سپس نسخه های بتا و در نهایت در کانال پایدار منتشر می شوند.
مرورگر | جدول زمانی |
---|---|
کروم ( برنامه انتشار ) | 29 مارس 2022 |
فایرفاکس ( برنامه انتشار ) | 3 مه 2022 |
چرا شماره نسخه سه رقمی می تواند مشکل ساز باشد؟
زمانی که مرورگرها برای اولین بار کمی بیش از 12 سال پیش به نسخه 10 رسیدند، بسیاری از مشکلات با کتابخانه های تجزیه کاربر-عامل کشف شد ، زیرا شماره نسخه اصلی از یک رقم به دو رقم رسید.
بدون داشتن یک مشخصات واحد، مرورگرهای مختلف فرمت های متفاوتی برای رشته User-Agent و تجزیه کاربر-عامل خاص سایت دارند . این امکان وجود دارد که برخی از کتابخانه های تجزیه ممکن است مفروضات یا اشکالات رمزگذاری شده ای داشته باشند که اعداد نسخه اصلی سه رقمی را در نظر نمی گیرند. بسیاری از کتابخانه ها منطق تجزیه را هنگامی که مرورگرها به شماره نسخه های دو رقمی منتقل کردند، بهبود بخشیدند، بنابراین انتظار می رود رسیدن به نقطه عطف سه رقمی باعث ایجاد مشکلات کمتری شود. مایک تیلور ، مهندس تیم کروم، بررسی کتابخانههای رایج تجزیه UA را انجام داده است که هیچ مشکلی را کشف نکرده است. اجرای آزمایشهای کروم در این زمینه مشکلاتی را ایجاد کرده است که روی آنها کار میشود.
مرورگرها در مورد آن چه می کنند؟
هم فایرفاکس و هم کروم آزمایشهایی را انجام دادهاند که در آن نسخههای فعلی مرورگر گزارش میدهند که در نسخه اصلی 100 قرار دارند تا شکستگی احتمالی وبسایت را تشخیص دهند. این منجر به چند مورد گزارش شده است که برخی از آنها قبلاً رفع شده اند. این آزمایش ها تا انتشار نسخه 100 ادامه خواهند داشت.
همچنین استراتژیهای کاهش نسخه پشتیبان وجود دارد، در صورتی که انتشار نسخه 100 برای کانالهای پایدار باعث آسیب بیشتر از حد انتظار به وبسایتها شود.
کاهش کروم
در کروم، طرح پشتیبان استفاده از یک پرچم برای ثابت کردن نسخه اصلی در 99 و گزارش شماره نسخه اصلی واقعی در بخش نسخه فرعی رشته User-Agent است (کد قبلاً وارد شده است).
نسخه Chrome همانطور که در رشته User-Agent گزارش شده است از الگوی <major_version>.<minor_version>.<build_number>.<patch_number>
.
اگر از طرح پشتیبان استفاده شود، رشته User-Agent به شکل زیر خواهد بود:
99.101.4988.0
Chrome همچنین آزمایشهایی را اجرا میکند تا اطمینان حاصل کند که گزارش یک مقدار سه رقمی در بخش نسخه جزئی رشته منجر به شکستگی نمیشود، زیرا نسخه فرعی در رشته Chrome-Agent برای مدت بسیار طولانی 0 را گزارش کرده است. تیم Chrome بر اساس تعداد و شدت مشکلات گزارش شده در مورد استفاده از گزینه پشتیبان تصمیم می گیرد.
کاهش دهنده فایرفاکس
در فایرفاکس، استراتژی به میزان اهمیت شکستگی بستگی دارد. فایرفاکس مکانیزم مداخلات سایت دارد. تیم موزیلا webcompat می تواند وب سایت های خراب را در فایرفاکس با استفاده از این مکانیسم تعمیر کند. اگر about:compat
در نوار URL فایرفاکس تایپ کنید، می توانید ببینید که در حال حاضر چه چیزی در حال تعمیر است. اگر سایتی با 100 بودن نسخه اصلی در یک دامنه خاص خراب شود، می توان به جای آن نسخه 99 را ارسال کرد.
اگر شکستگی گسترده باشد، می توان شماره نسخه اصلی را مسدود کرد. سپس راهبردهای ممکن متفاوتی وجود دارد که هر کدام مزایا و معایب خود را دارند. موزیلا میتواند شماره نسخه واقعی را به عنوان شماره نسخه فرعی ارسال کند، رشته را کاملاً همانطور که هست ثابت کند، یا شماره نسخه واقعی را از طریق پارامترهای دیگر ارسال کند.
هر استراتژی که به رشته User-Agent پیچیدگی میافزاید، تأثیر زیادی بر اکوسیستم دارد. بیایید با هم کار کنیم تا از یک رفتار عجیب دیگر جلوگیری کنیم.
شما چه کمکی میتوانید بکنید؟
در Chrome و Firefox Nightly، میتوانید مرورگر را طوری پیکربندی کنید که هماکنون نسخه 100 را گزارش کند و هر مشکلی را که با آن روبرو میشوید گزارش کنید.
Chrome را پیکربندی کنید تا نسخه اصلی را به عنوان 100 گزارش کند
- به
chrome://flags/#force-major-version-to-100
بروید. - گزینه را روی
Enabled
قرار دهید.
Firefox Nightly را پیکربندی کنید تا نسخه اصلی را 100 گزارش کند
- منوی تنظیمات شبانه فایرفاکس را باز کنید.
- "Firefox 100" را جستجو کنید و سپس گزینه "Firefox 100 User-Agent String" را علامت بزنید.
گزارشات تست و فایل
- اگر یک نگهدار وبسایت هستید ، وبسایت خود را با Chrome و Firefox 100 آزمایش کنید. کد تجزیه و تحلیل User-Agent و کتابخانههای خود را بررسی کنید و مطمئن شوید که آنها میتوانند شمارههای نسخه سه رقمی را مدیریت کنند. ما برخی از الگوهایی را که در حال حاضر در حال شکستن هستند، جمع آوری کرده ایم.
- اگر یک کتابخانه تجزیه کاربر-عامل ایجاد میکنید ، آزمایشهایی را به نسخههای تجزیه بزرگتر و مساوی 100 اضافه کنید. آزمایشهای اولیه ما نشان میدهد که نسخههای اخیر کتابخانهها میتوانند آن را به درستی مدیریت کنند. با این حال، وب میراث طولانی دارد، بنابراین اگر نسخه های قدیمی تجزیه و تحلیل کتابخانه ها را دارید، زمان آن رسیده است که مشکلات را بررسی کنید و در نهایت آن را ارتقا دهید.
- اگر در حال مرور وب هستید و متوجه هر گونه مشکلی با نسخه اصلی 100 شدید، گزارشی را در webcompat.com ارسال کنید .