Parser ng user agent

5 sa 2 mga rating

Ang Parser ng user agent ay isang libreng tool na nagbabasa ng user agent string at tinutukoy ang browser, operating system at uri ng device nito.

Ano ang malalaman sa isang user agent string?

Ang user agent string ang value ng HTTP field na User-Agent. Kapag web browser ang client, karaniwan itong naglalaman ng mga pangalan ng produkto, numero ng bersyon, token ng operating system at mga palatandaan tungkol sa device. Maaari ring magpadala ng user agent string ang mga command-line client, crawler, feed reader at browser sa loob ng app.

Hindi kasing-ayos ng inaasahan ang format nito. Madalas magsama ang mga browser ng compatibility token na nauugnay sa ibang browser, kaya maaaring magkamali kung ang unang makikilalang pangalan ng produkto lang ang pagbabatayan. Halimbawa, karaniwang may token na nauugnay sa Chrome at Safari ang mga browser na nakabatay sa Chromium. Sinusuri ng parser ang kombinasyon at pagkakasunod-sunod ng mga token sa halip na ituring ang value bilang simpleng listahan.

Ang user agent data ay impormasyong kusang ibinibigay ng client. Maaari itong baguhin o gawa-gawain, at nililimitahan ng ilang browser ang inilalantad nilang detalye tungkol sa bersyon at device. Kaya kapaki-pakinabang ang na-parse na data para sa pag-uuri at pag-debug, pero hindi ito patunay ng pagkakakilanlan ng isang device.

Paano gamitin ang parser ng user agent?

I-paste ang buong header value sa field na User agent, pagkatapos ay patakbuhin ang tool. Magbabalik ito ng tatlong field na Browser, Operating system at Device type.

  1. Kopyahin ang value pagkatapos ng User-Agent mula sa isang HTTP request, access log o developer tools ng browser.
  2. Panatilihin ang orihinal na mga espasyo, bracket, semicolon, slash at numero ng bersyon. Ang mga ito ang naghihiwalay sa mga produkto at komento sa loob ng string.
  3. Isumite ang value, pagkatapos ay ihambing ang ibinalik na pag-uuri sa konteksto ng request.
  4. Itabi ang orihinal na string kasama ng na-parse na resulta sa sarili mong mga tala sa pag-debug. Maaaring hindi makita sa pag-uuri lamang ang mahahalagang token ng bersyon o compatibility.

Sa server tumatakbo ang parser. Ipinapadala sa server ang iyong user agent string sa pamamagitan ng HTTPS at hindi ito iniimbak. Gayunman, bago magsumite, tingnan kung may kasamang hindi kaugnay na query parameter, session identifier o internal hostname ang kinopyang log entry.

Paano basahin ang na-parse na resulta?

Ituring ang bawat field bilang pag-uuring hinango mula sa mga token na ibinigay ng client, hindi bilang hiwalay na beripikadong impormasyon tungkol sa hardware o software.

  • Tinutukoy ng Browser ang browser o pamilya ng client na nakilala mula sa string. Mas mahirap pag-ibahin ang mga embedded web view at browser na nagmula sa Chromium dahil marami silang magkakaparehong token.
  • Ipinapakita ng Operating system ang platform na isinasaad ng mga marker gaya ng Windows NT, Android, iPhone OS, Mac OS X o Linux. Maaaring maging mas malabo ito dahil sa mga compatibility layer at binagong user agent.
  • Inilalagay ng Device type ang client sa isang malawak na kategorya ng form factor batay sa mga marker ng device at platform. Gamitin ito bilang praktikal na kategorya, hindi bilang eksaktong modelo ng hardware.

Ang mga field sa resultang ito ay hindi ulat ng pag-validate ng syntax. Maaaring kulang ang impormasyong kailangan para sa kapaki-pakinabang na pag-uuri kung mali ang format, pinaikli o hindi pamilyar ang user agent. Gayunman, walang pangkalahatang listahan ng mga error na maihahambing sa mga error sa JSON, gaya ng trailing comma o key na walang quotation mark. Kadalasang heuristic ang pag-parse ng user agent dahil magkakaiba ang mga aktuwal na string sa bawat client at madalas nitong pinananatili ang lumang compatibility syntax.

Walang mauuri sa isang value na walang laman. Maaaring maglaman ang napakahabang value ng mga extension, application identifier o nauulit na product token, samantalang karaniwang nagkakaroon lamang ng kahulugan ang mga numero kapag katabi ng product token na tinutukoy ng mga ito. Maaaring lumitaw ang mga accented o non-Latin na character sa custom client string, pero hindi awtomatikong natutukoy ng mga ito ang browser, operating system o device.

Mga halimbawa

Input Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

Karaniwang iuuri ito ng parser bilang Chrome sa Windows at isang desktop device. Naroon ang Safari token para sa compatibility at hindi sapat ang token na iyon lamang para uriin ang browser bilang Safari.

Input Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1

Ipinapahiwatig nito ang Safari sa iOS at isang mobile device. Bahagi ng compatibility information ang pariralang "like Mac OS X". Mas matibay na palatandaan ng device ang mga marker na iPhone at Mobile.

Kung nakuha ang isang user agent mula sa URL query parameter, maaaring naka-percent-encode ito. Gamitin ang Parser ng URL para ihiwalay at i-decode ang parameter bago i-parse ang makukuhang user agent value.

Kailan kapaki-pakinabang ang pag-parse ng user agent, at kailan hindi?

Kapaki-pakinabang ang pag-parse kung kailangan mo ng madaling basahing paliwanag tungkol sa isang hindi pamilyar na request o kung gusto mong suriin ang classification logic bago ito i-deploy. Kabilang sa mga karaniwang sitwasyon ang pagsusuri ng Apache o nginx access-log entry, pag-iimbestiga sa ulat ng rendering na partikular sa isang browser, pagsuri sa traffic mula sa embedded app, o pagbabasa ng raw data na na-export mula sa analytics platform.

Karaniwang hindi na kailangang mag-parse kung may ibang system na nagbibigay na ng browser, operating system at device bilang structured fields. Kaunti rin ang pakinabang nito kung kailangan lamang ng serbisyo mo na ipasa o i-archive ang orihinal na header. Huwag gawing tanging batayan ang resulta para sa authentication, fraud detection o access control dahil kayang pekein ng sender ang string.

Para sa mga responsive layout, karaniwang mas maaasahan ang CSS media queries at feature detection kaysa sa pagtatantiya ng device sa server. I-parse ang user agent kapag kailangan mo ng konteksto para sa diagnosis o pag-uulat, hindi para ipalagay na sinusuportahan ang isang partikular na kakayahan ng browser.

Mga madalas itanong

Malalaman ba ng parser kung bot ang nagpadala ng request?

Walang nakalaang pag-uuri para sa bot sa mga ibinabalik na field. Malinaw na ipinapakilala ng ilang crawler ang sarili nila sa user agent, pero ginagaya ng iba ang mga browser o hindi nagbibigay ng kapaki-pakinabang na detalye. Kung naaangkop, kumpirmahin ang automated traffic gamit ang mga pattern ng request rate, inilathalang IP check para sa crawler at aktuwal na kilos ng mga request.

Bakit may Chrome at Safari sa user agent ng Edge?

Nakabatay sa Chromium ang modernong Edge at nagsasama ito ng mga compatibility token na kailangan ng mga site na sumusuri ng user agent. Kailangang hanapin muna ng parser ang mas partikular na Edge token bago uriin ang request bilang generic na Chrome o Safari. Mahalaga ang pagkakasunod-sunod at pagiging partikular ng mga token.

Pwede ko bang gamitin ang uri ng device para i-redirect ang mga mobile visitor?

Pwede mo itong gawing palatandaan, pero maaaring magkamali ang sapilitang redirect sa pag-uuri ng mga tablet, browser na naka-desktop mode at binagong user agent. Mas mainam ang responsive na page. Kung hindi maiiwasan ang hiwalay na mobile experience, hayaang pumili ang bisita ng ibang bersyon.

Pinapalitan ba ng browser client hints ang pag-parse ng user agent?

Makapagbibigay ang client hints ng structured na impormasyon tungkol sa browser at platform kapag sinusuportahan ito ng browser at server, pero wala ito sa bawat request o client. Maaaring kailanganin pa rin ng mga system na humahawak ng mas lumang browser, crawler at kasalukuyang access log ang pag-parse ng user agent. Itabi lamang ang mga pag-uuri ng user agent na kailangan para sa gawain, at sundin ang mga naaangkop na obligasyon sa privacy.

Mga sikat na tool