Search code examples
javaparsinguser-agent

Is there a good method for parsing the user-agent string?


I have a Java module that receives the User-Agent string from an end user's browser needs to behave slightly differently depending on the type of browser, the version of the browser and maybe even the operating system. E.g.: {"FireFox", "7.0", "Win7"}, {"Safari", "3.2", "iOS9"}

I understood that the User-Agent string can vary in its format for the exact same configuration due to different plug-in installations etc.

My questions:

  1. Is the structure of the User-Agent well defined? If yes - where can I find it exactly? (From my understanding of the RFC there is not much standardization here).
  2. Assuming the question for #1 is No - is there a proper way to parse it to get the info I need?
  3. Is there a better way to get the info I need other than the User-Agent string?

Important note - I'm talking about a web-app, so my data collection abilities are limited to javascript.


Solution

  • For Java, take a look at User-Agent-Utils. It's fairly compact (< 50kB) and has no dependencies.

    Note although the latest release is quite recent (1.21, released 2018-01-24), the library's page states:

    Warning: This project is end-of-life and will not be updated regularly any longer

    And on the github page it says:

    EOL WARNING

    This library has reached end-of-life and will not see regular updates any longer.

    Version 1.21 was the last official release in 2018.