تولیدکننده تصادفی کاربر عامل برای آزمایش توسعه وب

رشته‌های واقعی کاربر عامل مرورگر را با گزینه‌هایی برای فیلتر کردن بر اساس نوع دستگاه، خانواده مرورگر و سیستم عامل تولید کنید. ایده‌آل برای آزمایش توسعه وب و بررسی‌های سازگاری.

تولید کننده تصادفی عامل کاربری

رشته‌های عامل کاربری مرورگر واقعی و تصادفی را برای تست توسعه وب تولید کنید.

عامل کاربری تولید شده

کپی
📚

مستندات

تولید کننده تصادفی User Agent

مقدمه

رشته User Agent یک شناسه متنی خاص است که مرورگرهای وب و سایر برنامه‌ها به وب‌سایت‌ها ارسال می‌کنند تا خود را شناسایی کنند. این رشته معمولاً شامل اطلاعاتی درباره مرورگر، سیستم‌عامل، نوع دستگاه و موتور رندرینگ مورد استفاده است. برای توسعه‌دهندگان وب و آزمایش‌کنندگان، دسترسی به مجموعه‌ای از رشته‌های User Agent واقعی برای تست سازگاری، پاسخگویی و عملکرد وب‌سایت در پلتفرم‌های مختلف ضروری است.

این ابزار تولید کننده تصادفی User Agent رشته‌های User Agent با ظاهری واقعی را بر اساس پارامترهای انتخابی شما ایجاد می‌کند. شما می‌توانید بر اساس نوع دستگاه (رایانه یا موبایل)، خانواده مرورگر (Chrome، Firefox، Safari یا Edge) و سیستم‌عامل فیلتر کنید تا User Agentهایی تولید کنید که با نیازهای تست شما مطابقت داشته باشند. این ابزار یک رابط ساده با گزینه‌هایی برای کپی کردن رشته تولید شده با یک کلیک و تولید رشته‌های تصادفی جدید به‌صورت آنی ارائه می‌دهد.

ساختار User Agent

رشته‌های User Agent الگوهای خاصی را بسته به مرورگر و پلتفرم دنبال می‌کنند، اما به‌طور کلی شامل چندین جزء مشترک هستند:

  1. شناسای مرورگر: معمولاً با "Mozilla/5.0" برای دلایل سازگاری تاریخی شروع می‌شود
  2. اطلاعات پلتفرم/سیستم‌عامل: جزئیات مربوط به سیستم‌عامل (Windows، macOS، Android، iOS)
  3. موتور مرورگر: موتور رندرینگ (مانند Gecko، WebKit یا Blink)
  4. جزئیات مرورگر: نام و نسخه خاص مرورگر

در اینجا یک تجزیه و تحلیل از ساختارهای معمول User Agent برای مرورگرهای اصلی آورده شده است:

Chrome

1Mozilla/5.0 (پلتفرم; جزئیات) AppleWebKit/537.36 (KHTML، مانند Gecko) Chrome/version Safari/537.36
2

Firefox

1Mozilla/5.0 (پلتفرم; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2

Safari

1Mozilla/5.0 (پلتفرم) AppleWebKit/webkitversion (KHTML، مانند Gecko) Version/safariversion Safari/safariversion
2

Edge

1Mozilla/5.0 (پلتفرم) AppleWebKit/537.36 (KHTML، مانند Gecko) Chrome/chromiumversion Safari/537.36 Edg/edgeversion
2

بخش پلتفرم بین دستگاه‌های دسکتاپ و موبایل به‌طور قابل توجهی متفاوت است:

نمونه‌های دسکتاپ:

  • Windows: Windows NT 10.0; Win64; x64
  • macOS: Macintosh; Intel Mac OS X 10_15_7
  • Linux: X11; Linux x86_64

نمونه‌های موبایل:

  • Android: Linux; Android 12; SM-G998B
  • iOS: iPhone; CPU iPhone OS 15_4 like Mac OS X

تفاوت‌های نوع دستگاه

User Agents دسکتاپ

User Agentهای دسکتاپ معمولاً شامل اطلاعات خاص سیستم‌عامل، جزئیات معماری (مانند x86_64 یا Win64) و گاهی اوقات ترجیحات زبانی هستند. آن‌ها تمایل دارند که در مقایسه با User Agentهای موبایل، بیشتر سازگار باشند.

User Agents موبایل

User Agentهای موبایل شامل اطلاعات مدل دستگاه، نسخه‌های سیستم‌عامل موبایل و اغلب شامل کلمه "Mobile" در انتها هستند. Safari موبایل در دستگاه‌های iOS شامل شناسه‌های "iPhone" یا "iPad" است، در حالی که دستگاه‌های Android شامل سازنده و شماره مدل هستند.

الگوهای نسخه مرورگر

هر مرورگر الگوهای نسخه‌بندی متفاوتی را دنبال می‌کند:

  • Chrome: از شماره نسخه‌های چهار قسمتی استفاده می‌کند (به‌عنوان مثال، 96.0.4664.110)
  • Firefox: معمولاً از شماره نسخه‌های دو یا سه قسمتی استفاده می‌کند (به‌عنوان مثال، 95.0 یا 95.0.2)
  • Safari: از شماره نسخه‌های ساده‌ای مانند 15.2 استفاده می‌کند
  • Edge: از شماره نسخه‌هایی مشابه Chrome اما با نسخه خاص Edge خود استفاده می‌کند (به‌عنوان مثال، 96.0.1054.62)

موارد استفاده

تولید تصادفی User Agent کاربردهای مهمی در توسعه و تست وب دارد:

  1. تست سازگاری بین مرورگرها: تست اینکه چگونه وب‌سایت شما در مرورگرهای مختلف نمایش داده و عمل می‌کند بدون نیاز به نصب چندین مرورگر یا استفاده از چندین دستگاه.

  2. تست طراحی پاسخگو: تأیید اینکه وب‌سایت شما به درستی دستگاه‌های موبایل و دسکتاپ را شناسایی کرده و طرح مناسب را ارائه می‌دهد.

  3. اعتبارسنجی تشخیص ویژگی: اطمینان از اینکه مکانیزم‌های تشخیص ویژگی وب‌سایت شما به درستی برای قابلیت‌های مختلف مرورگر کار می‌کنند.

  4. تست QA و خودکار: گنجاندن User Agentهای مختلف در اسکریپت‌های تست خودکار شما برای شبیه‌سازی محیط‌های مختلف کاربری.

  5. تست عملکرد: تجزیه و تحلیل اینکه چگونه وب‌سایت شما هنگام دسترسی از محیط‌های مرورگر مختلف عمل می‌کند.

  6. اشکال‌زدایی مشکلات خاص مرورگر: بازتولید و رفع اشکالاتی که فقط در مرورگرها یا نسخه‌های خاص رخ می‌دهند.

  7. تست API: تست اینکه چگونه API شما درخواست‌ها را از برنامه‌های کلاینت مختلف مدیریت می‌کند.

جایگزین‌ها

در حالی که تولید کننده تصادفی User Agent ما برای بسیاری از سناریوهای تست مفید است، روش‌های جایگزین دیگری نیز وجود دارد:

  1. خدمات تست مرورگر: پلتفرم‌هایی مانند BrowserStack، Sauce Labs یا LambdaTest نمونه‌های واقعی مرورگر برای تست ارائه می‌دهند و نه فقط شبیه‌سازی User Agent.

  2. ابزارهای توسعه‌دهنده مرورگر: اکثر مرورگرهای مدرن به شما اجازه می‌دهند User Agent را از طریق ابزارهای توسعه‌دهنده خود تغییر دهید که می‌تواند برای تست‌های سریع مفید باشد.

  3. افزونه‌های تغییر User Agent: افزونه‌های مرورگری که به شما اجازه می‌دهند در حین مرور بین User Agentهای از پیش تعریف شده جابجا شوید.

  4. ماشین‌های مجازی یا کانتینرها: اجرای نمونه‌های واقعی از سیستم‌عامل‌ها و مرورگرهای مختلف برای دقیق‌ترین تست.

  5. تست مرورگر بدون سر: استفاده از ابزارهایی مانند Puppeteer یا Selenium برای کنترل برنامه‌نویسی مرورگرها با تنظیمات User Agent مختلف.

هر جایگزین مزایای خاص خود را دارد و ممکن است بسته به نیازها و منابع خاص تست شما مناسب‌تر باشد.

تاریخچه

مفهوم رشته User Agent به روزهای اولیه وب جهانی برمی‌گردد. اصطلاح "User Agent" از مشخصات HTTP نشأت می‌گیرد، جایی که به برنامه کلاینتی اشاره دارد که درخواستی به یک سرور وب ارسال می‌کند.

روزهای اولیه (دهه 1990)

اولین مرورگر مورد استفاده، NCSA Mosaic، شامل یک رشته User Agent ساده بود که نام و نسخه مرورگر را شناسایی می‌کرد. با انتشار Netscape Navigator، از فرمت مشابهی استفاده شد. با این حال، با شروع ارائه محتوای مختلف توسط سرورهای وب بر اساس مرورگر، عملی به نام "تشخیص مرورگر" به وجود آمد.

جنگ مرورگرها و جعل User Agent (اواخر دهه 1990)

در طول جنگ مرورگرها بین Netscape و Internet Explorer، وب‌سایت‌ها اغلب محتوای بهینه‌سازی شده را به‌طور انحصاری به مرورگرهای خاص ارائه می‌دادند. برای اطمینان از سازگاری، مرورگرها شروع به گنجاندن رشته‌هایی کردند که خود را به عنوان سایر مرورگرها شناسایی می‌کردند. به همین دلیل است که اکثر مرورگرهای مدرن هنوز "Mozilla" را در رشته‌های User Agent خود شامل می‌شوند، ارجاعی به نام کد Netscape Navigator.

انقلاب موبایل (دهه 2000-2010)

ظهور دستگاه‌های موبایل پیچیدگی جدیدی به رشته‌های User Agent اضافه کرد. مرورگرهای موبایل باید خود را به عنوان موبایل شناسایی می‌کردند تا محتوای مناسب را دریافت کنند که منجر به اضافه شدن شناسایی‌های دستگاه و توکن‌های خاص موبایل شد.

چالش‌های مدرن (دهه 2010-حال)

با رشد پیچیدگی اکوسیستم وب، رشته‌های User Agent به‌طور فزاینده‌ای پیچیده شده‌اند. آن‌ها اکنون شامل ارجاعاتی به چندین موتور مرورگر (مانند "AppleWebKit" و "Gecko") برای دلایل سازگاری هستند، حتی زمانی که آن موتورها واقعاً مورد استفاده قرار نمی‌گیرند.

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

مثال‌های کد

در اینجا مثال‌هایی از نحوه کار با رشته‌های User Agent در زبان‌های برنامه‌نویسی مختلف آورده شده است:

1// جاوا اسکریپت: شناسایی نوع مرورگر از رشته User Agent
2function detectBrowser() {
3  const userAgent = navigator.userAgent;
4  
5  if (userAgent.indexOf("Firefox") > -1) {
6    return "Firefox";
7  } else if (userAgent.indexOf("SamsungBrowser") > -1) {
8    return "Samsung Browser";
9  } else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {
10    return "Opera";
11  } else if (userAgent.indexOf("Trident") > -1) {
12    return "Internet Explorer";
13  } else if (userAgent.indexOf("Edge") > -1) {
14    return "Edge";
15  } else if (userAgent.indexOf("Chrome") > -1) {
16    return "Chrome";
17  } else if (userAgent.indexOf("Safari") > -1) {
18    return "Safari";
19  } else {
20    return "Unknown";
21  }
22}
23
24// استفاده
25console.log("شما در حال استفاده از: " + detectBrowser());
26

الگوهای معمول User Agent

در اینجا چند نمونه از رشته‌های User Agent واقعی برای مرورگرها و پلتفرم‌های مختلف آورده شده است:

مرورگرهای دسکتاپ

Chrome در ویندوز:

1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
2

Firefox در macOS:

1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2

Safari در macOS:

1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15
2

Edge در ویندوز:

1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
2

مرورگرهای موبایل

Chrome در Android:

1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36
2

Safari در iPhone:

1Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Mobile/15E148 Safari/604.1
2

Firefox در Android:

1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2

اینترنت سامسونگ در Galaxy:

1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36
2

منابع

  1. "User Agent." MDN Web Docs، Mozilla، https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent

  2. "رشته‌های User Agent مرورگر." WhatIsMyBrowser.com، https://www.whatismybrowser.com/guides/the-latest-user-agent/

  3. "هدر User-Agent HTTP توضیح داده شده است." KeyCDN، https://www.keycdn.com/support/user-agent

  4. "هینت‌های مشتری." MDN Web Docs، Mozilla، https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints

  5. "تاریخچه رشته User Agent مرورگر." WebAIM، https://webaim.org/blog/user-agent-string-history/

  6. "تشخیص مرورگر با استفاده از User Agent." Google Developers، https://developer.chrome.com/docs/multidevice/user-agent/