پروکسی پیش واکشی خصوصی در کروم

کیتی همپنیوس
Katie Hempenius
کنجی باهوکس
Kenji Baheux
مایکل بوتنر
Michael Buettner

سرعت بخشیدن به بزرگترین رنگ محتوایی (LCP) با واکشی اولیه متقاطع سایت.

با شروع Chrome 103 برای Android، Chrome به تدریج یک ویژگی پراکسی پیش واکشی خصوصی را برای سرعت بخشیدن به ناوبری خروجی از جستجوی Google و سایر وب‌سایت‌های شرکت‌کننده تا 30 درصد در میانه راه‌اندازی می‌کند. این ویژگی پراکسی پیش واکشی خصوصی امکان واکشی اولیه محتوای متقاطع را بدون افشای اطلاعات کاربر در وب سایت مقصد تا زمانی که کاربر پیمایش کند، می دهد.

برای آشنایی با نحوه عملکرد این ویژگی ، چگونگی کمک به بهبود قابل توجه بزرگترین رنگ محتوای سایت شما (LCP) ، یا اینکه چگونه وب سایت های ارجاع دهنده می توانند به کاربران خود در دستیابی به اهداف خود با سرعت بخشیدن به پیمایش های بین سایتی کمک کنند ، مطالعه کنید.

پروکسی واکشی اولیه خصوصی چگونه کار می کند

کانال ارتباطی امن

این ویژگی از یک پروکسی CONNECT برای ایجاد یک کانال ارتباطی امن بین Chrome و سرور میزبان محتوایی که قرار است از قبل واکشی شود استفاده می کند. این کانال ارتباطی امن مانع از بازرسی هر گونه انتقال داده توسط پروکسی می شود. قابل ذکر است، در حالی که پراکسی پیش واکشی خصوصی لزوماً نام میزبان را برای ایجاد یک کانال ارتباطی امن می بیند، نه URL های کامل و نه خود منابع را می بیند.

انیمیشنی که جریان داده ها را از طریق پروکسی نشان می دهد.
واکشی اولیه وب سایت ها از طریق یک پروکسی CONNECT از افشای اطلاعات کاربر جلوگیری می کند.

علاوه بر این، از آنجایی که کانال ارتباطی امن به صورت سرتاسر رمزگذاری شده است، واسطه ها نه می توانند نام میزبان و نه محتوای سایت های از پیش واکشی شده را مشاهده کنند. در نهایت، پروکسی ذاتاً از دیدن آدرس IP کاربر توسط سرور مقصد جلوگیری می کند.

جلوگیری از شناسایی کاربر

فراتر از جنبه های شبکه که قبلاً توضیح داده شد، ما همچنین باید از شناسایی کاربر در زمان واکشی اولیه توسط سرورها از طریق اطلاعاتی که قبلاً در دستگاه آنها ذخیره شده است جلوگیری کنیم. برای این منظور، Chrome در حال حاضر استفاده از پراکسی پیش واکشی خصوصی را به وب‌سایت‌هایی محدود می‌کند که کاربر هیچ کوکی یا وضعیت محلی دیگری برای آنها ندارد. در اینجا محدودیت‌هایی برای درخواست‌های واکشی اولیه از طریق پراکسی Prefetch خصوصی وجود دارد:

  • کوکی ها: درخواست های پیش واکشی مجاز به حمل کوکی نیستند.
    • اگر یک کوکی برای یک منبع وجود داشته باشد، Chrome یک واکشی بدون اعتبار انجام می‌دهد اما از پاسخ استفاده نمی‌کند (به بخش ذخیره‌سازی بعدی مراجعه کنید).
    • اگرچه پاسخ‌ها به درخواست واکشی اولیه می‌تواند شامل کوکی‌ها باشد، اما این کوکی‌ها تنها در صورتی ذخیره می‌شوند که کاربر به صفحه از پیش واکشی شده حرکت کند.
  • انگشت نگاری: سایر سطوحی که می توانند برای اثر انگشت استفاده شوند نیز تنظیم می شوند. به عنوان مثال، هدر User-Agent ارسال شده توسط پراکسی پیش واکشی تنها حاوی اطلاعات محدودی است.

در آینده، امیدواریم پراکسی Prefetch Private را به پیوندهایی با کوکی ها یا وضعیت محلی گسترش دهیم و در عین حال همان ویژگی های حریم خصوصی را حفظ کنیم. برای جزئیات بیشتر به بخش بعدی چه است مراجعه کنید.

ذخیره سازی

Chrome منابع را از قبل واکشی می‌کند، حتی اگر آنها از قبل در حافظه پنهان باشند، اما هیچ عنوان شرطی مانند ETag یا If-Modified-Since را ندارند (این‌ها حاوی مقادیر مجموعه‌ای از سرور هستند که می‌توانند برای ردیابی حتی بدون کوکی‌ها استفاده شوند). این واکشی اولیه برای جلوگیری از نشت وضعیت حافظه پنهان مشتری به وب سایت از پیش واکشی شده انجام می شود. علاوه بر این، کروم تنها در صورتی یک منبع از پیش واکشی شده را به حافظه نهان متعهد می کند که کاربر تصمیم بگیرد به وب سایت از پیش واکشی شده حرکت کند.

شروع به کار با پروکسی واکشی اولیه خصوصی

برای صاحبان وب سایت

برای شروع بهره مندی از پروکسی پیش واکشی خصوصی در پیوندهایی که کاربر هیچ کوکی یا وضعیت محلی برای آنها ندارد، هیچ اقدامی از سوی صاحبان وب سایت لازم نیست. از آزمایشات ما، این یک فرصت قابل توجه برای اکثر وب سایت ها است. علاوه بر این، همیشه ایده خوبی است که بازدیدکنندگانی که برای اولین بار یا بازدیدکنندگان کمیاب هستند را با تجربه بارگذاری فوق العاده سریع تحت تاثیر قرار دهید. از آزمایش‌های گذشته، ما بین 20 تا 30 درصد سریع‌تر بزرگترین رنگ محتوایی را در پیمایش‌های از پیش واکشی شده مشاهده کرده‌ایم.

در آینده، امیدواریم این ویژگی را به پیوندهایی با کوکی ها یا وضعیت محلی گسترش دهیم و در عین حال خصوصیات حریم خصوصی آن را حفظ کنیم. چالش کوکی ها این است که ممکن است از آنها برای تغییر تجربه کاربر به روش هایی استفاده شود که پیش بینی آن دشوار است. بنابراین، صاحبان وب سایت به احتمال زیاد باید سایت خود را انتخاب کرده یا تنظیم کنند تا از پروکسی پیش واکشی خصوصی برای پیوندهایی با کوکی ها بهره مند شوند.

به طور مشخص، در حالی که درخواست‌های واکشی اولیه بدون اعتبار باقی می‌مانند، وقتی کاربر به آن پیمایش می‌کند، صفحه وب به کوکی‌ها و سایر وضعیت‌های محلی دسترسی پیدا می‌کند. توسعه دهندگان می توانند از این مزیت برای اضافه کردن شخصی سازی و تغییرات بر اساس کوکی ها یا وضعیت محلی استفاده کنند. یا شاید، توسعه دهندگان نیز ممکن است علاقه مند باشند که منابع خاصی را برای واکشی و استفاده از قبل بدون کوکی (یعنی منابعی که به هیچ کوکی وابسته نیستند) کاملاً خوب اعلام کنند. لطفاً برای کسب اطلاعات بیشتر و اطلاع از برنامه ما به بخش بعدی چه است نگاهی بیندازید.

محتوا یا خدمات وابسته به جغرافیا

اگر وب سایت شما در بازارها بر اساس آدرس IP کاربر رفتار متفاوتی دارد (مثلاً محتوای متفاوت یا دسترسی انتخابی)، ممکن است تعجب کنید که چگونه با درخواست‌های واکشی اولیه پراکسی Private Prefetch Proxy رسیدگی کنید. مهم است بدانید که پراکسی Prefetch خصوصی توسط سرورهای متعددی که در سرتاسر جهان پخش شده اند پشتیبانی می شود، و IP پروکسی به کشوری که کاربر از آن واکشی اولیه را آغاز کرده است، قرار می گیرد.

بنابراین، با در نظر گرفتن این موضوع، این چیزی است که ما توصیه می کنیم:

  1. شناسایی درخواست‌های واکشی اولیه از پراکسی Prefetch خصوصی با حضور Sec-Purpose: Prefetch; anonymous-client-ip هدر HTTP Sec-Purpose: Prefetch; anonymous-client-ip .
  2. موقعیت جغرافیایی پراکسی Prefetch خصوصی که درخواست را از طریق آدرس IP خود صادر کرده است، جستجو کنید. این منبع را برای فهرست به‌روز از جغرافیای منتشر شده و آدرس‌های IP مربوطه ببینید.
  3. منابع را مطابق با بازار متصل به این موقعیت جغرافیایی خاص ارائه دهید.

کنترل ترافیک

از آزمایش‌های گذشته، می‌دانیم که این ویژگی معمولاً منجر به کمتر از 2٪ درخواست اضافی برای منابع اصلی (به عنوان مثال اسناد HTML) می‌شود. با این حال، اگر شما محتاط هستید، می‌توانید از فیلد کسری راهنمایی ترافیک برای کنترل میزان ترافیکی که پراکسی واکشی اولیه خصوصی باید عبور کند استفاده کنید. می توانید با کسر کوچکی مانند 0.3 (یعنی 30%) شروع کنید و با افزودن JSON زیر به فایل /.well-known/traffic-advice که به تدریج آن را به 1.0 (یعنی 100%) افزایش دهید. باید با نوع MIME application/trafficadvice+json ارائه شود:

[{
  "user_agent": "prefetch-proxy",
  "fraction": 0.3
}]

فیلد fraction یک شناور بین 0.0 (اصلاً واکشی اولیه وجود ندارد) و 1.0 است (100٪ درخواست های واکشی اولیه انجام می شود).

همچنین می توان با تنظیمات زیر این را به طور کامل غیرفعال کرد:

[{
  "user_agent": "prefetch-proxy",
  "disallow": true
}]

فایل /.well-known/traffic-advice توسط پروکسی و نه کلاینت واکشی می شود و در پروکسی بر اساس معنای معمول حافظه پنهان HTTP ذخیره می شود. برای انعطاف‌پذیری بیشتر - به عنوان مثال، یک اوج ناگهانی دسترسی شدید - ممکن است بخواهید موقتاً درخواست‌های واکشی اولیه ( Sec-Purpose: prefetch;anonymous-client-ip ) را با کد وضعیت 503 رد کنید و با تنظیم Cache-Control: no-store هدر Cache-Control: no-store در پاسخ. همچنین می‌توانید سرصفحه Retry-After را اضافه کنید تا به Chrome بگویید قبل از تلاش مجدد درخواست‌های واکشی اولیه، چه مدت صبر کند.

برای صاحبان وب سایت ارجاع دهنده

اگر وب‌سایتی با پیوندهای زیادی به وب‌سایت‌های دیگر راه‌اندازی می‌کنید، ممکن است علاقه مند به استفاده از ویژگی Private Prefetch Proxy برای سرعت بخشیدن به این پیمایش‌های متقاطع باشید. باید قوانین حدس و گمان را به صفحات خود اضافه کنید تا Chrome بداند کدام صفحه را باید از طریق Proxy Prefetch Private واکشی کند. در اینجا یک مثال ساده است:

<script type="speculationrules">
{
  "prefetch": [
    "source": "list",
    "urls": ["https://example.com/index.html"],
    "requires": ["anonymous-client-ip-when-cross-origin"]
  ]
}
</script>

بعدش چی؟

این راه اندازی تنها گام اول است. امیدواریم بتوانیم این ویژگی را بر اساس علاقه و بازخورد جامعه گسترش و بهبود دهیم. به عنوان مثال، ما دوست داریم درباره نحوه گسترش پیوندها با کوکی ها و وضعیت محلی به گونه ای که اصطکاک توسعه دهندگان را به حداقل می رساند یا راه هایی برای مفیدتر کردن این ویژگی برای وب سایت های ارجاع دهنده بازخورد ارائه دهیم.

ادامه مطلب