Γεννήτρια Τυχαίων User Agent για Δοκιμές Ανάπτυξης Ιστοσελίδων
Δημιουργήστε ρεαλιστικές συμβολοσειρές user agent προγράμματος περιήγησης με επιλογές φιλτραρίσματος κατά τύπο συσκευής, οικογένεια προγράμματος περιήγησης και λειτουργικό σύστημα. Ιδανικό για δοκιμές ανάπτυξης ιστοσελίδων και ελέγχους συμβατότητας.
Γεννήτρια Τυχαίων Χρηστών Πράκτορας
Δημιουργήστε τυχαίες, ρεαλιστικές συμβολοσειρές χρήστη για δοκιμές ανάπτυξης ιστού.
Δημιουργημένος Χρήστης Πράκτορας
Τεκμηρίωση
Τυχαία Γεννήτρια User Agent
Εισαγωγή
Μια συμβολοσειρά User Agent είναι μια συγκεκριμένη αναγνωριστική κείμενο που στέλνουν οι διαδικτυακοί περιηγητές και άλλες εφαρμογές σε ιστότοπους για να αυτοπροσωπούνται. Αυτή η συμβολοσειρά περιέχει συνήθως πληροφορίες σχετικά με τον περιηγητή, το λειτουργικό σύστημα, τον τύπο της συσκευής και την μηχανή απόδοσης που χρησιμοποιείται. Για τους προγραμματιστές ιστού και τους δοκιμαστές, η πρόσβαση σε μια ποικιλία ρεαλιστικών συμβολοσειρών user agent είναι απαραίτητη για τη δοκιμή της συμβατότητας, της απόκρισης και της λειτουργικότητας των ιστότοπων σε διαφορετικές πλατφόρμες.
Αυτό το εργαλείο Γεννήτριας Τυχαίων User Agent δημιουργεί αυθεντικές συμβολοσειρές user agent με βάση τις επιλεγμένες παραμέτρους σας. Μπορείτε να φιλτράρετε κατά τύπο συσκευής (επιτραπέζιο ή κινητό), οικογένεια περιηγητή (Chrome, Firefox, Safari ή Edge) και λειτουργικό σύστημα για να δημιουργήσετε user agents που ταιριάζουν με τις απαιτήσεις δοκιμής σας. Το εργαλείο παρέχει μια απλή διεπαφή με επιλογές για να αντιγράψετε τη δημιουργημένη συμβολοσειρά με ένα μόνο κλικ και να δημιουργήσετε νέες τυχαίες συμβολοσειρές άμεσα.
Δομή User Agent
Οι συμβολοσειρές user agent ακολουθούν συγκεκριμένα πρότυπα ανάλογα με τον περιηγητή και την πλατφόρμα, αλλά γενικά περιέχουν αρκετά κοινά στοιχεία:
- Αναγνωριστής Περιηγητή: Συνήθως ξεκινά με "Mozilla/5.0" για λόγους ιστορικής συμβατότητας
- Πληροφορίες Πλατφόρμας/Λειτουργικού Συστήματος: Λεπτομέρειες σχετικά με το λειτουργικό σύστημα (Windows, macOS, Android, iOS)
- Μηχανή Περιήγησης: Η μηχανή απόδοσης (όπως Gecko, WebKit ή Blink)
- Λεπτομέρειες Περιηγητή: Το συγκεκριμένο όνομα και η έκδοση του περιηγητή
Ακολουθεί μια ανάλυση των τυπικών δομών user agent για κύριους περιηγητές:
Chrome
1Mozilla/5.0 (platform; details) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/version Safari/537.36
2
Firefox
1Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
Safari
1Mozilla/5.0 (platform) AppleWebKit/webkitversion (KHTML, like Gecko) Version/safariversion Safari/safariversion
2
Edge
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like 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 agents επιτραπέζιων περιλαμβάνουν συνήθως συγκεκριμένες πληροφορίες σχετικά με το λειτουργικό σύστημα, λεπτομέρειες αρχιτεκτονικής (όπως x86_64 ή Win64) και μερικές φορές προτιμήσεις γλώσσας. Τείνουν να είναι πιο συνεπείς μεταξύ των περιηγητών σε σύγκριση με τους κινητούς user agents.
User Agents Κινητών
Οι κινητοί user agents περιέχουν πληροφορίες μοντέλου συσκευής, εκδόσεις κινητού λειτουργικού συστήματος και συχνά περιλαμβάνουν τη λέξη "Mobile" στο τέλος. Ο 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 έχει πολλές σημαντικές εφαρμογές στην ανάπτυξη και δοκιμή ιστού:
-
Δοκιμή Συμβατότητας Διαφορετικών Περιηγητών: Δοκιμάστε πώς αποδίδει και λειτουργεί ο ιστότοπός σας σε διαφορετικούς περιηγητές χωρίς να χρειάζεται να εγκαταστήσετε πολλούς περιηγητές ή να χρησιμοποιήσετε πολλές συσκευές.
-
Δοκιμή Αντίκτυπου Σχεδίασης: Επαληθεύστε ότι ο ιστότοπός σας ανιχνεύει σωστά κινητές και επιτραπέζιες συσκευές και προσφέρει την κατάλληλη διάταξη.
-
Επικύρωση Ανίχνευσης Χαρακτηριστικών: Διασφαλίστε ότι οι μηχανισμοί ανίχνευσης χαρακτηριστικών του ιστότοπού σας λειτουργούν σωστά για διαφορετικές δυνατότητες περιηγητών.
-
Δοκιμές QA και Αυτοματοποιημένες Δοκιμές: Ενσωματώστε διαφορετικούς user agents στα αυτοματοποιημένα σενάρια δοκιμών σας για να προσομοιώσετε διάφορα περιβάλλοντα χρηστών.
-
Δοκιμές Απόδοσης: Αναλύστε πώς αποδίδει ο ιστότοπός σας όταν προσπελαύνεται από διάφορα περιβάλλοντα περιηγητών.
-
Εντοπισμός Σφαλμάτων Συγκεκριμένων Περιηγητών: Αναπαραγάγετε και διορθώστε σφάλματα που εμφανίζονται μόνο σε συγκεκριμένους περιηγητές ή εκδόσεις.
-
Δοκιμές API: Δοκιμάστε πώς το API σας χειρίζεται αιτήματα από διαφορετικές εφαρμογές πελάτη.
Εναλλακτικές
Ενώ η τυχαία γεννήτρια user agent είναι χρήσιμη για πολλές σενάρια δοκιμών, υπάρχουν εναλλακτικές προσεγγίσεις:
-
Υπηρεσίες Δοκιμών Περιηγητών: Πλατφόρμες όπως το BrowserStack, το Sauce Labs ή το LambdaTest παρέχουν πραγματικές περιηγητικές περιβάλλουσες για δοκιμές αντί να προσομοιώνουν μόνο τον user agent.
-
Εργαλεία Ανάπτυξης Περιηγητών: Οι περισσότερες σύγχρονες περιηγητές επιτρέπουν την αντικατάσταση του user agent μέσω των εργαλείων ανάπτυξης τους, που μπορεί να είναι χρήσιμα για γρήγορες δοκιμές.
-
Επεκτάσεις Αντιστροφής User Agent: Επεκτάσεις περιηγητών που σας επιτρέπουν να αλλάξετε μεταξύ προκαθορισμένων user agents κατά την περιήγηση.
-
Εικονικές Μηχανές ή Κοντέινερ: Εκτέλεση πραγματικών περιπτώσεων διαφορετικών λειτουργικών συστημάτων και περιηγητών για τις πιο ακριβείς δοκιμές.
-
Δοκιμές Χωρίς Κεφαλή: Χρησιμοποιώντας εργαλεία όπως το Puppeteer ή το Selenium για να ελέγξετε προγραμματιστικά τους περιηγητές με διαφορετικές ρυθμίσεις user agent.
Κάθε εναλλακτική έχει τα δικά της πλεονεκτήματα και μπορεί να είναι πιο κατάλληλη ανάλογα με τις συγκεκριμένες ανάγκες και πόρους δοκιμών σας.
Ιστορία
Η έννοια της συμβολοσειράς user agent χρονολογείται από τις πρώτες ημέρες του Παγκόσμιου Ιστού. Ο όρος "user agent" προέρχεται από την προδιαγραφή HTTP, όπου αναφέρεται στην εφαρμογή πελάτη που κάνει ένα αίτημα σε έναν διακομιστή ιστού.
Πρώτες Ημέρες (1990s)
Ο πρώτος ευρέως χρησιμοποιούμενος περιηγητής, το NCSA Mosaic, περιλάμβανε μια απλή συμβολοσειρά user agent που αναγνώριζε το όνομα και την έκδοση του περιηγητή. Όταν κυκλοφόρησε το Netscape Navigator, χρησιμοποίησε μια παρόμοια μορφή. Ωστόσο, καθώς οι διακομιστές ιστού άρχισαν να παραδίδουν διαφορετικό περιεχόμενο με βάση τον περιηγητή, αναδύθηκε μια πρακτική γνωστή ως "ανίχνευση περιηγητών".
Οι Πόλεμοι των Περιηγητών και η Μηχανική Αντιστροφή User Agent (Τέλη 1990s)
Κατά τη διάρκεια των πολέμων περιηγητών μεταξύ του Netscape και του Internet Explorer, οι ιστότοποι συχνά παρείχαν βελτιστοποιημένο περιεχόμενο αποκλειστικά σε συγκεκριμένους περιηγητές. Για να διασφαλίσουν τη συμβατότητα, οι περιηγητές άρχισαν να περιλαμβάνουν συμβολοσειρές που τους αναγνώριζαν ως άλλους περιηγητές. Γι' αυτό οι περισσότεροι σύγχρονοι περιηγητές εξακολουθούν να περιλαμβάνουν "Mozilla" στις συμβολοσειρές user agent τους, αναφορά στον κωδικό όνομα του Netscape Navigator.
Επανάσταση Κινητών (2000s-2010s)
Η άνοδος των κινητών συσκευών εισήγαγε νέα πολυπλοκότητα στις συμβολοσειρές user agent. Οι κινητοί περιηγητές έπρεπε να αυτοπροσωπούνται ως κινητοί για να λάβουν το κατάλληλο περιεχόμενο, οδηγώντας στην προσθήκη αναγνωριστικών συσκευής και κινητών συγκεκριμένων tokens.
Σύγχρονες Προκλήσεις (2010s-Σήμερα)
Καθώς το οικοσύστημα του ιστού έχει γίνει πιο περίπλοκο, οι συμβολοσειρές user agent έχουν γίνει ολοένα και πιο πολύπλοκες. Τώρα περιέχουν αναφορές σε πολλές μηχανές περιήγησης (όπως "AppleWebKit" και "Gecko") για λόγους συμβατότητας, ακόμη και όταν αυτές οι μηχανές δεν χρησιμοποιούνται πραγματικά.
Αυτή η πολυπλοκότητα έχει οδηγήσει σε προκλήσεις στην ακριβή ανάλυση των συμβολοσειρών user agent, και ορισμένες ομάδες προτύπων ιστού έχουν προτείνει την απόσυρση ή την απλοποίηση των συμβολοσειρών user agent υπέρ πιο δομημένων υποδείξεων πελατών. Ωστόσο, για λόγους συμβατότητας, η παραδοσιακή συμβολοσειρά user agent παραμένει ένα ουσιώδες μέρος της περιήγησης στο διαδίκτυο.
Παραδείγματα Κώδικα
Ακολουθούν παραδείγματα για το πώς να εργαστείτε με συμβολοσειρές user agent σε διάφορες γλώσσες προγραμματισμού:
1// JavaScript: Ανίχνευση τύπου περιηγητή από τη συμβολοσειρά 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
1# Python: Ρύθμιση προσαρμοσμένου user agent σε αιτήσεις
2import requests
3
4def fetch_with_user_agent(url, user_agent):
5 headers = {
6 'User-Agent': user_agent
7 }
8 response = requests.get(url, headers=headers)
9 return response.text
10
11# Παράδειγμα χρήσης
12chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
13content = fetch_with_user_agent('https://example.com', chrome_ua)
14print(content[:100]) # Εκτύπωση πρώτων 100 χαρακτήρων της απάντησης
15
1<?php
2// PHP: Ανίχνευση κινητών συσκευών χρησιμοποιώντας τη συμβολοσειρά user agent
3function isMobileDevice() {
4 $userAgent = $_SERVER['HTTP_USER_AGENT'];
5 $mobileKeywords = array('Mobile', 'Android', 'iPhone', 'iPad', 'Windows Phone');
6
7 foreach ($mobileKeywords as $keyword) {
8 if (stripos($userAgent, $keyword) !== false) {
9 return true;
10 }
11 }
12 return false;
13}
14
15// Χρήση
16if (isMobileDevice()) {
17 echo "Χρησιμοποιείτε κινητή συσκευή.";
18} else {
19 echo "Χρησιμοποιείτε επιτραπέζια συσκευή.";
20}
21?>
22
1// Java: Δημιουργία τυχαίου user agent
2import java.util.Random;
3
4public class UserAgentGenerator {
5 private static final String[] CHROME_VERSIONS = {"96.0.4664.110", "95.0.4638.69", "94.0.4606.81"};
6 private static final String[] OS_VERSIONS = {"Windows NT 10.0; Win64; x64",
7 "Macintosh; Intel Mac OS X 10_15_7",
8 "X11; Linux x86_64"};
9
10 public static String generateRandomChromeUserAgent() {
11 Random random = new Random();
12 String osVersion = OS_VERSIONS[random.nextInt(OS_VERSIONS.length)];
13 String chromeVersion = CHROME_VERSIONS[random.nextInt(CHROME_VERSIONS.length)];
14
15 return "Mozilla/5.0 (" + osVersion + ") AppleWebKit/537.36 (KHTML, like Gecko) " +
16 "Chrome/" + chromeVersion + " Safari/537.36";
17 }
18
19 public static void main(String[] args) {
20 System.out.println(generateRandomChromeUserAgent());
21 }
22}
23
1# Ruby: Ανάλυση συμβολοσειράς user agent
2require 'user_agent_parser'
3
4def parse_user_agent(user_agent_string)
5 parser = UserAgentParser::Parser.new
6 client = parser.parse(user_agent_string)
7
8 {
9 browser_name: client.family,
10 browser_version: client.version.to_s,
11 os_name: client.os.family,
12 os_version: client.os.version.to_s,
13 device: client.device.family
14 }
15end
16
17# Παράδειγμα χρήσης
18ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'
19info = parse_user_agent(ua)
20puts info
21
1// C#: Ρύθμιση user agent στο HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Δημιουργία HttpClient με προσαρμοσμένο user agent
11 using (var httpClient = new HttpClient())
12 {
13 string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36";
14 httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
15
16 try
17 {
18 // Κάντε αίτηση με προσαρμοσμένο user agent
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Απάντηση που ελήφθη με κωδικό κατάστασης: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Πρώτοι 100 χαρακτήρες
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Σφάλμα αιτήματος: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Δημιουργία HTTP αιτήσεων με προσαρμοσμένους user agents
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Δημιουργία νέας αίτησης
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Σφάλμα κατά τη δημιουργία της αίτησης: %s\n", err)
15 return
16 }
17
18 // Ρύθμιση προσαρμοσμένου user agent
19 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36")
20
21 // Αποστολή της αίτησης
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Σφάλμα κατά την αποστολή της αίτησης: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Ανάγνωση της απάντησης
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Σφάλμα κατά την ανάγνωση της απάντησης: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Κατάσταση απάντησης: %s\n", resp.Status)
38 fmt.Printf("Προεπισκόπηση σώματος απάντησης: %s\n", body[:100])
39}
40
Κοινά Πρότυπα User Agent
Ακολουθούν ορισμένα παραδείγματα πραγματικών συμβολοσειρών user agent για διαφορετικούς περιηγητές και πλατφόρμες:
Επιτραπέζιοι Περιηγητές
Chrome σε Windows:
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 σε Windows:
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
Samsung Internet σε 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
Αναφορές
-
"User Agent." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Browser User Agent Strings." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP User-Agent Header Explained." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Client Hints." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"History of the browser user-agent string." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Browser Detection Using the User Agent." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Ανατροφοδότηση
Κάντε κλικ στο toast ανατροφοδότησης για να ξεκινήσετε να δίνετε ανατροφοδότηση για αυτό το εργαλείο
Σχετικά Εργαλεία
Ανακαλύψτε περισσότερα εργαλεία που μπορεί να είναι χρήσιμα για τη ροή εργασίας σας