ua-tracer
by Paul Kinlan
ua-tracer
what does a user agent actually fetch, follow & run?
Trace NfM08SpW
First seen: 2026-06-22 18:14:33.993 UTC
User-Agent: Mastodon/4.5.10 (http.rb/5.3.1; +https://social.lostinok.com/) Bot
What this user agent did
Directly-referenced assets:
✗ fetched CSS
✗ fetched JS
✗ fetched image
✗ fetched font (HTML)
Document-level link hints:
✗ fetched favicon
✗ fetched apple-touch-icon
✗ fetched web manifest
✗ fetched preload
✗ fetched prefetch
Second-level follows (proves it parsed the linking file):
✗ followed CSS background-image
✗ followed CSS @font-face
✗ followed manifest icon
✗ followed CSS @import
Frames (does it descend into iframes?):
✗ fetched iframe document
✗ descended into iframe (loaded inner image)
Reporting (a report-only CSP is violated by inline styles; reports can arrive via HTTP headers with no JS, or via in-page beacons):
✗ sent a CSP/Reporting report (any path)
✗ delivered via report-uri/Report-To header (no JS)
✗ delivered via in-page beacon (securitypolicyviolation / ReportingObserver)
Social embed (Open Graph / Twitter card images):
✓ fetched og:image
✗ fetched twitter:image
JavaScript execution:
✗ EXECUTED classic JS
✗ EXECUTED ES module
✗ posted client timing
Server-side request waterfall
Every request the server received for this trace, in receive order. +ms is the delta from the
homepage request.
| Received | Δ | Kind | Method | User-Agent |
|---|---|---|---|---|
| 2026-06-22 18:14:33.993 UTC | +0 ms | homepage | GET | Mastodon/4.5.10 (http.rb/5.3.1; +https://social.lostinok.com/) Bot |
request headers (10){
"accept": "text/html",
"accept-encoding": "gzip",
"accept-language": "en, *;q=0.5",
"connection": "close",
"date": "Mon, 22 Jun 2026 18:14:32 GMT",
"host": "ua-tracer.paulkinlan-ea.deno.net",
"traceparent": "00-423b530a2584ba515e7ec4a16eebad64-4cf818f672dde671-01",
"tracestate": "",
"user-agent": "Mastodon/4.5.10 (http.rb/5.3.1; +https://social.lostinok.com/) Bot",
"via": "HTTP/1.1 ord.vultr.prod.deno-cluster.net"
}
|
||||
| 2026-06-22 18:14:34.732 UTC | +739 ms | Open Graph image | GET | Mastodon/4.5.10 (http.rb/5.3.1; +https://social.lostinok.com/) |
request headers (10){
"accept-encoding": "gzip",
"connection": "close",
"date": "Mon, 22 Jun 2026 18:14:34 GMT",
"host": "ua-tracer.paulkinlan-ea.deno.net",
"traceparent": "00-18cb0d637faf444c438f0745ccd03c98-e8a61b49e711cc43-01",
"tracestate": "",
"user-agent": "Mastodon/4.5.10 (http.rb/5.3.1; +https://social.lostinok.com/)",
"via": "HTTP/1.1 ord.vultr.prod.deno-cluster.net",
"x-deno-userspace-traceparent": "00-18cb0d637faf444c438f0745ccd03c98-f8f3c4e19511143b-01",
"x-deno-userspace-tracestate": ""
}
|
||||