مولد وكيل المستخدم العشوائي - إنشاء سلاسل المتصفح
قم بإنشاء سلاسل وكيل مستخدم أصيلة لـ Chrome وFirefox وSafari وEdge. اختبر توافق المتصفح والتصاميم سريعة الاستجابة والواجهات البرمجية باستخدام معرفات المتصفح الواقعية.
مولد وكيل المستخدم العشوائي
توليد سلاسل وكيل المستخدم للمتصفح العشوائية والواقعية لاختبار تطوير الويب.
وكيل المستخدم الذي تم إنشاؤه
التوثيق
مولّد عشوائي لسلاسل وكيل المستخدم
ينشئ مولّد عشوائي لوكيل المستخدم عينات من سلاسل وكيل المستخدم، وهي أسطر نصية قصيرة يرسلها متصفح الويب إلى موقع إلكتروني لتعريف نفسه. تنشئ هذه الأداة سلاسل تتبع التنسيق الحقيقي الذي تستخدمه متصفحات Chrome وFirefox وSafari وEdge، على أجهزة سطح المكتب والأجهزة المحمولة، كي يتمكن المطورون من اختبار استجابة الموقع للمتصفحات المختلفة من دون تثبيت كل واحد منها.
ما هي سلسلة وكيل المستخدم؟
في كل مرة يطلب فيها المتصفح صفحة ويب، يرسل ترويسة HTTP باسم User-Agent. والترويسة سطر نصي واحد يصف اسم المتصفح وإصداره ونظام التشغيل ومحرك العرض، أي الجزء من المتصفح الذي يرسم الصفحة. ويمكن للموقع قراءة هذه الترويسة ليقرر تخطيط الصفحة أو الميزات التي يرسلها.
تبدو سلسلة وكيل المستخدم النموذجية على النحو التالي:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2تبدأ كل المتصفحات تقريبًا سلسلتها بـ "Mozilla/5.0". وهذا أثر متبقٍ من عقد 1990، حين كانت المواقع تبحث عن تلك الكلمة لتقرر ما إذا كان المتصفح قادرًا بما يكفي لعرض الصفحة. وأبقت المتصفحات الأحدث هذا الرمز كي لا تحجبها الفحوص القديمة.
كيف يعمل هذا المولّد
تحتوي الأداة على ثلاثة عناصر تحكم:
- نوع الجهاز – سطح المكتب أو محمول.
- عائلة المتصفح – Chrome أو Firefox أو Safari أو Edge.
- نظام التشغيل – Windows أو macOS أو Linux لأجهزة سطح المكتب؛ وiOS أو Android للأجهزة المحمولة.
لا يتوفر كل تركيب في العالم الحقيقي، لذلك تقيّد الأداة الاختيارات. ويظهر Safari على macOS وiOS فقط، لأن Apple لا توفر Safari لنظام Windows أو Linux أو Android. أما Chrome وFirefox وEdge فتتوفر على كل أنظمة التشغيل المدرجة، بما فيها iOS، حيث تعمل كواجهة فوق محرك WebKit الخاص بـApple بدلًا من محركاتها الخاصة.
يؤدي النقر على "إنشاء جديد" إلى بناء سلسلة من هذه الإعدادات الثلاثة ورقم إصدار يُختار عشوائيًا. وينسخ زر "نسخ" النتيجة إلى الحافظة.
تنسيق سلسلة وكيل المستخدم حسب المتصفح
يملأ كل متصفح قالبًا مشابهًا باستخدام رموزه الخاصة.
Chrome (سطح المكتب):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36
2Chrome (Android):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36
2Chrome (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/major.0.build.build Mobile/15E148 Safari/604.1
2Firefox (سطح المكتب):
1Mozilla/5.0 (platform; rv:major.0) Gecko/20100101 Firefox/major.0
2Firefox (Android):
1Mozilla/5.0 (Android version; Mobile; rv:major.0) Gecko/major.0 Firefox/major.0
2Firefox (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/major.0 Mobile/15E148 Safari/605.1.15
2Safari (macOS):
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Safari/605.1.15
2Safari (iOS):
1Mozilla/5.0 (iPhone; CPU iPhone OS major_minor like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Mobile/15E148 Safari/604.1
2Edge (سطح المكتب):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36 Edg/major.0.build.build
2Edge (Android):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36 EdgA/major.0.build.build
2Edge (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor EdgiOS/major.0.build.build Mobile/15E148 Safari/605.1.15
2تشترط Apple استخدام WebKit في كل متصفح على iOS، لذلك تشترك الصيغ السابقة لنظام iOS في رمز محرك Safari AppleWebKit/605.1.15 وتضيف علامة خاصة بالمتصفح: CriOS/ لـChrome، وFxiOS/ لـFirefox، وEdgiOS/ لـEdge. ولا يحمل أي منها رمز Chrome/ أو Gecko/. كما يرسل Safari وEdge على iOS رمز Version/، الذي يحدد إصدار Safari المشحون مع نظام التشغيل، ولذلك يطابق دائمًا إصدار iOS الموجود في السلسلة نفسها.
منذ 2021، جمّدت Chrome والمتصفحات المبنية على Chromium مثل Edge معظم رقم إصدارها على أجهزة سطح المكتب وAndroid لتقليل مقدار التفاصيل التي تكشف الهوية في الترويسة، وهو تغيير تسميه Google "تقليص وكيل المستخدم". وبدلًا من رقم بناء حقيقي، يقرأ رمز Chrome في هذه السلاسل دائمًا major.0.0.0، مثلًا 128.0.0.0، وتطابق أداة التوليد هذا السلوك. والاستثناء هو رمز Edge الخاص — Edg/ على سطح المكتب، وEdgA/ على Android، وEdgiOS/ على iOS — وChrome الذي يعمل على iOS (CriOS/)، إذ لا تزال هذه الرموز تحمل رقم بناء كاملًا من أربعة أجزاء لأن سياسة Google للتقليص لا تنطبق عليها.
لم يعتمد Firefox التجميد نفسه. فعادةً ما تتكون سلسلة إصداره الحقيقية من جزأين فقط، major.0، وهذا ما تنتجه الأداة. وقد يظهر إصدار Firefox من ثلاثة أجزاء مثل 95.0.2 بعد تصحيح أمني، لكن هذه الأداة لا تنشئ إلا الصيغة ذات الجزأين.
أمثلة على النتائج
Chrome لسطح المكتب على Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Firefox لسطح المكتب على macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0
2Safari لسطح المكتب على macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15
2Edge لسطح المكتب على Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.2903.86
2Chrome للأجهزة المحمولة على Android:
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36
2Edge للأجهزة المحمولة على Android:
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36 EdgA/128.0.2952.62
2Safari للأجهزة المحمولة على iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1
2Firefox للأجهزة المحمولة على Android:
1Mozilla/5.0 (Android 13; Mobile; rv:130.0) Gecko/130.0 Firefox/130.0
2Chrome للأجهزة المحمولة على iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/128.0.6613.98 Mobile/15E148 Safari/604.1
2Firefox للأجهزة المحمولة على iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/130.0 Mobile/15E148 Safari/605.1.15
2Edge للأجهزة المحمولة على iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 EdgiOS/128.0.2952.62 Mobile/15E148 Safari/605.1.15
2الفروق بين سطح المكتب والأجهزة المحمولة
تذكر سلاسل سطح المكتب نظام التشغيل، وغالبًا بنية المعالج أيضًا: Win64; x64 لنظام Windows ذي 64 بت، أو Intel Mac OS X لأجهزة Mac. وتبقى متقاربة إلى حد كبير، إذ لا يوجد سوى عدد قليل من منصات سطح المكتب لتمثيلها.
تضيف سلاسل الأجهزة المحمولة عادةً كلمة "Mobile" كي يعرف الموقع أنه ينبغي تقديم تخطيط ملائم للمس. وتعرّف أجهزة iOS نفسها باسم "iPhone" إلى جانب إصدار iOS، ويُكتب الإصدار باستخدام شرطات سفلية (17_4) مع حذف الصفر اللاحق الخاص بالتصحيح، أي 17_4 بدلًا من 17_4_0. ويختلف Android؛ فبسبب سياسة تقليص الإصدارات نفسها التي تؤثر في رقم بناء Chrome، يبلّغ Chrome وEdge على Android دائمًا عن المنصة بصيغة Linux; Android 10; K، بغض النظر عن إصدار Android أو طراز الهاتف المستخدم فعليًا. وحرف "K" عنصر نائب وليس رمز جهاز حقيقي، كما يُخفى إصدار Android الحقيقي. أما Firefox على Android فلا يجمّد الإصدار بالطريقة نفسها، بل يبلّغ عن الإصدار الرئيسي الحقيقي لنظام Android، لكنه لا يضمّن طراز الجهاز إطلاقًا. ولن تتطابق أداة توليد تعرض طراز هاتف محددًا، مثل رقم طراز من Galaxy، داخل سلسلة Chrome على Android مع سلوك Chrome الحقيقي الحالي.
لماذا تبدو سلاسل وكيل المستخدم مربكة؟
تبدو السلسلة مزدحمة بسبب عقود من ترقيعات التوافق. ففي "حروب المتصفحات" في أواخر عقد 1990، كانت بعض المواقع ترسل صفحات أفضل إلى متصفح Netscape وحده أو إلى متصفح Internet Explorer وحده، وتتحقق من كلمات مفتاحية في الترويسة. وردّت المتصفحات المنافسة بإضافة الكلمات المفتاحية نفسها إلى سلاسلها حتى لا تُرفض. ولهذا لا تزال سلسلة Chrome تذكر "Safari" و"like Gecko" رغم أنها لا تستخدم أيًا من المحركين بهذا الاسم. وكل رمز منها أثر متبقٍ من مصافحة كان الغرض منها تلبية فحص توافق قديم، لا تقديم وصف صادق للبرنامج.
ولأن عددًا كبيرًا من المواقع لا يزال يحلل هذه السلاسل، لا يستطيع صانعو المتصفحات إزالة هذا الازدحام ببساطة من دون تعطيل الصفحات. والبديل طويل الأمد، المسمى تلميحات عميل وكيل المستخدم، يرسل تفاصيل المتصفح في ترويسات منفصلة ومنظمة بدلًا من سلسلة طويلة واحدة، لكن ترويسة User-Agent التقليدية لا تزال تُرسل في كل مكان لضمان التوافق مع الإصدارات السابقة.
الاستخدامات الشائعة
- اختبار التوافق. تحقق من كيفية عرض الصفحة عندما تكتشف متصفحًا محددًا، من دون تثبيت ذلك المتصفح.
- فحوص التصميم المتجاوب. تأكد من أن الموقع يقدم تخطيطًا للأجهزة المحمولة عندما يتلقى وكيل مستخدم محمولًا، وتخطيطًا لسطح المكتب في غير ذلك.
- مجموعات الاختبارات الآلية. مرّر نطاقًا من سلاسل وكلاء المستخدم إلى برامج الاختبار النصية للتحقق من أن شفرة اكتشاف المتصفح تتعامل مع كل منها على نحو صحيح.
- اختبار واجهات برمجة التطبيقات والترويسات. تحقق من أن الخادم يعمل بصورة صحيحة عندما ترسل أنواع مختلفة من العملاء طلبات.
القيود
لا تمثل ترويسة وكيل المستخدم سوى إشارة واحدة من إشارات كثيرة يمكن للموقع قراءتها. إذ تستطيع النصوص البرمجية التي تعمل في الصفحة فحص عشرات التفاصيل الأخرى، مثل الخطوط المثبتة وحجم الشاشة وكيفية رسم بطاقة الرسومات لصورة اختبار، وهي تقنية تسمى البصمة الرقمية. ولن يخدع ضبط وكيل مستخدم Chrome أثناء التصفح الفعلي باستخدام Firefox موقعًا يفحص هذه الإشارات الأخرى؛ إذ يسهل اكتشاف عدم التطابق. أما في أعمال التطوير وضمان الجودة اليومية، فتكفي سلسلة مولّدة ومنسقة على نحو صحيح لاختبار استجابة شفرة الخادم والعميل في الموقع للمتصفحات والأجهزة المختلفة.
الأسئلة الشائعة
ما هي سلسلة وكيل المستخدم؟ هي سطر نصي يرسله المتصفح مع كل طلب ويب، ويذكر المتصفح وإصداره ونظام التشغيل ومحرك العرض. وتستخدمه الخوادم لتقرر المحتوى أو التخطيط الذي ينبغي إرجاعه.
لماذا ينتهي إصدار Chrome دائمًا بـ.0.0.0؟
منذ 2021، جمّد Chrome معظم رقم الإصدار الذي يبلّغ عنه في ترويسة User-Agent لتقليل البصمة الرقمية. ولا يتغير سوى رقم الإصدار الرئيسي؛ أما الباقي فثابت عند .0.0.0. ويُستثنى من ذلك رمز Edge الخاص وكل متصفح على iOS، إذ لا تزال تعرض رقم بناء كاملًا.
لماذا تقول سلسلة iPhone "Safari" حتى عند اختيار متصفح آخر؟
تشترط Apple استخدام محرك WebKit الخاص بها في جميع متصفحات iOS، لذلك يبلّغ Chrome وFirefox وEdge على iOS جميعًا عن WebKit وينتهون برمز Safari/. ويُحدد المتصفح بعلامة منفصلة: CriOS/ لـChrome، وFxiOS/ لـFirefox، وEdgiOS/ لـEdge.
لماذا لا تعرض سلسلة Android طراز هاتفي؟
يبلّغ Chrome وEdge الحديثان على Android عن سلسلة منصة ثابتة، Linux; Android 10; K، لكل جهاز ولكل إصدار Android حقيقي، كجزء من سياسة تقليص الإصدارات نفسها التي تؤثر في رقم بناء Chrome. ولا يُكشف الطراز الحقيقي ولا إصدار Android.
هل يمكنني استخدام وكيل مستخدم مُولَّد لكشط الويب؟
يمكن تغيير الترويسة، لكن المواقع قد تكتشف عدم التطابق من خلال إشارات أخرى، وقد ينتهك الكشط شروط خدمة الموقع أو قواعد robots.txt. تحقّق من سياسات الموقع قبل كشطه.
هل السلسلة المولّدة مطابقة لسلسلة من جهاز حقيقي؟ تتبع التنسيق نفسه وترتيب الرموز نفسه اللذين يتبعهما متصفح حقيقي من النوع ذاته. وبسبب تجميد إصدار Chrome وEdge على Android، يمكن أن تتطابق سلسلة Chrome المولّدة لنظام Android مع السلسلة الحقيقية في جزء المنصة، لأن الأجهزة الحقيقية تبلّغ عن القيمة الثابتة نفسها.
ما هي تلميحات العميل، وهل تحل محل سلسلة وكيل المستخدم؟
تلميحات العميل نظام أحدث يرسل تفاصيل المتصفح والجهاز في ترويسات HTTP منفصلة بدلًا من سلسلة مدمجة واحدة. وتضيف المتصفحات دعمًا لهذا النظام، لكن ترويسة User-Agent التقليدية لا تزال واسعة الاستخدام لأن كثيرًا من المواقع القائمة لا تزال تعتمد عليها.