{
  "version": "1.0",
  "title": "Starea infrastructurii web .RO 2026",
  "published": "2026-09-17",
  "sample": {
    "defaultSource": "https://netapi.com/netapi_top1mln.csv",
    "description": "Selectăm primele 500 de domenii care se termină în .ro dintr-un ranking public de top 1 milion, păstrând ordinea rankingului. Scannerul acceptă și --input pentru un fișier ranking înghețat, astfel încât o ediție publicată să poată fi reprodusă exact.",
    "defaultSize": 500,
    "tld": ".ro",
    "selection": "first N .ro domains encountered in source ranking order"
  },
  "scanner": {
    "runtime": "Node.js 22+",
    "userAgent": "BeOnlineResearchBot/1.0 (+https://be-online.ro/cercetare/starea-infrastructurii-web-ro-2026)",
    "defaultConcurrency": 8,
    "defaultTimeoutMs": 8000,
    "dnsResolver": "Cloudflare DNS-over-HTTPS JSON endpoint",
    "ssrfProtection": "HTTP/TLS requests are pinned to DNS-over-HTTPS-resolved public addresses; private, loopback, link-local, multicast and documentation ranges are rejected.",
    "contentPolicy": "No page-body crawling. The scanner reads only minimal response headers plus up to 64 KiB of robots.txt to discover Sitemap directives."
  },
  "metrics": {
    "https": "HTTPS endpoint returns a TLS-valid HTTP response to a HEAD request.",
    "ipv6": "An AAAA record exists for the measured domain.",
    "dnssec": "A DS record exists at the measured domain delegation.",
    "mx": "At least one MX record exists.",
    "spf": "At least one TXT record begins with v=spf1.",
    "dmarc": "At least one TXT record at _dmarc.<domain> begins with v=DMARC1.",
    "dmarc_enforcing": "DMARC policy p=quarantine or p=reject.",
    "hsts": "The HTTPS root response includes Strict-Transport-Security.",
    "http_to_https": "Port 80 returns a standard HTTP redirect whose Location begins with https://.",
    "http2": "A direct TLS ALPN negotiation selects h2.",
    "http3_advertised": "The HTTPS root response advertises h3 through Alt-Svc; this does not prove an end-to-end HTTP/3 request completed.",
    "robots_txt": "GET /robots.txt returns an HTTP status from 200 through 399.",
    "sitemap": "Either robots.txt contains a Sitemap directive or HEAD /sitemap.xml returns an HTTP status from 200 through 399.",
    "https_headers_ms": "Elapsed time from initiating the pinned HTTPS request until response headers arrive. Reported only as an observation from the scanner location, never as a hosting-provider ranking."
  },
  "publication": {
    "rawDomainNamesPublic": false,
    "publicDataset": "Pseudonymous site ID, ranking bucket and measured signals only.",
    "privateDataset": "Domain name, source rank, SHA-256 and errors are retained locally for verification and are not published.",
    "license": "CC BY 4.0 for BeOnline-produced aggregate/public measurement data. Upstream ranking data keeps its own terms and attribution.",
    "corrections": "salut@be-online.ro"
  },
  "limitations": [
    "The sample represents domains visible in the selected popularity ranking, not every registered .ro domain.",
    "A domain may outsource DNS, email, CDN or security to third parties, so measurements must not be attributed to a hosting company without separate evidence.",
    "Regional/CDN behavior may differ from the scanner's network location.",
    "A single response-header timing observation is not a performance benchmark.",
    "Automated probes may be blocked or treated differently by some websites."
  ]
}
