שרת proxy פרטי לשליפה מראש ב-Chrome למנהלי רשתות

כדי לקצר את זמני הטעינה של הדפים בשביל המשתמשים שלנו, Chrome יבצע לפעמים שליפה מראש (prefetch) של קישורים בדף תוצאות החיפוש ב-Google ובאתרים אחרים שמשתתפים, לפני שהמשתמש ילחץ עליהם. התכונה הזו מתוארת בפירוט במאמר הזה מנקודת המבט הטכנית.

התכונה הזו מסתמכת על שרת proxy של CONNECT שמסתיר את כתובת ה-IP של המשתמש מהאתר שאותו צריך לאחזר מראש. לאחר מכן, פעולה זו מעבירה את חיבור החיבור אל מחוץ לתצוגה של מנהלי הרשת.

עם זאת, אנחנו מודעים לכך שייתכן שמנהלי רשתות יצטרכו לסנן תוכן. לכן פיתחנו מנגנון שבאמצעותו מנהלי רשתות יכולים להמשיך לעשות זאת אם המשתמש לוחץ על קישור שנשלף מראש.

סינון תוכן

כדי לשמור על פרטיות המשתמש, Chrome לא יבצע חיפושי DNS גלויים במהלך שליפה מראש (prefetch) של קישורים. אם המשתמש יעבור לקישור שנשלף מראש, המשאבים של הדף יאוחזרו מהמטמון המקומי בלי לבצע חיפוש DNS גלוי. תופעת לוואי אחת היא שסינון תוכן עשוי שלא לפעול כמצופה כשהמשתמש מנווט לקישור שנשלף מראש.

כדי לאפשר למנהלי רשתות לסנן תוכן בניווטים שנשלפו מראש, תכננו מנגנון איתות שינחה את Chrome לבצע חיפוש DNS כשהמשתמש לוחץ על קישור שנשלף מראש. חיפוש ה-DNS יתבצע באותו זמן ובאותה צורה כאילו היא לא הייתה מתבצעת בשליפה מראש, ובכך תספק למנהלי המערכת את אותה הזדמנות לסנן תוכן. Chrome יושהה את הטעינה של המשאבים שנשלפו מראש מהמטמון עד שחיפוש ה-DNS השני יסתיים בהצלחה. אם הבעיה תיכשל, Chrome לא ישתמש במשאבים שנשלפו מראש. במקום זאת, הדף יטען את הדף כרגיל. שים לב שפעולה זו תגרום לפגיעה בביצועים עבור המשתמש, מכיוון ש-Chrome צריך להמתין להשלמת חיפוש ה-DNS.

פרטים על מנגנון האיתות

עבור משתמשים שלא השביתו טעינות מראש של דפים, Chrome ישלח באופן אסינכרוני חיפוש DNS עבור dns-tunnel-check.googlezip.net כש-Chrome יופעל או כשיתרחש שינוי בממשק הרשת.

אלו התוצאות האפשריות של הבדיקה dns-tunnel-check.googlezip.net:

  • אם התשובה היא NXDOMAIN או SERVFAIL, או אם מוחזר קוד תגובה של NOERROR אבל לא מכיל רשומות A או AAAA, דפדפן Chrome יבין שמנהלי הרשת צריכים לראות את הניווטים לדפים שנשלפו מראש (עיינו במצב קדם-הפעלה).
  • אם התשובה היא ערך אחר, Chrome ישתמש ישירות במשאבים שנשלפו מראש ולא יבצע חיפושי DNS נוספים כשהמשתמש ינווט לדף שנשלף מראש.

התוצאה של הבדיקה הזו תישמר עד ש-Chrome יופעל מחדש, או עד שממשק הרשת ישתנה. פעולה זו תפעיל חיפוש DNS חדש עבור dns-tunnel-check.googlezip.net, עם תוצאה פוטנציאלית שונה.

מצב קדם-הפעלה

במצב הזה, לפני שמנווטים לדף שנשלף מראש דרך שרת ה-proxy הפרטי לשליפה מראש (prefetch), Chrome מבצע חיפוש DNS לגבי הדומיין הרלוונטי, וממתין עד שהתשובה תחזור:

  • אם התשובה מורכבת מקבוצה לא ריקה של כתובות IP, Chrome ימשיך בניווט תוך שימוש במשאבים שנשלפו מראש.
  • אם התשובה היא REFUSED (המועדף) או NXDOMAIN, Chrome לא ימשיך בניווט אלא יציג את דף שגיאת ה-DNS הרלוונטי.