Mysql
 sql >> база данни >  >> RDS >> Mysql

Хедър на потребителски агент - съкращение за съхранение на mysql

Няма правила за низовете на User-Agent, така че няма начин да се създаде напълно правилен и устойчив на бъдещето анализатор. Съществува обаче общ модел:

User-Agent: <engine-string> <engine-string> ...

Където engine-string има форма:

<agent-name> (<comment>; <comment>; ...)

Всеки низ на двигателя (просто го нарекох така според моите разбирания, това може да не е правилно) може или не може да има коментари.

Например:

Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) ↲
AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e ↲
Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

(Това е единичен низ, току-що го разделих на редове.) Изглежда, когато някой прави разклонение на двигател на браузър, той просто добавя своето нещо към края. Така че имаме някакъв абстрактен браузър "Mozilla" (наследство от "Първата война на браузърите"), който си мисли, че е на iPhone. Тогава виждаме, че има WebKit (който помни, че е роден като KHTML преди известно време). След това има някаква модификация Version/6.0, която след това беше модифицирана в Mobile/10A5376e, който стана Safari/8536.25, което най-накрая разкрива тайната, че това всъщност е мобилен бот на Google.

Друг пример:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.4; ↲
InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; ↲
.NET CLR 3.5.30729; .NET CLR 1.1.4322)

Това е един двигател, но има много какво да се каже в скоби.

Така че общото наблюдение е:

  • последните низове на двигателя са най-важни,
  • последните коментари в скоби са по-малко важни.

Имайки предвид това, идеята ми би била да анализирам низа в тези токени на машината и коментарите, след което от всяка секция на машината да изхвърля коментари, започвайки от, да речем, петата. След това, ако все още не е достатъчно, изхвърлете разделите на двигателя, като започнете от втория (първият често е абстрактна "Mozilla", но често има полезни коментари; също понякога всъщност е нещо конкретно, особено за уеб роботи).

Когато анализираме, трябва да вземем предвид, че понякога може да има низове, които не следват този формат. Те могат да бъдат запазени в регистрационен файл за по-късна проверка и след това просто да бъдат изрязани до необходимата дължина, за да се поберат в базата данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как тези два SQL оператора могат да бъдат комбинирани в един?

  2. Свържете Entity Framework с MYSQL във VS2019

  3. MySQL DAYOFWEEK() - седмицата ми започва с понеделник

  4. Вмъкване на PDO масив с помощта на ключ като име на колона

  5. Сравняване на два периода от време в една и съща таблица