وظيفة مصدر حركة المرور متوفرة في خدمات إحصاءات المرور. مصدر حركة المرور هو مفهوم لمستوى الزيارة. بمعنى آخر ، عند إنشاء الزيارة ، يكون مصدر حركة المرور للصفحة المقصودة هو مصدر حركة المرور في الزيارة. على الرغم من وجود العديد من أنواع مصدر حركة المرور ، للأسف ، استنادًا إلى JS الآن ، لا يوجد سوى طريقتان للحصول على مصدر حركة المرور - document.referrer و window.opener. والأكثر تأهيدًا هو أنه لا يوجد العديد من السيناريوهات التي تكون هذه النافذة مناسبة.
نظرة عامة على document.referrer
من حيث الاستخدام ، يأمل document.referrer في تتبع سلوك المتصفح. إذا تم فتح الصفحة A ، فإن الإجراءات التي قد تحدث على المتصفح تتضمن عمليات المستخدم ورمز JS.
دعنا أولاً نلقي نظرة على الإجراءات التي قد يقوم بها المستخدمون عند فتح الصفحة أ:
| 1 | أدخل عنوان A مباشرة في شريط العناوين |
| 2 | انقر بزر الماوس الأيسر رابط A من الصفحة B ثم القفز إلى الصفحة أ |
| 3 | انقر بزر الماوس الأيمن فوق الرابط A من الصفحة B لفتحه في نافذة جديدة |
| 4 | انقر بزر الماوس الأيمن فوق الرابط A من الصفحة B وفتحه في علامة التبويب الجديدة |
| 5 | اسحب الرابط A إلى شريط العناوين |
| 6 | اسحب الرابط A إلى شريط التبويب |
| 7 | استخدم أزرار المستعرض للأمام والخلفي |
لاحظ أن الرابط هنا يشير إلى علامة <a> ، ولكن إذا كان هناك حدث أو هدف ، فيجب أن يكون الأمر مختلفًا.
الطرق الممكنة لفتح صفحة بواسطة JS:
| 1 | تعديل window.location |
| 2 | استخدم window.Open |
| 3 | انقر فوق فلاش |
يسرد ما ورد أعلاه بعض الطرق للعميل لفتح الصفحة. بالإضافة إلى ذلك ، إذا تم استخدام تقنية إعادة توجيه الخادم ، فيمكن أيضًا تقديم الصفحة A إلى الزوار.
هنا اختبار متصفح محدد. إذا كانت المواقف المذكورة أعلاه هي ما سبق ، فكيف يقوم Document.referrer:
| رقم سري | مشهد | IE8.0 | FF3.6 | FF4.0 | الكروم |
| 1 | أدخل عنوان A مباشرة في شريط العناوين | "" " | "" " | "" " | "" " |
| 2 | انقر فوق اليسار رابط A من الصفحة B ، والصفحة A استبدال الصفحة B (Target = '_ Self') | √ | √ | √ | √ |
| 3 | انقر فوق اليسار رابط A من الصفحة B ، يفتح A في نافذة جديدة (Target = '_ Blank') | √ | √ | √ | √ |
| 3 | انقر بزر الماوس الأيمن فوق الرابط A من الصفحة B لفتحه في نافذة جديدة | √ | √ | √ | "" " |
| 4 | انقر بزر الماوس الأيمن فوق الرابط A من الصفحة B وفتحه في علامة التبويب الجديدة | √ | √ | √ | "" " |
| 5 | اسحب الرابط A إلى شريط العناوين مع الماوس | / | "" " | "" " | "" " |
| 6 | ارتباط سحب الماوس A إلى شريط التبويب | "" " | "" " | "" " | "" " |
| 7 | استخدم أزرار المستعرض للأمام والخلفي | يحفظ | يحفظ | يحفظ | يحفظ |
| 8 | تعديل window.location لفتح الصفحة A (نفس المجال) | "" " | √ | √ | √ |
| 9 | افتح الصفحة A باستخدام Window.Open | "" " | √ | √ | √ |
| 10 | انقر فوق فلاش لفتح الصفحة أ | ||||
| 11 | إعادة توجيه الخادم إلى الصفحة أ | "" " | "" " | "" " | "" " |
عندما تعني "" سلسلة فارغة ، √ يعني أنه يمكن الحكم على صفحة المصدر بشكل صحيح ، والحفاظ على يعني أن المرجع الذي لن يغير الصفحة عندما لا يتغير الأمام والخلف. من هذا الجدول ، يمكننا أن نرى أن المستند. يمكن أن يغطي REFERRER حوالي نصف الحالات. ومع ذلك ، بالنسبة لبعض العمليات الأكثر شيوعًا ، مثل سحب الرابط إلى شريط علامة التبويب مع الماوس ، والانتقال إلى الأمام والخلف ، وما إلى ذلك ، لا يمكن التعامل معها بشكل صحيح.
مصدر المستند. REFERRER
عندما يطلب المتصفح صفحة A من الخادم ، سترسل طلب HTTP. سيكون لرأس هذا الطلب سمة المرجع. بعد أن يستقبل الخادم الطلب ، يمكنه استخراج المرجع في الرأس لتحديد الصفحة التي بدأها الزائر في الطلب.
بشكل عام ، ما هو المرجع في الرأس الذي أرسله المتصفح عند طلب A ، ثم ما هي قيمة المستند. referre بعد الحصول على الصفحة A. الصورة أعلاه هي رأس يطلب الصفحة A ، و document.referre of a هو http: //localhost/test/b.html.
إذا لم يحتوي الرأس على إحالة ، فعند استخدام document.referre ، فسيتم تعيينه كسلسلة فارغة.
حول طلب HTTPS
إذا قمت بالنقر فوق رابط HTTPS على صفحة HTTP العادية ، فيمكنك إرفاق معلومات المرجع برأس طلب HTTPS ، ثم لا يزال بإمكانك استخدام Document.referre للحصول على صفحة HTTP العادية في صفحة HTTPS.
وبالمثل ، إذا قمت بالنقر فوق رابط HTTPS آخر على صفحة HTTPS واحدة ، فيمكنك إرفاق معلومات المرجع برأس الطلب.
ومع ذلك ، إذا قمت بالنقر فوق رابط HTTP من صفحة HTTP ، للأسف ، لا يمكن لرأس طلب HTTP المرسلة يحتوي على معلومات حول صفحة HTTP ، والتي قد تكون بسبب مقياس حماية لصفحة HTTP.
معلومات المرجع المزورة
وفقًا للوصف أعلاه ، يتم اشتقاق Document.referre من المرجع في الرأس. ثم إذا كنت ترغب في تعديل قيمة المستند. referre ، من الناحية النظرية ، تحتاج فقط إلى تعديل رأس الطلب. يمكنك استبدال المرجع الموجود في الرأس بالقيمة التي تريدها. إذا لم يكن متاحًا في الأصل ، فيمكنك إضافة المرجع.
على جانب العميل ، يعد العبث بالرأس أمرًا سهلاً للغاية. قبل إرسال طلب HTTP على الصفحة ، يمكنك استخدام أداة اعتراض الحزم لاعتراضه ، ثم تحليل معلومات الرأس ، وتعديل الإحالة.
بعد البحث ، يمكن تعديل Firefox بسهولة باستخدام المكون الإضافي RefControl. على أي حال ، الغش في مصدر حركة المرور هو نسيم.
تحديث قوة الصفحة
بعد فترة وجيزة من الانتهاء من الكتابة ، وجدت أن طريقة للقفز كانت مفقودة ، أي إجبار الصفحة على تحديدها في علامة التعريف في HTML للتحديث. على سبيل المثال ، اكتب في B.HTML
انسخ رمز الرمز كما يلي: <meta http-equiv = "refresh" content = "5 ؛ url = a.html">
ثم بعد 5 ثوان ، سيقوم المتصفح تلقائيًا بتشغيل طلب صفحة إلى الخادم.
بعد الاختبار ، في IE8 ، FF3.6-FF4.0 ، لن تكون هناك معلومات مرجع ، ولكن يمكن لـ Chrome إضافة B.HTML كمرجع للرأس عن طريق الخطأ.