# Website Technology Detector

How Tamperbox identifies web technologies from bounded HTML and response-header signatures without executing the page.

Canonical: https://docs.tamperbox.dev/tools/website-technology/
Updated: 2026-10-29
Applies to: tamperbox.dev, October 2026
Prerequisites: a website hostname or pasted HTML and headers
Outputs: technology matches, evidence, categories, version exposure, response facts and limitations
Limitations: Public observations are time-sensitive and do not prove ownership, intent or private configuration

The tool page is [tamperbox.dev/website-technology](https://tamperbox.dev/website-technology). It opens with a live lookup of `mozilla.org`; replace it to inspect your own target. This guide documents the actual input path, evidence contract, classifications and independent verification steps.

<div class="tb-callout"><strong>Where processing happens:</strong> input cleanup, pasted-data parsing and report rendering happen in the browser. Live checks send only the validated public target to the Tamperbox server and the public services required for the lookup. The page stores no report; History is local to the current browser session.</div>

## What the tool answers

The checker answers which catalogued web technologies are suggested by the initial HTTPS response and the first bounded portion of its HTML. Its conclusion is deliberately narrower than an ownership or security claim. A displayed provider, product, name or passing check means that the listed public evidence matched a documented rule at the observation time.

Every conclusion is paired with evidence. The opening verdict is a summary for orientation, while Findings contains the actionable interpretation and the later result sections retain the underlying records, addresses, fields or names. If a conclusion matters operationally, verify that evidence through an authoritative account or an independent standards-aware client before changing production.

## Inputs

### Accepted source

Enter a domain for a live HTTPS fetch, or paste HTML, HTTP headers, or headers followed by a blank line and HTML. Pasted content is inspected locally and scripts are never executed. Input beginning with a JSON object or array produces the informational “Not a web page” result. A live response is bounded to 256 KiB of HTML; later signatures can be missed.

Text files are read in the browser. The resulting input follows the same classification rules as the field; reading a file locally does not make a domain or public-IP lookup offline. Cleanup keeps an already accepted record intact and otherwise tries unwrapping a single-line address. Unusable text remains visible for correction.

### When work runs

Domain input runs after a 600-millisecond typing pause. Enter runs it immediately; pasted records run immediately. Drops and page-wide paste use the same input loader. Leaving the field applies cleanup and reruns only when cleanup changes the text. Each edit aborts the previous request and increments a generation marker. A slower old response therefore cannot replace a newer result, and clearing the source immediately clears copyable output.

The opening input uses the same parser and processing path as a replacement. The labelled live default sends the same requests as another domain.

## Reading the result

### Verdict and privacy

The verdict states what the available evidence supports and uses pass, check, fail or informational status consistently. Pass means the bounded rule succeeded. Check means a human should confirm context. Fail means a concrete operational rule was violated. Info describes a limitation, absence or neutral fact and must not be promoted into success or failure by an automated reader.

Two privacy lines distinguish browser-only work from live lookup work. The Checked line names the cleaned input and source mode. Pending, error and empty states clear the previous evidence, so the report always belongs to the current completed lookup. The verdict leads directly into the findings; there is no separate whole-report export.

### Findings and evidence

Findings are ordered with failures first, then checks, informational notes and passes. Repeated passing details can fold into a disclosure so that exceptions remain visible. Each item states the observation and its consequence; any remediation is scoped to the evidence rather than presented as a universal configuration recipe.

Evidence sections follow Findings and precede History. They are the audit trail for the verdict. A provider label derived from a catalog remains an inference, while a literal record or response field remains an observation. This distinction matters when signatures are incomplete, white-labelled or stale.

### History and handoffs

History records intentional input replacements, including Break it examples and their repairs. Revert restores the prior input and runs it again, including live requests when applicable; Reset input returns to the value at the beginning of the recorded sequence. History is not monitoring, persistence or an account log.

Check the rest opens related tools without carrying input. Take it further sends the final hostname to the [CDN and Proxy Detector](https://docs.tamperbox.dev/tools/cdn-detector/) or [Website Hosting Checker](https://docs.tamperbox.dev/tools/website-hosting/). These links appear only when that hostname differs from the input. A receiving tool runs its own check; agreement is not guaranteed.

Result actions transfer their explicit derived values through temporary browser `sessionStorage` and, when needed, a same-origin browser channel. The URL fragment contains a random transfer token, not the input. Transfers are accepted for less than one minute, consumed once, and bound to the destination path. The destination removes the token from its address. Ordinary documentation links and direct visits do not restore a previous input; if transfer storage is unavailable, the link still opens the tool.


## Method

### Validation and collection

Before collection, the same domain validation runs in the browser and on the server boundary. Requests are restricted to supported public DNS names and HTTPS roots, redirects are bounded, response sizes are capped and abort signals are propagated. These limits make the observation reproducible and prevent an entered value from becoming an unrestricted network fetch.

Use the input modes above to determine which requests run. DNS evidence comes from a public recursive view and can reflect cache state. Local classification cannot add observations absent from the supplied evidence. A server lookup is a fresh observation, not confirmation that cached or pasted evidence is still current.

### Classification rules

The server fetches the public HTTPS root with bounded redirects, headers and body size. The detector matches explicit header values, cookie names, generator metadata, script and stylesheet paths, and small HTML signatures. [RFC 9110 section 5](https://www.rfc-editor.org/rfc/rfc9110#section-5) supplies the field parsing model and [RFC 9110 section 15](https://www.rfc-editor.org/rfc/rfc9110#section-15) supplies response status meaning. It does not run JavaScript, crawl assets or infer a product merely from generic words.

No confidence percentage is invented. When sources disagree, the disagreement is a finding. When a source is unavailable, the affected conclusion becomes informational or inconclusive rather than silently using a previous result. Catalog matches are exact bounded rules; unknown is a valid outcome.

### Ordering and export

The renderer calculates all findings from the current observation before updating the verdict, chips, evidence and landing cards. Status priority is fail, check, info, pass. Stable secondary ordering keeps repeated runs readable without changing severity.

The Markdown mirror documents the tool’s method, findings and limitations in text form. It does not contain your entered input, live lookup results, browser state or expanded educational cards. Select the evidence you need from the current result when preparing a report. Agents should cite the observation time and limitation alongside any exported conclusion.

## Standards and conformance

### Applied specifications

| Source | Rule used | Boundary |
| --- | --- | --- |
| [RFC 9110 section 9.3.1](https://www.rfc-editor.org/rfc/rfc9110#section-9.3.1) | GET retrieves a representation | Only the root representation is requested |
| [RFC 9110 section 5](https://www.rfc-editor.org/rfc/rfc9110#section-5) | Field names are case-insensitive metadata | Known field signatures are matched after safe parsing |
| [RFC 9110 section 15](https://www.rfc-editor.org/rfc/rfc9110#section-15) | Status codes describe the response outcome | Error and challenge pages are explicitly warned |
| [HTML Living Standard, metadata](https://html.spec.whatwg.org/multipage/semantics.html#the-meta-element) | meta elements can carry generator information | Generator content is evidence, not an authenticity guarantee |

These references define the records and message semantics, not the provider catalogs. A catalog is product logic and can lag branding, acquisitions or custom deployments. Where a standard permits several valid configurations, the tool reports the observed form and avoids declaring one commercial pattern universally correct.

### Where conformance stops

The checker is an observer, not an authoritative DNS server, browser, certificate monitor, mail receiver or provider control plane. It does not claim protocol conformance for the target. It applies selected validation and interpretation rules to bounded evidence and exposes the boundary where a fuller protocol operation would begin.

The phrase “public” refers to the server's Internet view. Private split-horizon answers, authenticated dashboards and regional routing can differ. Cached answers can remain until TTL expiry, and HTTP intermediaries can transform what the origin sent.

## Finding reference

### Emitted findings

| Finding | Severity | Meaning | Repair or next check |
| --- | --- | --- | --- |
| Technology detected | Pass | A bounded catalog signature matched | Confirm in deployment files or response configuration |
| Version announced | Check | Public evidence exposes a product version | Remove the version where practical; patching remains primary |
| HTML truncated | Info | Only the first 256 KiB was inspected | Inspect later markup or assets locally |
| HTTP error response | Check | Evidence may describe an error or challenge page | Repeat from an authorised path to the normal page |
| No HTML inspected | Info | Content-Type was not HTML | Interpret header-only matches narrowly |
| Redirect observed | Info | The final host or route differs | Inspect both source and destination |
| No known technology | Info | No catalog signature matched | Treat the stack as unknown rather than absent |

Wording can include the observed name, count, provider or status. Automated consumers should use the supplied status and evidence rather than parsing the English title as a permanent identifier. A missing finding is not evidence that the corresponding external condition is absent when its source could not be collected.

### Status handling

| Status | Consumer action | What not to infer |
| --- | --- | --- |
| Pass | Preserve the evidence and continue normal review | Permanent correctness, ownership or availability |
| Check | Confirm intent and inspect the named evidence | Definite compromise or outage |
| Fail | Prioritise the concrete broken rule and verify independently | That every user sees the same failure |
| Info | Carry the limitation or neutral fact with the report | Success merely because no failure was emitted |

## Guide

### Verify independently

Start with an authoritative or widely used command-line client. For DNS, use `dig` with the exact record type and compare every returned owner, target and TTL. Add `+trace` only when delegation matters; a trace and a recursive answer solve different questions. For HTTPS, use `curl -I --location https://host/` and retain each hop and response field. For certificates, use an established TLS client and a CT monitor you trust.

Repeat from another network when geography or split routing could matter. Save the observation time and the original evidence before editing. After a DNS change, wait at least the prior TTL and then query both the intended authorities and independent recursive resolvers.

### Repair safely

Do not delete an unfamiliar record or reroute a public name merely because a catalog labels it. First identify the owning service, deployment repository or provider account. Confirm whether the item is current, a migration remnant, a failover path or a delegated responsibility. Make the smallest reversible change, keep the prior value, and have a rollback trigger.

Re-run this page after propagation, then verify the user-visible service. A clean public lookup cannot prove application health. Conversely, an informational unknown does not require a speculative change.

### Diagnose conflicting evidence

When two signals disagree, ask whether they describe different layers: apex versus www, resolver cache versus authority, CDN edge versus origin, entered host versus redirected host, or certificate history versus current DNS. Compare literal evidence before comparing labels. The disagreement itself often reveals a migration or intermediary.

If a lookup fails, preserve the error and retry once. Repeated timeouts are not equivalent to empty data. Use the specialist tool linked by the finding for deeper parsing rather than converting an inconclusive aggregate result into a failure.

### Break it and heal it

Break it uses the pasted source or the response captured by the last successful lookup: it can add illustrative version headers, keep only the existing headers, or create a labelled error-response example. Heal it can remove announced version numbers from response headers or preview an HSTS header locally. It never rewrites versioned script URLs, deploys configuration or changes the live site. The HSTS preview omits includeSubDomains; review HTTPS readiness and policy before publishing any header. Lookup failures and JSON input do not offer these repairs.

The Break it controls create documented edge cases from the visitor's own input or a reserved fixture. They are teaching states, not scans. Heal it restores a safe derived value when the repair is deterministic. Revert remains available when several changes have been made.

Use these cases to learn how invalid, missing, mixed or stale evidence appears before diagnosing production. The control never edits DNS, hosting, certificates or provider accounts.

## Worked example

The live default is `mozilla.org`. It fills several technology categories from inspectable evidence and demonstrates the final-host response facts. The names and versions remain live observations and are not embedded as permanent claims.

Read the example from verdict to Findings, then compare the literal evidence. Open one Break it case and use Heal it or Revert. Finally, replace the default with a domain you are authorised to assess. This sequence demonstrates both the successful path and the failure contract without implying that the named public domain endorses the tool.

## For agents

Agents can discover the `website_technology` operation through Tamperbox MCP. The browser page id `website-technology` is not the operation name. The server operation and browser renderer can expose different fields; inspect the operation schema before supplying arguments. Preserve the result's distinction between observed evidence, catalog inference and limitation. State whether the run was live or pasted, include the cleaned target and observation time, and never turn “not found” into “does not exist” unless the method truly establishes that condition.

Choose a specialist operation when the task is narrow. Use this page's report when its combined view or educational findings add value. Do not pass credentials, private hostnames or customer data into a public lookup. If a repair would change production, present the exact evidence, expected effect, propagation window and rollback before acting.

Machine readers should branch on status and structured fields where available, not English punctuation. Treat network and parse errors as inconclusive. Re-run after a meaningful interval rather than repeatedly polling a third-party source.

## Limits

Signature detection has false positives and false negatives. Reverse proxies can add headers, build tools can leave stale metadata, products can remove branding, and client-side code can load after the bounded response. The checker does not execute scripts, authenticate, scan dependencies, test vulnerabilities or establish who operates a detected product.

All outputs are point-in-time observations. Resolver caching, negative caching, anycast, geo steering, redirects and intermittent upstream failures can change a later run. The service does not retain a monitoring history or notify on change. Local History is an interaction aid, not durable evidence.

No result grants permission to probe a target or modify it. Use authorised accounts and owner-approved procedures for deeper checks. Where business, security or legal decisions depend on attribution, obtain confirmation from the responsible provider or domain operator.

## References

- [RFC 1034](https://www.rfc-editor.org/rfc/rfc1034), Domain Names — Concepts and Facilities, especially [section 4.3.2](https://www.rfc-editor.org/rfc/rfc1034#section-4.3.2) for resolver behavior.
- [RFC 1035](https://www.rfc-editor.org/rfc/rfc1035), Domain Names — Implementation and Specification, especially [section 3.2.1](https://www.rfc-editor.org/rfc/rfc1035#section-3.2.1) for resource-record types and classes.
- [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110), HTTP Semantics, especially [section 3.7](https://www.rfc-editor.org/rfc/rfc9110#section-3.7) for intermediaries and [section 15](https://www.rfc-editor.org/rfc/rfc9110#section-15) for status codes when HTTP evidence is collected.
- [Tamperbox Website Technology Detector](https://tamperbox.dev/website-technology), the interactive tool and current Markdown mirror.
