آزمایش مبدأ کاهش عامل کاربر

User-Agent Reduction تلاشی است برای کاهش سطوح اثرانگشت غیرفعال با کاهش اطلاعات موجود در رشته User-Agent (UA) فقط به نام تجاری مرورگر و نسخه مهم، تمایز دسکتاپ یا تلفن همراه آن، و پلتفرمی که روی آن اجرا می‌شود. در حال حاضر، رشته UA در هر درخواست HTTP به اشتراک گذاشته می شود و در جاوا اسکریپت در معرض تمام منابع بارگذاری شده توسط مرورگر قرار می گیرد. این شامل اطلاعات قابل توجهی در مورد مرورگر، پلتفرمی که روی آن در حال اجرا است و قابلیت های آن است. User-Agent Client Hints (UA-CH) می تواند اطلاعاتی مشابه رشته UA کامل ارائه دهد، در حالی که به سایت ها اجازه می دهد فقط اطلاعات UA مورد نیاز خود را درخواست کنند.

از Chrome 95 بتا، ما نسخه آزمایشی اصلی را برای User-Agent Reduction باز می‌کنیم تا به سایت‌ها اجازه دهیم هم‌اکنون رشته UA کاهش‌یافته را دریافت کنند. این به سایت‌ها امکان می‌دهد تا قبل از اینکه UA کاهش‌یافته به رفتار پیش‌فرض در Chrome تبدیل شود، مشکلات را کشف و برطرف کنند (برنامه‌ریزی شده است کاهش در سه ماهه دوم سال ۲۰۲۲ آغاز شود). اگر می‌خواهید نسخه آزمایشی اصلی را روی کاربران بتای 95 قبل از راه‌اندازی آن برای جمعیت پایدار آزمایش کنید، حتماً شرکت کرده و قبل از تاریخ انتشار Chrome 95 ( در حال حاضر برای 19 اکتبر 2021 برنامه‌ریزی شده است ) آن را امتحان کنید.

در زیر مروری بر نسخه آزمایشی مبدا و آنچه که باید انتظار داشت آمده است، و مانند همیشه، ما از بازخورد یا هر مشکلی در طول این آزمایش در مخزن UA Reduction GitHub استقبال می کنیم.

User-Agent چیست؟

رشته User-Agent (UA) در هر درخواست HTTP به اشتراک گذاشته می شود و در جاوا اسکریپت در معرض تمام منابع بارگذاری شده توسط مرورگر قرار می گیرد. در حال حاضر، حاوی اطلاعات قابل توجهی در مورد مرورگر و پلتفرمی است که روی آن اجرا می شود.

چرا User-Agent کاهش می یابد؟

User-Agent Reduction تلاشی برای کاهش سطوح اثرانگشت غیرفعال در مرورگر کروم است که برای اولین بار در ژانویه 2020 معرفی شد. با کاهش اطلاعات در رشته UA فقط به برند مرورگر و نسخه قابل توجه، تمایز دسکتاپ یا موبایل و پلتفرم آن. در حال اجرا است، شناسایی تک تک کاربران دشوارتر می شود.

این برای توسعه دهندگان وب چه معنایی دارد؟

سایت‌ها باید برای دریافت رشته‌های UA کاهش‌یافته آماده شوند و در آزمایش اصلی شرکت کنند (جزئیات زیر). مقادیر کاهش یافته عامل کاربر در موارد زیر ظاهر می شود:

  • هدر درخواست HTTP User-Agent
  • گیرنده جاوا اسکریپت navigator.userAgent
  • گیرنده جاوا اسکریپت navigator.platform
  • گیرنده جاوا اسکریپت navigator.appVersion

برای دریافت اطلاعات مشتری بیشتر از آنچه توسط User-Agent به اشتراک گذاشته شده است، سایت ها باید به API جدید User-Agent Client Hints منتقل شوند. برای جزئیات بیشتر در مورد استراتژی های مهاجرت، به راهنمایی های مشتری-کاربر-کاربر مراجعه کنید.

برنامه‌های کاهش User-Agent در حال حاضر شامل iOS و WebView نمی‌شوند، بنابراین این پلتفرم‌ها همچنان رشته کامل عامل کاربر را دریافت می‌کنند. دلیل اصلی این است که این پلتفرم‌ها هنوز راهنمای کاربر-عامل مشتری را پیاده‌سازی نکرده‌اند.

این آزمایش اولیه چگونه کار می کند؟

این کارآزمایی مبدا کمی متفاوت از آزمایش منشا استاندارد است. آزمایش‌های اولیه استاندارد فقط می‌توانند رفتار در پاسخ را کنترل کنند (به عنوان مثال، کنترل دسترسی به یک API در جاوا اسکریپت پاسخ). در این آزمایش، هدف ما این است که نه تنها رشته UA ارائه شده در APIهای جاوا اسکریپت را اصلاح کنیم، بلکه هدر User-Agent ارسال شده در درخواست HTTP را نیز تغییر دهیم.

برای اینکه بتوانیم این کار را انجام دهیم، یک راهنمایی مشتری موقت به نام Sec-CH-UA-Reduced تعریف می کنیم که حضور آن در یک درخواست نشان می دهد که مقدار هدر User-Agent حاوی رشته UA کاهش یافته است. راهنمایی مشتری Sec-CH-UA-Reduced تنها در صورتی ارسال می‌شود (همراه با رشته UA کاهش‌یافته) در صورتی که نشانه آزمایشی مبدا معتبر باشد و راهنمایی مشتری Sec-CH-UA-Reduced پس از منقضی شدن دوره آزمایشی اصلی کار نخواهد کرد. به خاطر داشته باشید که اولین درخواست پیمایش همچنان رشته User-Agent کاهش نیافته را دریافت می کند مگر اینکه Critical-CH header تنظیم کنید.

درخواست‌های منبع فرعی به همان مبدأ به طور خودکار همان رشته User-Agent را ارسال می‌کنند که درخواست سطح بالای ارسال شده است. درخواست‌های منبع فرعی به مبداهای شخص ثالث نیز همان رشته User-Agent را به عنوان درخواست سطح بالا ارسال می‌کنند، از جمله رشته کاهش‌یافته UA در صورتی که نشانه آزمایشی مبدأ معتبر باشد، مشروط بر اینکه خط‌مشی مجوزها آن را اجازه دهد.

چگونه می توانم در آزمایشی مبدأ کاهش عامل کاربر شرکت کنم؟

  1. برای ثبت نام در نسخه آزمایشی اصلی و دریافت رمز برای دامنه های خود، از صفحه کاهش عامل کاربر آزمایشی بازدید کنید.

  2. سرصفحه های پاسخ HTTP خود را به روز کنید:

    1. Origin-Trial: <ORIGIN TRIAL TOKEN> به سرصفحه پاسخ HTTP خود اضافه کنید، جایی که < ORIGIN TRIAL TOKEN > حاوی نشانه ای است که هنگام ثبت نام برای آزمایش اصلی دریافت کرده اید.
    2. Accept-CH: Sec-CH-UA-Reduced به هدر پاسخ HTTP خود اضافه کنید.
    3. تنظیم Accept-CH فقط باعث می‌شود که رشته User-Agent کاهش یافته در درخواست‌های بعدی به مبدا ارسال شود. برای ارسال مجدد اولین درخواست پیمایش با رشته User-Agent کاهش یافته، Critical-CH: Sec-CH-UA-Reduced علاوه بر هدرهای Accept-CH و Origin-Trial به هدر پاسخ HTTP خود اضافه کنید.
    4. توجه: اگر سرصفحه‌های پاسخ حاوی یک نشانه معتبر Origin-Trial و Accept-CH: Sec-CH-UA-Reduced باشند، تمام درخواست‌های منبع فرعی (مثلاً برای تصاویر یا شیوه نامه‌ها) و مسیریابی‌های فرعی (به عنوان مثال، iframes) ارسال می‌شوند. رشته UA کاهش می یابد، حتی اگر مبدا آن درخواست ها در آزمایش اولیه ثبت نشده باشد.
  3. وب سایت خود را در کروم M95 (یا جدیدتر) بارگیری کنید و رشته UA کاهش یافته را دریافت کنید.

  4. هرگونه مشکل یا بازخورد را به مخزن UA Reduction GitHub ارسال کنید.

  5. برای یک نمایش ساده از آزمایش اولیه (همراه با کد منبع) به https://uar-ot.glitch.me/ مراجعه کنید.

چگونه در نسخه آزمایشی اصلی به عنوان یک جاسازی شخص ثالث شرکت کنیم؟

از Chrome 96، جاسازی‌های شخص ثالث (به عنوان مثال، یک iframe در یک سایت دیگر) می‌توانند بدون نیاز به ثبت‌نام سایت سطح بالا در نسخه آزمایشی اصلی شرکت کنند.

برای ثبت نام به عنوان جاسازی شخص ثالث:

  1. از Trial for User Agent Reduction دیدن کنید و روی ثبت کلیک کنید.
  2. هنگام ایجاد توکن، مطمئن شوید که کادر Third-party matching انتخاب کنید.
  3. برای دریافت هدر User-Agent کاهش یافته از جاسازی شخص ثالث، سرصفحه های پاسخ HTTP را به روز کنید .
  4. برای دریافت رشته User-Agent کاهش یافته در APIهای جاوا اسکریپت، رمز آزمایشی باید از طریق جاوا اسکریپت تزریق شود.

برخی از نکات مهم در مورد اجرای نسخه آزمایشی اصلی در جاسازی‌های شخص ثالث: + Critical-CH نمی‌توان برای جاسازی‌های شخص ثالث مشخص کرد، بنابراین اولین پیمایش رشته UA کاهش‌یافته را ارسال نمی‌کند، اگرچه درخواست‌های منبع فرعی شخص ثالث تعبیه شده است. رشته UA کاهش یافته را ارسال خواهد کرد. + اگر نسخه آزمایشی مبدأ برای مبدا جاسازی شخص ثالث تأیید شود، درخواست‌های بعدی به همان مبدا در یک پیمایش سطح بالا، رشته UA کاهش‌یافته را ارسال می‌کند. به همین دلیل، توصیه می‌شود که مشارکت در آزمایش اولیه را برای درخواست‌های سطح بالا و جاسازی با هم افزایش دهید. + اگر عامل کاربر کوکی‌های شخص ثالث را غیرفعال کرده باشد، آزمایش اولیه برای هدر User-Agent در درخواست‌های جاسازی شخص ثالث کار نمی‌کند، اگرچه APIهای جاوا اسکریپت همچنان رشته UA کاهش یافته را دریافت خواهند کرد.

چگونه می توانم تأیید کنم که آزمایش اولیه کار می کند؟

برای تأیید اینکه آزمایش اولیه کار می کند، سرصفحه های درخواست را بررسی کنید و از موارد زیر اطمینان حاصل کنید:

  1. هدر User-Agent حاوی نسخه کاهش یافته است. به این لیست از نمونه‌های رشته‌های کاهش‌یافته UA مراجعه کنید. یک راه آسان برای تشخیص این است که رشته نسخه کوچک کروم حاوی 0.0.0 است.
  2. هدر Sec-CH-UA-Reduced روی ?1 تنظیم شده است.

هدرهای پاسخ اولیه حاوی نشانه آزمایشی مبدا باید به شکل زیر باشد:

هدرهای پاسخ اولیه حاوی نشانه آزمایشی مبدا.

سرصفحه‌های درخواست بعدی حاوی رشته کاهش‌یافته UA باید به شکل زیر باشند:

هدرهای درخواست بعدی حاوی رشته UA کاهش یافته است.

چگونه می توانم از شرکت در نسخه آزمایشی مبدأ کاهش نماینده کاربر خودداری کنم؟

در هر زمان معینی در طول دوره آزمایشی، می‌توانید مشارکت را متوقف کنید و رشته کامل User-Agent را دریافت کنید. برای توقف مشارکت:

  1. یک سرصفحه Accept-CH در پاسخ HTTP خود ارسال کنید که شامل Sec-CH-UA-Reduced نمی شود. توجه: Accept-CH با مقدار خالی یک راه معتبر برای انجام این کار است اگر سایت شما هیچ راهنمایی مشتری دیگری را درخواست نکند.
  2. سرصفحه Origin-Trial برای آزمایشی User-Agent Reduction را از پاسخ HTTP خود حذف کنید.
  3. در صورت تنظیم، Sec-CH-UA-Reduced از سرصفحه Critical-CH در پاسخ HTTP خود حذف کنید.

آزمایش مبدا چقدر طول خواهد کشید؟

آزمایش اولیه UA Reduction حداقل به مدت شش ماه اجرا خواهد شد که مربوط به حدود شش نقطه عطف کروم است. نسخه آزمایشی اصلی در M95 ظاهر می‌شود و تا M101 به پایان می‌رسد، در این مرحله، Chrome بازخورد حاصل از آزمایش اصلی را قبل از ارسال رشته کاهش‌یافته User-Agent به صورت مرحله‌ای مطابق با طرح عرضه ، ارزیابی می‌کند. اگر سایتی به زمان بیشتری نیاز داشته باشد، می‌توانند در آزمایشی مبدا منسوخ بعدی شرکت کنند، که به آنها اجازه می‌دهد تا حداقل شش ماه دیگر به رشته کامل UA دسترسی داشته باشند. هنگامی که آزمایشی منسوخ شده آماده شد، جزئیات بیشتری را منتشر خواهیم کرد.

چگونه می‌توانم بازخورد آزمایشی مبدأ کاهش عامل کاربر را به اشتراک بگذارم؟

هرگونه مشکل یا بازخورد را به مخزن UA Reduction GitHub ارسال کنید.