المرة الأولى التي اضطررت فيها إلى فهم سلسلة وكيل المستخدم بكميات كبيرة كانت أثناء مشروع تحسين محركات البحث wpadminify.com، أحدق في سجل الوصول إلى الخادم محاولًا معرفة مقدار حركة المرور التي كانت لأشخاص حقيقيين ومقدار برامج الزحف. كان لدي عمود من السلاسل التي بدأ بها كل شيء Mozilla/5.0، جميعهم ذكروا سفاري، ونصفهم كانوا يكذبون بشأن كونهم متصفحًا واحدًا بينما هم في الواقع متصفح آخر. كانت قراءتها بالعين ميؤوس منها. هذه هي المهمة التي يقوم بها المحلل اللغوي لوكيل المستخدم، وبعد القيام بذلك بالطريقة الصعبة مرات عديدة قمت بدمجها تولز.ديف. هذا هو الدليل لها، وإلى الرأس الفوضوي المدهش الذي يقف خلفها.
ليرة تركية؛DR: تولز محلل وكيل المستخدم يأخذ سلسلة وكيل المستخدم ويقسمها إلى متصفح، ومحرك عرض، ونظام تشغيل، ونوع الجهاز، وبنية وحدة المعالجة المركزية. يطبق ترتيب الكشف الذي يتطلبه الرأس '؛s، لذلك لا تتم قراءة Edge بشكل خاطئ حيث تتم قراءة Chrome وmobile Safari من رمز الإصدار الحقيقي الخاص به. كما أنه يشير إلى الروبوتات المعروفة. كل شيء يعمل من جانب العميل: لا يوجد تحميل، ولا تسجيل، وآمن لخطوط السجل الحقيقية.
ما هي سلسلة وكيل المستخدم؟
سلسلة وكيل المستخدم هي قيمة User-Agent رأس الطلب الذي يرسله المتصفح أو عميل HTTP مع كل طلب تقريبًا. يتم تعريف الرأس في RFC 9110، مواصفات HTTP Semantics، التي تصفها بأنها سلسلة من معرفات المنتج والتعليقات التي تسمح للخادم بتحديد البرنامج الذي يقدم الطلب. ومن الناحية العملية، فهو يسمي المتصفح، وإصداره، ومحرك العرض، ونظام التشغيل، وغالبًا الجهاز.
كان القصد معقولًا: منح الخوادم طريقة لمعرفة ما يتم الاتصال به حتى يتمكنوا من تكييف الاستجابات أو جمع الإحصائيات. والحقيقة هي أن السلسلة أصبحت واحدة من أقل البيانات التي يتم الإبلاغ عنها ذاتيًا على الويب جدارة بالثقة، ليس لأنها ضارة ولكن لأن عقدين من اختراقات التوافق قد تم وضع طبقات من الرمز المميز على الرمز المميز حتى تصبح القراءة الواضحة عادةً هي القراءة الخاطئة.
فيما يلي سلسلة Chrome حديثة على نظام التشغيل Windows:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
تدعي أنها Mozilla، وتذكر AppleWebKit، وتنتهي بكلمة Safari. إنه ليس أيًا من هذه الأشياء؛ إنه كروم. كل رمز من قبل Chrome/126 هي الرواسب التاريخية. يوجد المحلل اللغوي على وجه التحديد لأنه لا يمكنك الوثوق بالرموز المميزة التي تبدو أكثر موثوقية.
لماذا يكون تحليل وكيل المستخدم عرضة للخطأ؟
نما الرأس عن طريق التقليد. في حروب المتصفحات المبكرة، قامت الخوادم بفحص وكيل المستخدم لتحديد إصدار الصفحة التي سيتم إرسالها، وقاموا بالتحقق بطريقة خرقاء، غالبًا من خلال مطابقة سلسلة فرعية بسيطة. كان على المتصفح الجديد الذي أراد الحصول على الصفحة الجيدة والحديثة أن يحتوي على الرمز المميز الذي كان الخادم يبحث عنه، لذلك قام كل متصفح بنسخ الفائز السابق. أطلقت Netscape على نفسها اسم Mozilla، لذلك ادعى Internet Explorer أنه متوافق مع Mozilla. عندما وصلت متصفحات WebKit، كانت تحمل رموز Mozilla وKHTML. تشعب Chrome من WebKit واحتفظ بكل من AppleWebKit وSafari حتى تتعامل خوادم WebKit-sniffing معه بشكل جيد. والنتيجة هي أن سلسلة واحدة يمكن أن تحتوي بصراحة على أسماء أربعة سلالات مختلفة من المتصفحات.
يؤدي هذا إلى إنشاء مصائد خرسانية لأي شخص يقرأ السلسلة
- يحتوي كل من Edge وOpera على
Chrome. ملحقات مايكروسوفت إيدجEdg/126.0.0.0والأوبرا تلحقOPR/، ولكن كلاهما يحملان بالكامل أيضًاChrome/126رمز مميز لأنه يعتمد على Chromium. اختبر Chrome أولاً وستقوم بتسمية كل مستخدم Edge وOpera باسم Chrome. - سفاري يخفي نسخته الحقيقية. على سطح المكتب وعلى نظام التشغيل iOS، يقوم Safari بالإبلاغ عن نسخته التي تواجه المستخدم في ملف
Version/17.5رمز مميز، في حين أنSafari/604.1الرمز المميز بالقرب من النهاية هو رقم إنشاء WebKit، وليس إصدار المتصفح. يقرأSafari/كإصدار وستحصل على رقم لا معنى له. - Chrome على نظام التشغيل iOS ليس محرك Chrome'؛s. تطلب Apple من جميع متصفحات iOS استخدام WebKit، لذلك يقوم Chrome الموجود على iPhone بالإبلاغ
CriOSويعمل على تشغيل WebKit، وليس Blink. فايرفوكس على نظام iOS هوFxiOS، أيضا WebKit. - Windows 11 غير موجود في السلسلة. لم تصطدم Microsoft مطلقًا برمز NT kernel المميز، لذلك أبلغ كل من Windows 10 وWindows 11
Windows NT 10.0. لا يمكن للسلسلة التمييز بينهما على الإطلاق.
المحلل اللغوي عبارة عن كومة صغيرة من القواعد المرتبة التي تعرف عن هذه الفخاخ. هذا هو كل ما في الأمر حقًا، لكن الحصول على الترتيب الصحيح هو اللعبة بأكملها.
كيف يعمل محلل وكيل مستخدم Toolz؟
ال محلل يقوم بتشغيل سلسلة من عمليات التحقق التي يقوم ترتيبها بتشفير المصائد أعلاه. يبحث عن المتصفحات التي تتضمن متصفحًا آخر ورمز #39؛ أولاً. الحافة قبل Chrome، وOpera قبل Chrome، وSamsung Internet، ومتصفح UC قبل Chrome، لذا فإن المستعارة Chrome الرمز المميز لا يفوز أبدًا عن طريق الصدفة. يقرأ سفاري من Version/ رمز بدلا من ذلك Safari/ بناء رمز مميز. يتعرف على متغيرات iOS CriOS و FxiOS مثل Chrome وFirefox على التوالي أثناء الإبلاغ بشكل صحيح عن محركهما باسم WebKit.
بالنسبة لنظام التشغيل، يقوم بتعيين رقم Windows NT kernel إلى الاسم التسويقي، لذلك Windows NT 6.1 يصبح ويندوز 7 و Windows NT 10.0 يصبح Windows 10 أو 11، ويتم ذكره بصراحة كزوج لأن السلسلة لا يمكنها التمييز بينهما حقًا. فهو يستعيد الشكل المنقط لإصدارات iOS وmacOS، والذي يكتبه الرأس بالشرطة السفلية مثل 17_5ويتعرف على أنظمة التشغيل Android وChrome OS وLinux.
بالنسبة للجهاز، فإنه يصنف الطلب على أنه سطح مكتب أو هاتف محمول أو جهاز لوحي أو روبوت. قاعدة الجهاز اللوحي هي القاعدة: جهاز iPad هو جهاز لوحي، وجهاز Android بدون Mobile الرمز المميز هو جهاز لوحي، وأي شيء مطابق Mobile، iPhone، أو Windows Phone هو الهاتف. عندما تكشف السلسلة عن طراز جهاز، مثل سلسلة إنشاء Android أو اسم منتج Apple، يقوم المحلل اللغوي بعرضها.
كما أنه يضع علامة على الروبوتات. هذا هو الحقل الذي أصل إليه بالنسبة لمعظم الأشخاص، لأنه عندما تقرأ سجل وصول، فإن السؤال الوحيد الأكثر فائدة هو مقدار حركة المرور الآلية. يطابق المحلل اللغوي مجموعة واسعة من التوقيعات التي تغطي برامج زحف البحث، وجلب المعاينة الاجتماعية، وعملاء سطر الأوامر.
ماذا يمكن أن يخبرك وكيل المستخدم، وماذا لا يستطيع؟
ومن الجدير أن نكون دقيقين بشأن الحدود، لأن التعامل مع السلسلة كحقيقة يؤدي إلى قرارات سيئة.
| سؤال | هل يمكن لـ UA الإجابة عليه؟ | ملاحظات |
|---|---|---|
| أي عائلة المتصفح | عادة نعم | مع أمر الكشف الصحيح |
| نسخة المتصفح بالضبط | عادة نعم | تجميدها أو تخفيضها بشكل متزايد |
| اسم نظام التشغيل | عادة نعم | نظام التشغيل Windows 10 مقابل 11 مستحيل |
| نوع الجهاز | تقريبا | إرشادي، غير مضمون |
| نموذج الجهاز الدقيق | أحيانا | فقط عندما تتضمنها السلسلة |
| ما إذا كان العميل أصيلاً | لا | قابلة للسخرية بشكل تافه |
| حجم الشاشة أو إمكانياتها | لا | استخدم اكتشاف الميزات بدلاً من ذلك |
الصفان الأخيران هما الأكثر أهمية. يتم الإبلاغ عن وكيل المستخدم ذاتيًا ويمكن تغييره في سطر واحد من التعليمات البرمجية، يتم تعيينه بواسطة أي عميل HTTP، أو تجميده بواسطة المتصفح من أجل الخصوصية. يمكن للمكشطة أن تعلن عن نفسها على أنها Chrome على نظام التشغيل Windows ولا يوجد شيء في السلسلة يتعارض معها. لذا فإن النتيجة التي تم تحليلها تخبرك بما يدعي العميل أنه مفيد للإحصائيات وتصحيح الأخطاء ولكنه ليس دليلاً على أي شيء. عندما تحتاج إلى معرفة ما يمكن أن يفعله المتصفح بالفعل، اكتشف الميزات في JavaScript بدلاً من استنتاج الإمكانات من الاسم. هذا هو نفس المبدأ الكامن وراء كتابة تعليمات برمجية أمامية مرنة مجموعة أدوات مطور الويب يعود Roundup إلى مرارا وتكرارا.
هل تختفي سلاسل وكيل المستخدم؟
ليس بالضبط، ولكن يتم تخفيضها عمدا. تعمل متصفحات Chromium على تجميد وتقليص السلسلة القديمة لبضع سنوات، مع تحديد مستوى التفاصيل التي تكشفها، وخاصة أرقام الإصدارات الثانوية وبعض تفاصيل النظام الأساسي. الاستبدال هو تلميحات عميل وكيل المستخدمآلية يطلب فيها الخادم بالضبط أجزاء معلومات العميل التي يحتاج إليها Sec-CH-UA طلب الرؤوس و navigator.userAgentData JavaScript API، بدلاً من تلقي سلسلة طويلة واحدة، يجب تحليلها. تلميحات العميل هي أيضًا المكان الذي يصبح فيه تمييز Windows 10 مقابل 11 متاحًا أخيرًا، من خلال Sec-CH-UA-Platform-Version.
والنتيجة العملية للسنوات العديدة القادمة هي أن كلاهما موجود. الكلاسيكية User-Agent لا يزال الرأس يأتي عند كل طلب من كل متصفح وكل عميل غير متصفح، ولا يزال قدر كبير من الأدوات والتحليلات والمنطق من جانب الخادم يقرأه. لذا يظل تحليل السلسلة هو الطريقة الأكثر قابلية للحمل لتحديد العميل، حتى مع انتقال البيانات الأكثر ثراءً إلى تلميحات العميل. إذا كنت تقوم ببناء شيء جديد وتريد إصدار النظام الأساسي بدقة، فاقرأ تلميحات العميل؛ إذا كنت تقوم بتحليل سجل موجود أو دعم أوسع نطاق من العملاء، فقم بتحليل السلسلة.
كيف يمكنني استخدام المحلل اللغوي؟
التدفق بسيط عن عمد. الصق سلسلة وكيل المستخدم في المربع، أو انقر فوق إحدى العينات المضمنة لرؤية سلسلة تمثيلية لسطح المكتب أو الهاتف المحمول أو الروبوت. للحصول على وحدة تحكم المتصفح الخاصة بك، افتح وحدة تحكم المتصفح الخاص بك واكتب navigator.userAgent، ثم لصق النتيجة. أثناء الكتابة، يتم تحديث المتصفح والمحرك ونظام التشغيل ونوع الجهاز وبنية وحدة المعالجة المركزية وعلامة الروبوت مباشرة، بدون زر للضغط عليه. عندما تريد النتيجة في مكان آخر، انسخها كجدول مفصول بعلامات تبويب يتم لصقه بشكل نظيف في جدول بيانات أو تقرير خطأ.
نظرًا لأن الأمر برمته يعمل في متصفحك، يمكنك لصق أسطر سجل الوصول الأولية أو سلاسل الزائر الحقيقية دون أن يغادر أي منها جهازك. هذا النموذج من جانب العميل متعمد وهو نفس النموذج الموجود خلف كل أداة على الموقع، كما هو موضح في أدوات خصوصية البيانات عبر الإنترنت مرشد. للحصول على بيانات الاعتماد، تقوم بتصحيح الأخطاء بجانب الطلب، مولد المصادقة الأساسية و ال فك JWT اتبع نفس أسلوب عدم التحميل.
حيث يتناسب المحلل اللغوي مع أدوات الويب الأخرى
يوجد محلل وكيل المستخدم في مجموعة صغيرة من أدوات الطلب والاستجابة على الموقع. عندما تقوم بفحص حركة المرور إلى المجال، فإن بحث المجال تجيب الأداة على من يملكها ويديرها. عندما يحمل الطلب رمزًا لحامله، يتعين عليك فحصه فك JWT يقرأ المطالبات منه. عندما تقوم بإنشاء طلب مصادق عليه في المقام الأول، فإن مولد المصادقة الأساسية يبني Authorization رأس. وعندما تعمل على كيفية تقديم الصفحة نفسها إلى برامج الزحف، التي تقرأ صفحاتك ضمن وكلاء المستخدم الخاصين بها، فإن مولد العلامات الفوقية يشكل العلامات التي يستهلكونها.
لأي شخص يقوم بتجميع مجموعة شخصية من هذه، فإن أدوات إنتاجية المطور يغطي الدليل كيفية تناسب الأدوات المساعدة المستندة إلى المتصفح على الموقع مع يوم العمل. الهدف من إبقائها معًا هو أن تصحيح أخطاء تفاعل HTTP نادرًا ما يتضمن سؤالًا واحدًا فقط من هذه الأسئلة.
سير عمل عملي: قراءة سجل حركة المرور
اسمحوا لي أن أجعل هذا ملموسًا بالمهمة التي بدأتني في هذا الطريق. لقد قمت بتصدير شريحة من سجل الوصول الخاص بك وتريد أن تفهمها. النهج الساذج هو النظر إلى عمود وكيل المستخدم، وهو بالضبط المكان الذي تعض فيه الفخاخ. الزاحف الذي يعرّف نفسه بأدب على أنه Googlebot أمر سهل، لكن المكشطة مقطوعة الرأس التي تعلن عن نفسها على أنها بنية عادية من الكروم تبدو مطابقة للزائر الحقيقي حتى تتحقق من الإشارات الأخرى.
يساعد المحلل اللغوي بطريقتين. أولاً، تلتقط علامة الروبوت برامج الزحف الصادقة وعملاء الأتمتة المشتركين على الفور، حتى تتمكن من فصل حركة مرور الجهاز الواضحة عن حركة المرور البشرية في تمريرة واحدة. ثانيًا، يخبرك التوزيع الصحيح للمتصفح ونظام التشغيل لحركة المرور المتبقية بشيء حقيقي عن جمهورك: ما إذا كان يؤدي إلى انحراف الهاتف المحمول، وما هي أنظمة التشغيل المهيمنة، وما إذا كان المتصفح القديم لا يزال مهمًا بدرجة كافية للاختبار ضده. في عمل WP Adminify، غيّر هذا الانهيار المتصفحات التي أعطيناها الأولوية للاختبار وأكد أن جزءًا مما يبدو وكأنه حركة مرور عضوية كان عبارة عن روبوتات معاينة ومراقبة بدلاً من القراء. أدى تحليل السلاسل إلى تحويل جدار من الضوضاء إلى قرار.
النظام الوحيد الذي يجب الاحتفاظ به هو النظام الموجود في قسم الحدود: النتيجة التي تم تحليلها هي مطالبة وليست دليلاً. سيقوم المكشطة المحددة بتشكيل سلسلة مقنعة، ولا يمكن لأي محلل التقاط ذلك من وكيل المستخدم وحده. قم بدمج التحليل مع أنماط الطلب والمعدل والإشارات الأخرى عندما تكون المخاطر عالية. بالنسبة للإحصائيات اليومية وتصحيح الأخطاء، فإن التحليل الصحيح هو بالضبط ما تحتاجه، والقيام بذلك يدويًا هو الخطأ.
ماذا يخبرني محرك العرض وحقول وحدة المعالجة المركزية؟
يحظى اثنان من الحقول التي تم تحليلها باهتمام أقل من المتصفح ونظام التشغيل، ولكن كلاهما مفيد. محرك العرض هو المكون الذي يحول HTML وCSS إلى وحدات بكسل، وهو مؤشر أفضل لكيفية تصرف الصفحة من اسم المتصفح. يشترك كل من Chrome وEdge وOpera وBrave وSamsung Internet ومعظم الآخرين في محرك Blink، لذلك يظهر خطأ العرض في واحد عادةً في كل منهم؛ يستخدم Firefox Gecko؛ ويستخدم Safari، جنبًا إلى جنب مع كل متصفح على نظام التشغيل iOS، WebKit. عندما تقوم بفرز خطأ في التخطيط، فإن تجميع حركة المرور الخاصة بك حسب المحرك بدلاً من اسم المتصفح يخبرك بعدد مسارات العرض المميزة التي يتعين عليك اختبارها، والتي غالبًا ما تكون ثلاثة فقط.
يستمد المحلل اللغوي المحرك من الرموز المميزة للنظام الأساسي بدلاً من تسمية المتصفح، ولهذا السبب يمكنه الإبلاغ عن Blink لمتصفح Chromium وWebKit لـ Safari على الرغم من أن كلاهما ينحدر من نفس رمز AppleWebKit. كما أنه يلتقط المحركات الأقدم، Trident لـ Internet Explorer وEdgeHTML لـ Legacy Edge، والتي لا تزال تظهر في سجلات المؤسسات.
يقرأ حقل بنية وحدة المعالجة المركزية الرموز المميزة للنظام الأساسي x86_64، Win64، arm64يقوم أقاربهم بالإبلاغ عما إذا كان العميل عبارة عن جهاز 64 بت أو 32 بت أو ARM. إنه المجال الذي يجب التحقق منه عند تقديم التنزيلات الخاصة بالنظام الأساسي وتحتاج إلى معرفة البناء الذي يمكن للزائر تشغيله، وهي إشارة هادئة إلى مدى حداثة جمهورك وأجهزة #39؛.
الأسئلة الشائعة
ما هي سلسلة وكيل المستخدم؟ سلسلة وكيل المستخدم هي قيمة رأس وكيل المستخدم HTTP الذي يرسله المتصفح أو العميل مع كل طلب. إنها قائمة برموز المنتج التي تسمي المتصفح ومحرك العرض الخاص به ونظام التشغيل وغالبًا الجهاز المحدد في RFC 9110. تقرأها الخوادم لتحديد البرنامج المتصل بها.
كيف يمكنني العثور على وكيل المستخدم الخاص بي؟ افتح وحدة تحكم المطور '؛s واكتب navigator.userAgent، ثم اضغط على Enter. السلسلة التي يطبعها هي بالضبط ما يرسله متصفحك إلى الخوادم. الصقه في محلل وكيل المستخدم لرؤية المتصفح ونظام التشغيل والجهاز الذي يقوم بفك تشفيره إليه.
لماذا يحتوي وكيل المستخدم Chrome'؛s على كلمة Safari؟ للتوافق مع الإصدارات السابقة. قام Chrome بتقسيم محركه من Apple'؛s WebKit، وقامت الخوادم المبكرة بالتحقق من رمز Safari المميز قبل تقديم الصفحات الحديثة، لذلك احتفظ به Chrome لتجنب تخفيض تصنيفه. نفس السجل هو السبب وراء استمرار كل متصفح تقريبًا في بدء سلسلته باستخدام Mozilla/5.0.
هل يمكن لوكيل المستخدم التمييز بين Windows 10 وWindows 11؟ رقم 10.0 أبلغ كلاهما عن نظام التشغيل Windows NT 10.0 لأن Microsoft لم تقم مطلقًا بزيادة رمز NT kernel لنظام التشغيل Windows 11، وبالتالي لا يمكن للسلسلة وحدها التمييز بين الاثنين. الطريقة الحديثة للتمييز بينهما هي تلميحات عميل وكيل المستخدم، وتحديدًا رأس Sec-CH-UA-Platform-Version.
هل يمكن الاعتماد على وكيل المستخدم لتحديد الجهاز؟ إنه تلميح مفيد، وليس دليلا. يمكن تغيير وكلاء المستخدم في سطر واحد من التعليمات البرمجية، التي تم تعيينها بواسطة أي عميل HTTP، أو انتحالها بواسطة الكاشطات، أو تجميدها بواسطة المتصفح من أجل الخصوصية. تعامل مع النتيجة التي تم تحليلها على أنها ما يدعي العميل، وقم بدمجها مع الإشارات الأخرى عندما تكون الدقة مهمة.
كيف يكتشف المحلل اللغوي الروبوتات وبرامج الزحف؟ فهو يطابق السلسلة مع قائمة واسعة من التوقيعات المعروفة، بما في ذلك برامج زحف البحث مثل Googlebot وBingbot، وجلب المعاينة الاجتماعية، وعملاء الأتمتة مثل curl وwget وChrome مقطوع الرأس. أي تطابق يضبط علامة الروبوت ويصنف الجهاز على أنه زاحف.
هل من الآمن لصق وكلاء المستخدم لسجل الإنتاج هنا؟ نعم. تتم جميع عمليات التحليل في متصفحك باستخدام JavaScript، ولا يتم إرسال السلسلة أبدًا إلى أي خادم. يمكنك لصق خطوط سجل الوصول الأولية أو وكلاء المستخدم الزائرين الحقيقيين دون مغادرة جهازك.
هل يتم إهمال سلاسل وكيل المستخدم؟ يتم تجميد الرأس وتقليله، وليس إزالته. تقوم متصفحات Chromium الآن بتغطية التفاصيل في السلسلة القديمة وتعرض بيانات أكثر ثراءً من خلال تلميحات عميل وكيل المستخدم بدلاً من ذلك. لا تزال السلسلة الكلاسيكية تأتي عند كل طلب، لذا يظل تحليلها هو الطريقة الأكثر قابلية للحمل لقراءة تفاصيل العميل.



