diff --git a/404.html b/404.html index cac980e90e..cd789a5ef1 100644 --- a/404.html +++ b/404.html @@ -1,2 +1,2 @@ 404 Page not found -

Error

Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

Go to homepage

Page not found!

\ No newline at end of file +

Error

Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

Go to homepage

Page not found!

\ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 525b9c8347..2b390f4005 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,7 +1,7 @@ Categories | Yauaa - Yet Another UserAgent Analyzer -

category :: -Categories

    \ No newline at end of file +Categories
    \ No newline at end of file diff --git a/developer/basedesign/index.html b/developer/basedesign/index.html index f7c27401b5..cf9020afe1 100644 --- a/developer/basedesign/index.html +++ b/developer/basedesign/index.html @@ -1,7 +1,7 @@ Base Design | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +points to all the applicable matcher actions. As a consequence

    A much more in depth explanation can be found in the documentation on how to create new rules

    \ No newline at end of file diff --git a/developer/building/index.html b/developer/building/index.html index b6a31402e1..b83ce826d2 100644 --- a/developer/building/index.html +++ b/developer/building/index.html @@ -1,7 +1,7 @@ Building from source | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/developer/index.html b/developer/index.html index ca65f33bf6..a304cb1787 100644 --- a/developer/index.html +++ b/developer/index.html @@ -1,8 +1,8 @@ Development | Yauaa - Yet Another UserAgent Analyzer -

    Development

    These pages explain the internals of the system and contains the guidelines on how to extend it with your own rules.

    \ No newline at end of file +Yauaa: Yet Another UserAgent Analyzer > Development

    Development

    These pages explain the internals of the system and contains the guidelines on how to extend it with your own rules.

    \ No newline at end of file diff --git a/developer/makingnewrules/index.html b/developer/makingnewrules/index.html index 3701bea78c..ec41818c97 100644 --- a/developer/makingnewrules/index.html +++ b/developer/makingnewrules/index.html @@ -1,7 +1,7 @@ Making new rules | Yauaa - Yet Another UserAgent Analyzer -

    it will stay at the first product and never find the 5th product at all.

    \ No newline at end of file +

    it will stay at the first product and never find the 5th product at all.

    \ No newline at end of file diff --git a/developer/reportingissues/index.html b/developer/reportingissues/index.html index ea3f4bed08..c5fb08c1a3 100644 --- a/developer/reportingissues/index.html +++ b/developer/reportingissues/index.html @@ -1,7 +1,7 @@ Reporting issues | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/developer/shadingdependencies/index.html b/developer/shadingdependencies/index.html index 56c1afb9ad..271bf9ec39 100644 --- a/developer/shadingdependencies/index.html +++ b/developer/shadingdependencies/index.html @@ -1,7 +1,7 @@ Shading dependencies | Yauaa - Yet Another UserAgent Analyzer -

    I filed a bug report/ missing feature for this in the Maven shade plugin: https://issues.apache.org/jira/browse/MSHADE-326

    For which I’ve put up a pull request: https://github.com/apache/maven-shade-plugin/pull/26

    Solution 3: Manually exclude them

    So we exclude these 4 shaded dependencies in all modules in this project so they are no longer included double in the final jars.

    Problem 4: No such classfile …

    Which gives rise to a new problem: When building/developing these modules the code will complain about missing dependencies. The dependencies have been shaded, relocated and excluded … which means that any code looking for the ‘original’ -class name will find it to be missing.

    Solution 4: Include as ‘provided’

    The final step I had to take was to include these 4 dependencies again as ‘provided’ in all modules in this project.

    Additional notes

    • Immediately setting these dependencies to ‘provided’ causes them not to be included by the shade plugin.
    • Using the optional setting on the dependency caused “missing classes” errors in IntelliJ
    • The open issue at the maven/maven-shade-plugin end for problems 3 and 4: https://issues.apache.org/jira/browse/MSHADE-326
    \ No newline at end of file +class name will find it to be missing.

    Solution 4: Include as ‘provided’

    The final step I had to take was to include these 4 dependencies again as ‘provided’ in all modules in this project.

    Additional notes

    \ No newline at end of file diff --git a/expect/fieldvalues/index.html b/expect/fieldvalues/index.html index 93bf4c1be8..6103a85e00 100644 --- a/expect/fieldvalues/index.html +++ b/expect/fieldvalues/index.html @@ -1,7 +1,7 @@ Field values | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +So I classify all of them as hacking oriented tools. |

    DeviceClass

    ValueMeaning
    DesktopThe device is assessed as a Desktop/Laptop class device
    AnonymizedIn some cases the useragent has been altered by anonymization software
    UnknownWe really don’t know, these are usually useragents that look normal yet contain almost no information about the device
    MobileA device that is mobile yet we do not know if it is a eReader/Tablet/Phone or Watch
    TabletA mobile device with a rather large screen (common > 7")
    PhoneA mobile device with a small screen (common < 7")
    WatchA mobile device with a tiny screen (common < 2"). Normally these are an additional screen for a phone/tablet type device.
    Augmented RealityA mobile device with a AR capabilities (like Google Glass)
    Virtual RealityA mobile device with a VR capabilities
    eReaderSimilar to a Tablet yet in most cases with an eInk screen
    Set-top boxA connected device that allows interacting via a TV sized screen
    TVSimilar to Set-top box yet here this is built into the TV
    Home ApplianceA (usally large) home appliance (like a Fridge)
    Game Console‘Fixed’ game systems like the PlayStation and XBox
    Handheld Game Console‘Mobile’ game systems like the 3DS
    VoiceA voice driven device (i.e. ask a question and the page is read aloud). Like Alexa and Google Home.
    Smart DisplayA smart speaker kind of device with a tablet sized screen built in (like Google Nest and Amazon Echo Home)
    CarA Car based browser as found in for example the Tesla vehicles
    RobotRobots that visit the site
    Robot MobileRobots that visit the site indicating they want to be seen as a Mobile visitor
    Robot ImitatorRobots that visit the site pretending they are robots like google, but they are not. Note that in most cases they ARE Robots.
    CloudA cloud based application. Not a Robot or Hacker but a normal application that needs to connect. This includes for example Mastodon servers.
    HackerIn case scripting is detected in the useragent string, also fallback in really broken situations

    OperatingSystemClass

    ValueMeaning
    DesktopThe type of OS you would run on a Desktop or Laptop
    MobileThe type of OS you would run on a Phone, Tablet or Watch
    CloudLooks like a thing that runs in a cloud environment
    EmbeddedApparently embedded into something like a TV
    Game ConsoleA game console like PS4, Xbox
    HackerA hacker, so it can really be anything.
    AnonymizedIt was explicitly hidden
    UnknownWe don’t know

    LayoutEngineClass

    ValueMeaning
    BrowserA regular browser
    Desktop AppA desktop app (often a PWA)
    Mobile AppA mobile app which probably includes a regular webbrowser
    HackerA hacker, so it can really be anything.
    RobotA robot spidering the site
    CloudA cloud based application where it is unclear what kind of layout engine is really used
    SpecialSomething special we cannot fully classify
    UnknownWe don’t know

    AgentClass

    ValueMeaning
    BrowserA regular browser
    Browser WebviewA regular browser being used as part of a mobile app
    Desktop AppA desktop app (often a PWA)
    Mobile AppA mobile app
    RobotA robot that wants to be treated as a desktop device
    Robot MobileA robot that wants to be treated as a mobile device
    Cloud ApplicationSomething running in a cloud that is intended to be Human facing (so not a regular robot)
    ServerSomething running in a cloud that is intended to be Server-to-Server (so not a regular robot)
    Email ClientThis is an email application that did the request
    VoiceA voice driven ‘browser’ (i.e. ask a question and the page is read aloud). Like Alexa and Google Home.
    SpecialSomething special we cannot fully classify
    TestclientA website testing tool
    HackerA hacker, so it can really be anything.
    UnknownWe don’t know

    AgentSecurity

    ValueMeaning
    Weak securityIndicated to use deliberately weakened encryption (usually due to export restrictions or local laws).
    Strong securityIndicated to use strong (normal) encryption.
    UnknownIt was not specified (very common)
    HackerA hacker, so it can really be anything.
    \ No newline at end of file diff --git a/expect/index.html b/expect/index.html index 47f435d135..77b5ba2c09 100644 --- a/expect/index.html +++ b/expect/index.html @@ -1,9 +1,9 @@ What to expect | Yauaa - Yet Another UserAgent Analyzer -

    What to expect

    This library extracts as many as possible fields from the provided User-Agent value and (if available) the provided Client Hints.

    As an example the useragent of my phone (from a while ago):

    Mozilla/5.0 (Linux; Android 7.0; Nexus 6 Build/NBD90Z) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.124 Mobile Safari/537.36
    -

    is converted into this set of fields:

    Field nameValue
    Device ClassPhone
    Device NameGoogle Nexus 6
    Device BrandGoogle
    Operating System ClassMobile
    Operating System NameAndroid
    Operating System Version7.0
    Operating System Name VersionAndroid 7.0
    Operating System Version BuildNBD90Z
    Layout Engine ClassBrowser
    Layout Engine NameBlink
    Layout Engine Version53.0
    Layout Engine Version Major53
    Layout Engine Name VersionBlink 53.0
    Layout Engine Name Version MajorBlink 53
    Agent ClassBrowser
    Agent NameChrome
    Agent Version53.0.2785.124
    Agent Version Major53
    Agent Name VersionChrome 53.0.2785.124
    Agent Name Version MajorChrome 53
    \ No newline at end of file +

    is converted into this set of fields:

    Field nameValue
    Device ClassPhone
    Device NameGoogle Nexus 6
    Device BrandGoogle
    Operating System ClassMobile
    Operating System NameAndroid
    Operating System Version7.0
    Operating System Name VersionAndroid 7.0
    Operating System Version BuildNBD90Z
    Layout Engine ClassBrowser
    Layout Engine NameBlink
    Layout Engine Version53.0
    Layout Engine Version Major53
    Layout Engine Name VersionBlink 53.0
    Layout Engine Name Version MajorBlink 53
    Agent ClassBrowser
    Agent NameChrome
    Agent Version53.0.2785.124
    Agent Version Major53
    Agent Name VersionChrome 53.0.2785.124
    Agent Name Version MajorChrome 53
    \ No newline at end of file diff --git a/expect/limitations/index.html b/expect/limitations/index.html index b2ef9dc8b6..531f5356ce 100644 --- a/expect/limitations/index.html +++ b/expect/limitations/index.html @@ -1,7 +1,7 @@ Limitations | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +So if the useragent only contains ‘A200’ there is no way to determine what device it really was.

    So as a consequence I have chosen to limit this detection to

    1. Brands that are included as the first word in the appropriate field.
    2. Special cases (like robots)
    3. The “most used brands” as good as possible.

    WARNING: The detection of DeviceBrand will therefore never be complete and accurate.

    \ No newline at end of file diff --git a/expect/manipulations/index.html b/expect/manipulations/index.html index a55b92ca60..d85d43bbba 100644 --- a/expect/manipulations/index.html +++ b/expect/manipulations/index.html @@ -1,7 +1,7 @@ Manipulations | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +changing from 10.x to 11.x.

    \ No newline at end of file diff --git a/expect/performance/index.html b/expect/performance/index.html index edb87f2f78..53274a663b 100644 --- a/expect/performance/index.html +++ b/expect/performance/index.html @@ -1,7 +1,7 @@ Performance | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +Followed by a few steps in a rewrite of that part resulting in effectively the fastest versions to date.

    Output from the benchmark ( using this code ) on a Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz from version 4.0 onwards:

    \ No newline at end of file diff --git a/expect/tryit/index.html b/expect/tryit/index.html index 2f772a41e2..850017fac3 100644 --- a/expect/tryit/index.html +++ b/expect/tryit/index.html @@ -1,9 +1,9 @@ Try it! | Yauaa - Yet Another UserAgent Analyzer -

    Try it!

    You can try it online with your own browser here: https://try.yauaa.basjes.nl/.

    NOTES

    1. This runs on a very slow and rate limited machine.
    2. If you really like this then run it on your local systems. It’s much faster that way. -A Kubernetes ready Docker image is provided. See this page about the WebServlet for more information.
    \ No newline at end of file +A Kubernetes ready Docker image is provided. See this page about the WebServlet for more information.
    \ No newline at end of file diff --git a/index.html b/index.html index 00993f0027..bfe3dbaeec 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,7 @@ Yauaa: Yet Another UserAgent Analyzer | Yauaa - Yet Another UserAgent Analyzer -
    navigation

    Yauaa: Yet Another UserAgent Analyzer

    This is a java library that tries to parse and analyze the useragent string (and when available the User-Agent Client Hints) and extract as many relevant attributes as possible.

    Works with Java, Scala, Kotlin and provides ready for use UDFs for several processing systems.

    The full documentation can be found here https://yauaa.basjes.nl


    HIGH Profile release notes:

    These are only the highlights, the full changelog can be found here.

    NEXT RELEASE

    • New/improved detections:

    Version v7.23.0

    • New/improved detections:
      • Detect more of the Yahoo Japan bots
    • Updated UDF dependencies
      • Trino 427 changed their API

    Version v7.22.0

    • New/improved detections:
      • Handle version bug fixed in Opera 98.
      • Report all Opera variants as distinct browsers because they all have unrelated version numbers.

    Version v7.21.0

    • New/improved detections:
      • New DeviceClass: “Smart Display”
      • Report Samsung DEX (Desktop Experience) as Tablet
      • Detect Amazon Echo Show better (a “Smart Display”)
      • Detect Bitwarden Mobile app
      • Detect more Federated Social Servers and Robots
      • Detect Opera GX
      • Detect Fuchsia OS
      • Detect several situations of UserAgent changing plugins
    • Updated UDF dependencies
      • Trino 422 (it needs 421 or newer!)

    Version v7.20.0

    • New/improved detections:
      • Device brands from patterns in Client Hints.

    Donations

    If this project has business value for you then don’t hesitate to support me with a small donation either via Github Sponsors or Paypal.


    License

    Yet Another UserAgent Analyzer
     Copyright (C) 2013-2023 Niels Basjes
     
     Licensed under the Apache License, Version 2.0 (the "License");
    @@ -15,4 +15,4 @@
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/other/article/index.html b/other/article/index.html index f094536c91..e4bfc55f19 100644 --- a/other/article/index.html +++ b/other/article/index.html @@ -1,8 +1,8 @@ Blogpost | Yauaa - Yet Another UserAgent Analyzer -

    Blogpost

    A bit more background about this useragent parser can be found in this blog which I wrote about it: https://techlab.bol.com/making-sense-user-agent-string/

    \ No newline at end of file +Yauaa: Yet Another UserAgent Analyzer > Other > Blogpost

    Blogpost

    A bit more background about this useragent parser can be found in this blog which I wrote about it: https://techlab.bol.com/making-sense-user-agent-string/

    \ No newline at end of file diff --git a/other/index.html b/other/index.html index 16a3d483cd..567c0d3425 100644 --- a/other/index.html +++ b/other/index.html @@ -1,8 +1,8 @@ Other | Yauaa - Yet Another UserAgent Analyzer -
    \ No newline at end of file +Yauaa: Yet Another UserAgent Analyzer > Other

    Other

    \ No newline at end of file diff --git a/other/relatedprojects/index.html b/other/relatedprojects/index.html index e965ec29e4..245a6bc9a3 100644 --- a/other/relatedprojects/index.html +++ b/other/relatedprojects/index.html @@ -1,9 +1,9 @@ Related projects | Yauaa - Yet Another UserAgent Analyzer -

    Related projects

    .NET port

    Stefano Balzarotti is putting a lot of effort into porting Yauaa to run in .NET standard.

    You can track his efforts here on GitHub: Yauaa .NET standard and -download his releases via Nuget.

    \ No newline at end of file +download his releases via Nuget.

    \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index d33c02b560..8892c92f49 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,7 +1,7 @@ Tags | Yauaa - Yet Another UserAgent Analyzer -

    tag :: -Tags

      \ No newline at end of file +Tags
      \ No newline at end of file diff --git a/udf/apache-beam-sql/index.html b/udf/apache-beam-sql/index.html index 8ecaa8f407..a1cc8138d1 100644 --- a/udf/apache-beam-sql/index.html +++ b/udf/apache-beam-sql/index.html @@ -1,7 +1,7 @@ Apache Beam SQL | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +

      Limitations / Future

      The ParseUserAgent and ParseUserAgentJson have a limitation of at most 10 fieldnames because Calcite does not yet support variable arguments for UDFs. If you need more than 10 fields you currently need to get all fields and then extract the fields you need from there.

      \ No newline at end of file diff --git a/udf/apache-beam/index.html b/udf/apache-beam/index.html index 1d613be59b..4b047f6612 100644 --- a/udf/apache-beam/index.html +++ b/udf/apache-beam/index.html @@ -1,7 +1,7 @@ Apache Beam | Yauaa - Yet Another UserAgent Analyzer -

      and then in the topology simply do this

      .apply("Extract Elements from Useragent",
         ParDo.of(new MyUserAgentAnalysisDoFn()));
      -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/udf/apache-drill/index.html b/udf/apache-drill/index.html index 916c86b934..b54e326acd 100644 --- a/udf/apache-drill/index.html +++ b/udf/apache-drill/index.html @@ -1,7 +1,7 @@ Apache Drill | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +

      The improvement after adding the Client Hints is evident.

      \ No newline at end of file diff --git a/udf/apache-flink-table/index.html b/udf/apache-flink-table/index.html index 8241525168..b9405bd5fb 100644 --- a/udf/apache-flink-table/index.html +++ b/udf/apache-flink-table/index.html @@ -1,7 +1,7 @@ Apache Flink Table/SQL | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/udf/apache-flink/index.html b/udf/apache-flink/index.html index 80614c6e4c..27723aefbb 100644 --- a/udf/apache-flink/index.html +++ b/udf/apache-flink/index.html @@ -1,7 +1,7 @@ Apache Flink | Yauaa - Yet Another UserAgent Analyzer -

      and then in the topology simply do this

      .map(new MyUserAgentAnalysisMapper())
      -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/udf/apache-hive/index.html b/udf/apache-hive/index.html index 56b2957fb4..9ea550e80e 100644 --- a/udf/apache-hive/index.html +++ b/udf/apache-hive/index.html @@ -1,7 +1,7 @@ Apache Hive | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/udf/apache-nifi/index.html b/udf/apache-nifi/index.html index 7f58ca3718..100e425a58 100644 --- a/udf/apache-nifi/index.html +++ b/udf/apache-nifi/index.html @@ -1,7 +1,7 @@ Apache Nifi | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +Output from LogAttributes

      \ No newline at end of file diff --git a/udf/apache-pig/index.html b/udf/apache-pig/index.html index 8aefea51a9..9ddbede130 100644 --- a/udf/apache-pig/index.html +++ b/udf/apache-pig/index.html @@ -1,7 +1,7 @@ Apache Pig | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/udf/commandline/index.html b/udf/commandline/index.html index 618bdf07ed..5f784cf227 100644 --- a/udf/commandline/index.html +++ b/udf/commandline/index.html @@ -1,7 +1,7 @@ Commandline usage | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/udf/elastic-logstash/index.html b/udf/elastic-logstash/index.html index c449e755f3..576bb5ed1f 100644 --- a/udf/elastic-logstash/index.html +++ b/udf/elastic-logstash/index.html @@ -1,7 +1,7 @@ Elastic LogStash | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/udf/elastic-search/index.html b/udf/elastic-search/index.html index 4f8e4eeaf0..faba334ef7 100644 --- a/udf/elastic-search/index.html +++ b/udf/elastic-search/index.html @@ -1,7 +1,7 @@ Elastic Search | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +

      NOTES for developers

      The ElasticSearch testing tools are quick to complain about jar classloading issues: “jar hell”.

      To make it possible to test this in IntelliJ you’ll need to set a custom property

      1. Help –> Edit Custom properties
      2. Make sure there is a line with idea.no.launcher=true
      3. Restart IntelliJ

      See also https://stackoverflow.com/questions/51045201/using-the-elasticsearch-test-framework-in-intellij-how-to-resolve-the-jar-hell/51045272

      \ No newline at end of file diff --git a/udf/index.html b/udf/index.html index 89d939aaa5..47aa556c5a 100644 --- a/udf/index.html +++ b/udf/index.html @@ -1,7 +1,7 @@ User Defined Functions | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +I have written such a UDF which are all part of this project.

      \ No newline at end of file diff --git a/udf/logparser/index.html b/udf/logparser/index.html index 46c36161aa..82d8d38999 100644 --- a/udf/logparser/index.html +++ b/udf/logparser/index.html @@ -1,7 +1,7 @@ LogParser | Yauaa - Yet Another UserAgent Analyzer -

      Client hints

      Because the logparser can only dissect a single field into multiple pieces it is impossible to extend this to support User-Agent Client Hints.

      \ No newline at end of file +

      Client hints

      Because the logparser can only dissect a single field into multiple pieces it is impossible to extend this to support User-Agent Client Hints.

      \ No newline at end of file diff --git a/udf/snowflake/index.html b/udf/snowflake/index.html index 0f12d4ab30..b419ffc79f 100644 --- a/udf/snowflake/index.html +++ b/udf/snowflake/index.html @@ -1,7 +1,7 @@ Snowflake | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +

      Using Yauaa in Snowflake with all Headers

      \ No newline at end of file diff --git a/udf/snowplow/index.html b/udf/snowplow/index.html index bf6311da09..31aed76d3c 100644 --- a/udf/snowplow/index.html +++ b/udf/snowplow/index.html @@ -1,8 +1,8 @@ Snowplow | Yauaa - Yet Another UserAgent Analyzer -

      Snowplow

      Introduction

      If you are a user of the Snowplow Analytics system and would like to use Yauaa in your analysis you are in luck.

      The people at Snowplow have included Yauaa as a readily available feature in their system.

      The official documentation: Snowplow Yauaa Enrichment

      \ No newline at end of file +Yauaa: Yet Another UserAgent Analyzer > User Defined Functions > Snowplow

      Snowplow

      Introduction

      If you are a user of the Snowplow Analytics system and would like to use Yauaa in your analysis you are in luck.

      The people at Snowplow have included Yauaa as a readily available feature in their system.

      The official documentation: Snowplow Yauaa Enrichment

      \ No newline at end of file diff --git a/udf/trino/index.html b/udf/trino/index.html index e68ea7a8bb..20bcb42e53 100644 --- a/udf/trino/index.html +++ b/udf/trino/index.html @@ -1,7 +1,7 @@ Trino | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/using/clienthints/index.html b/using/clienthints/index.html index cd735796ce..9c60036b7a 100644 --- a/using/clienthints/index.html +++ b/using/clienthints/index.html @@ -1,7 +1,7 @@ User-Agent Client Hints | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +

      Although the User-Agent contains Windows NT 10.0 the (correct) answer provided by Yauaa is Windows 7 because this is the reduced User-Agent (all minor versions of Chrome are 0: 100.0.0.0) and the Client hints indicate Windows and 0.1.0.

      Which client hints do I really need?

      A bit deeper dive into the fields and their “added value” and why to request and keep them (or not).

      General considerations:

      Client hintExampleKeep it?Why
      Sec-Ch-Ua" Not A;Brand";v=“99”, “Chromium”;v=“100”, “Google Chrome”;v=“100”YesYou may not have the Sec-Ch-Ua-Full-Version-List with the exact versions.
      Sec-Ch-Ua-Full-Version-List" Not A;Brand";v=“99.0.0.0”, “Chromium”;v=“100.0.4896.75”, “Google Chrome”;v=“100.0.4896.75”YesIs the better variant of Sec-Ch-Ua but it may not be present.
      Sec-CH-Ua-Full-Version“100.0.4896.75”NoThis field is deprecated in the standard. Also this info is also present in the Sec-Ch-Ua-Full-Version-List.
      Sec-Ch-Ua-Mobile?0YesIn the (very rare) case where we cannot determine if it is a phone or tablet this flag determines the end result.
      Sec-Ch-Ua-Platform“Windows”YesNeeded in the very common case of bad version info in the useragent.
      Sec-Ch-Ua-Platform-Version“0.1.0”YesNeeded in the very common case of bad version info in the useragent. This “0.1.0” means “Windows 7” because the Platform says “Windows”.
      Sec-Ch-Ua-Arch“x86”YesThe only way to determine a MacOS system is running an M1/M2 (ARM) instead of an Intel CPU
      Sec-Ch-Ua-Bitness“64”YesOften not present in the useragent
      Sec-CH-UA-Form-Factor“Mobile”YesNew in the specification, in July 2023 no browsers supported this yet.
      Sec-Ch-Ua-Model“Nokia 7.2”YesOften not present in the useragent (brand and device info).
      Sec-Ch-Ua-Wow64?0NoThe only thing this says is that this is Windows (use Platform) and that it is 32 bit software running on a 64 bit system.

      To simplify it all I would

      \ No newline at end of file diff --git a/using/index.html b/using/index.html index 109f8f1025..5aef65782b 100644 --- a/using/index.html +++ b/using/index.html @@ -1,7 +1,7 @@ Using the analyzer | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/using/kubernetes/index.html b/using/kubernetes/index.html index e379afbcfd..9eb71de77c 100644 --- a/using/kubernetes/index.html +++ b/using/kubernetes/index.html @@ -1,7 +1,7 @@ Kubernetes | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/using/license/index.html b/using/license/index.html index 231107adc0..643f38d99c 100644 --- a/using/license/index.html +++ b/using/license/index.html @@ -1,7 +1,7 @@ Licence | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +
      \ No newline at end of file diff --git a/using/memoryusage/index.html b/using/memoryusage/index.html index 0e62303978..5af5a3517d 100644 --- a/using/memoryusage/index.html +++ b/using/memoryusage/index.html @@ -1,7 +1,7 @@ Memory usage | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +on top of the rules for the DeviceClass (which is always extracted).

      Extracting everything will currently have a memory impact (without caching!) of about 114 MiB

      FieldRelative Memory usage
      DeviceClass (required)90.8 MiB
      DeviceName10.0 MiB
      DeviceBrand9.1 MiB
      DeviceCpu0.7 MiB
      DeviceCpuBits0.5 MiB
      DeviceFirmwareVersion1.1 MiB
      DeviceVersion0.4 MiB
      OperatingSystemClass1.2 MiB
      OperatingSystemName1.3 MiB
      OperatingSystemVersion1.3 MiB
      OperatingSystemVersionMajor1.5 MiB
      OperatingSystemNameVersion2.0 MiB
      OperatingSystemNameVersionMajor2.2 MiB
      OperatingSystemVersionBuild0.4 MiB
      LayoutEngineClass2.8 MiB
      LayoutEngineName2.8 MiB
      LayoutEngineVersion2.8 MiB
      LayoutEngineVersionMajor3.0 MiB
      LayoutEngineNameVersion3.2 MiB
      LayoutEngineNameVersionMajor3.4 MiB
      LayoutEngineBuild0.6 MiB
      AgentClass5.0 MiB
      AgentName5.2 MiB
      AgentVersion5.1 MiB
      AgentVersionMajor5.3 MiB
      AgentNameVersion5.7 MiB
      AgentNameVersionMajor5.8 MiB
      AgentBuild0.5 MiB
      AgentLanguage0.4 MiB
      AgentLanguageCode0.4 MiB
      AgentInformationEmail0.1 MiB
      AgentInformationUrl0.1 MiB
      AgentSecurity0.2 MiB
      AgentUuid0.3 MiB
      WebviewAppName1.0 MiB
      WebviewAppVersion1.0 MiB
      WebviewAppVersionMajor1.0 MiB
      WebviewAppNameVersionMajor1.1 MiB
      FacebookCarrier0.2 MiB
      FacebookDeviceClass0.2 MiB
      FacebookDeviceName0.2 MiB
      FacebookDeviceVersion0.2 MiB
      FacebookFBOP0.2 MiB
      FacebookFBSS0.5 MiB
      FacebookOperatingSystemName0.5 MiB
      FacebookOperatingSystemVersion0.5 MiB
      Anonymized0.1 MiB
      HackerAttackVector0.1 MiB
      HackerToolkit0.1 MiB
      KoboAffiliate0.1 MiB
      KoboPlatformId0.1 MiB
      IECompatibilityVersion0.4 MiB
      IECompatibilityVersionMajor0.4 MiB
      IECompatibilityNameVersion0.4 MiB
      IECompatibilityNameVersionMajor0.4 MiB
      Carrier0.2 MiB
      GSAInstallationID0.1 MiB
      NetworkType0.1 MiB
      \ No newline at end of file diff --git a/using/webservlet/index.html b/using/webservlet/index.html index 0c9a3272a2..eda4faef46 100644 --- a/using/webservlet/index.html +++ b/using/webservlet/index.html @@ -1,7 +1,7 @@ The demonstration webservlet | Yauaa - Yet Another UserAgent Analyzer -
      \ No newline at end of file +
      \ No newline at end of file