diff --git a/404.html b/404.html index b3e5e71aba..95bce2f3f4 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 0e6131b285..4004c1e545 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 b9f5ace308..4575b9deca 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 2a20c6ce70..35daecb418 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 51686887b1..8308f19838 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 c8a9cfd0d0..5a9dd47b75 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 feb1df34a7..a47cb72923 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 4d967af779..e255edf769 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 efc6a63a0d..964cd78f0a 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 f5e41eb15a..afb047fca9 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 da69bc7bfa..c5c8e3013f 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 5183c23322..0052ee7406 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 d4f53a2ed2..cb7e98545c 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 26f6649d24..84d54dfca9 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 b005a20b20..569e4b59b3 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 7663df435d..f02e8eac6f 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 945971d3c3..1b6ffe5490 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 6f5f2a073d..737ce1b111 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 d089ae86bd..2fd082ef9a 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 c6ab5fe589..0840d60ca6 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 173d37950f..07e1363d85 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 dea61b92c3..4bd32de3ae 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 ea8427fb5d..3285c02d75 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 ec8cd3dfd2..2c1a6a1a08 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 6c6aae7bf1..0609e3393a 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 d71b192571..d4f9f8a340 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 110b1999ea..3f42dcd82c 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 839221c342..582f999c7c 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 52d5d08921..843ec4a2e4 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 a150d1b36b..a8d0b2b62a 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 6a0208474d..4579addb18 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 f37c7166b0..78bd859a90 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 6864985316..16d1f36e0a 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 7f442e6fb6..4cd9c18ecb 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 e9b0253635..1a7d705268 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 21219d4343..a811d31091 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 dae430093a..ec7396f8a5 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 48297fea45..c01134e4c4 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 76144dc961..ff4e563d15 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 7b6e247d70..444bab5c93 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 6d8b33eb85..56d176c566 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