User Tools

Site Tools


provenance:programming:traffic_files

This is an old revision of the document!


Provenance: programming:traffic_files

Working notes behind traffic_files — every query with its population and denominator, the scripts and their unedited output, the folds and their residue, the hand classification and its deciding sentences, the figures checked against the source papers, the external sources and how each was verified, and what could not be established. Corpus-level caveats that apply to every page on this site are on corpus and are not restated here.

1. What this page is backing

Item Value
Content page traffic_files
Report script scripts/report_traffic_files.mjs
Folds it depends on scripts/traffic_fold.mjs — a capture-instrument regex fold and a HAR verdict hand classification
Per-paper figure verification scripts/verify_traffic_figures.mjs
External-fact re-check scripts/external_checks_traffic_files.sh
Runnable experiments sandbox/fixture_traffic.mjs, sandbox/har_vs_cdp.mjs, sandbox/mitm_vs_browser.mjs, sandbox/har_vs_cdp_core.mjs
Stale-number guard scripts/check_page_numbers.mjs
Data data/extract/run1/extractions.jsonl — 5,859 papers, 7 venues, 2010–2026
Written 2026-08-14, against the corpus as extended on 2026-08-11 (commit 8a6b843)

This page is new, not an extension. start has promised Programming:Traffic files (“using traffic files, e.g., HAR”) since before this corpus existed, and ip_classification links to it twice — once for serverIPAddress and once for “extracting server addresses from a HAR or a packet capture”, both marked not yet written. Nothing on the wiki overlapped: crawler covers what drives the browser and stops at the control channel; archives covers reading somebody else's recording (WARC, the Wayback Machine) and explicitly not making your own; requests starts after you already have the requests. The gap this page fills is the artefact in between.

Judgement call on scope. The item as specified asked for “the HAR schema, what it loses versus a full CDP trace, mitmproxy/mitmdump, and browser-native export”. We widened it to include packet capture, because the corpus makes that unavoidable: tcpdump and Wireshark are the two most-named capture instruments in it (119 and 128 papers) and a page that omitted them would misrepresent what the literature does. We did not widen it to replay and archiving beyond one section, because archives already covers that well and duplicating it would have been worse than cross-linking.

2. Populations and denominators

Three separate populations, because no single field in the extraction means “wrote a traffic file”.

Tag Definition N
CAP ≥1 tools[] tuple with category ∈ {traffic-capture, proxy-interception} and usedOrMentioned ∈ {used, produced} 679
CAP ∩ traffic-capture 509
CAP ∩ proxy-interception 206
both 36
ON CAP ∧ the tool name folds to a non-offtopic family in CAPTURE_FAMILIES 511
OFF-only CAP ∧ every folded family is offtopic — excluded from the page 165
ON ∧ web platforms includes web — the denominator for the layer flip 186
HAR-SWEEP paper.cols.txt matches the HAR regex printed in §5 (DokuWiki tables cannot hold a literal pipe, so it is not repeated here) 95
HAR-SWEEP ∧ verdict instrument the page's HAR population 32
CRAWL crawlConfig !== null OR studyTypes contains automated-web-crawl 1,120

usedOrMentioned is filtered to used/produced everywhere. Including compared and mentioned would count a paper that named Wireshark as related work as a paper that captured packets.

2.1 Why CAP is not the population

traffic-capture on a seven-venue security corpus is not a web-measurement category. Of 679 papers, 165 name only instruments that produce no web traffic file at all. Those are folded into six explicitly named offtopic: families and excluded with a printed count:

Excluded family Papers Examples of the names in it
radio / SDR / RF sniffer 90 USRP, HackRF, bladeRF, LimeSDR, Ubertooth, Proxmark, Kismet, nexmon, gr-gsm, TI CC2531
commercial VPN / residential proxy (a vantage point, not an instrument) 39 Luminati, Bright Data, ProxyRack, NordVPN, Mullvad, Hola, Hide My Ass, Proxychains, Tor
hardware probe / lab instrument 30 oscilloscopes, spectrum analysers, ChipWhisperer, Monsoon power monitor, OBS Studio, arecord
host / side-channel instrumentation 30 Mastik, Flush+Reload, Prime+Probe, Intel Pin, strace, perf, Process Monitor, netstat
traffic generation / replay load 17 tcpreplay, iperf3, TGen, DPDK Pktgen, Harpoon, Resperf
passive dataset / telescope / vantage platform 17 UCSD Network Telescope, MAWI, LANDER, BGPStream, RIPE Atlas

A paper can match several families, so the rows sum to more than the union (217 papers match at least one off-topic family; 165 match only off-topic families).

The VPN row is the one a reasonable person could disagree with. A commercial VPN in a proxy-interception tuple is a vantage point, which is crawling_location's subject, not an instrument that writes a file. We excluded it. The residential-proxy question is genuinely two questions and this page answers only one of them.

3. Running it

cd /workspace/artifacts/wiki
 
# every figure on the page, with its denominator
node scripts/report_traffic_files.mjs                > out/traffic_files-output.txt
node scripts/report_traffic_files.mjs --list         > out/traffic_files-list.txt
node scripts/report_traffic_files.mjs --wiki                        # DokuWiki tables
node scripts/report_traffic_files.mjs --quotes 'mitm'               # evidence behind a family
 
# every literal per-paper figure and quote, checked against paper.cols.txt
node scripts/verify_traffic_figures.mjs              > out/traffic_files_figures.txt
 
# every external fact, re-checked against its primary source (needs network)
sh scripts/external_checks_traffic_files.sh          > out/traffic_files_external.txt 2>&1
 
# the two experiments (needs Playwright's headless_shell and mitmproxy)
export PLAYWRIGHT_BROWSERS_PATH=/workspace/.playwright
export PW_EXEC=$(ls -d /workspace/.playwright/chromium_headless_shell-*/chrome-linux/headless_shell | head -1)
cd sandbox && node fixture_traffic.mjs &            # http://127.0.0.1:8098/
node sandbox/har_vs_cdp.mjs                          > out/har_vs_cdp-output.txt
node sandbox/har_vs_cdp_core.mjs                     > out/har_vs_cdp_core-output.txt
MITMDUMP=/tmp/mitmlib/bin/mitmdump MITMLIB=/tmp/mitmlib \
  node sandbox/mitm_vs_browser.mjs                   > out/mitm_vs_browser-output.txt
MITMDUMP=/tmp/mitmlib/bin/mitmdump MITMLIB=/tmp/mitmlib \
  node sandbox/mitm_vs_browser.mjs https://example.com/ > out/mitm_vs_browser-remote-output.txt
 
# stale-number guard, whole page, including <file> blocks
cat out/traffic_files-output.txt out/traffic_files-list.txt out/traffic_files_figures.txt \
    out/har_vs_cdp-output.txt out/mitm_vs_browser-output.txt \
    out/mitm_vs_browser-remote-output.txt out/traffic_files_external.txt \
    > out/traffic_files_all_evidence.txt
node scripts/check_page_numbers.mjs pages/programming_traffic_files.txt \
    out/traffic_files_all_evidence.txt --code

The guard reports OK — every figure in the page traces to out/traffic_files_all_evidence.txt as of 2026-08-14. It took three passes to get there, and each one found something — see §9.

4. The capture-instrument fold

CAPTURE_FAMILIES in scripts/traffic_fold.mjs is an ordered list of regex families; first match wins, so offtopic families are listed first and specific names come before the generic patterns that would also swallow them (“tcpdump with PF_RING” must be packet capture, not high-rate hardware; “Tor SOCKS proxy server” must be a vantage point, not a TLS interceptor).

Family Layer Papers Distinct spellings
offtopic: radio / SDR / RF sniffer offtopic 90 105
offtopic: commercial VPN / residential proxy offtopic 39 39
offtopic: hardware probe / lab instrument offtopic 30 34
offtopic: host / side-channel instrumentation offtopic 30 29
offtopic: traffic generation / replay load offtopic 17 12
offtopic: passive dataset / telescope offtopic 17 16
packet capture (libpcap family) packet 287 72
TLS-intercepting proxy proxy 189 79
IDS / stream analyser packet 28 10
on-device mobile / IoT capture mobile 21 15
high-rate capture (kernel / NIC offload) packet 15 9
flow-level export (NetFlow / IPFIX) flow 13 11
record-and-replay / web archive browser 9 9
browser-native HTTP log (HAR / NetLog) browser 8 8

Unmapped residue: 9 distinct names across 9 papers, printed in full by the report and reproduced here so it does not live only in a local file:

Google Translate (1); browser add-on we designed (1); custom program (1); lb (1);
Facebook tracking pixel (1); SSL measurements (1); custom addon script (1);
custom tracing plugin (1); iPhone 16 (1)

All nine were read by hand. Six are extraction noise in a capture category (“Google Translate”, “Facebook tracking pixel”, “iPhone 16”, “lb”, “custom program”, “SSL measurements”). Three are genuinely unidentifiable instruments — “browser add-on we designed”, “custom addon script”, “custom tracing plugin” — where the paper names no tool at all. Leaving them unmapped is the honest outcome: they belong to no family because the paper does not say which.

Spelling variance, which is why the fold exists at all. tcpdump appears as tcpdump, Tcpdump, TCPdump, TCPDump, TCPDUMP, TCP-Dump, tcpdump/libpcap and tcpdump with PF_RING; Wireshark as Wireshark, WireShark, Wireshark GUI, WireShark/tshark, custom Wireshark dissectors and Wireshark plugin; mitmproxy as mitmproxy, Mitmproxy, MitmProxy, MITMProxy, mitm-proxy, mitmproxy.io, Customized Mitm Proxy and mitmdump.

5. The HAR sweep and its hand classification

The tool schema sees HAR in 10 papers. That is not a measurement of the field; it is a measurement of what people bother to call a tool. So the HAR population comes from a full-text sweep of every data/fulltext/<year>/<venue>/<slug>/paper.cols.txt (5,855 of the 5,859 records have one), matching

/\bHAR\b|HTTP Archive|HTTP archive|\.har\b|HttpArchive|httparchive/

95 papers match. HAR_VERDICT in scripts/traffic_fold.mjs carries one verdict and one deciding sentence per paper; the report fails loudly if the sweep returns a paper the map does not cover, or if the map covers a paper the sweep no longer returns.

Verdict Meaning Papers
citation httparchive.org or the Web Almanac cited for a background statistic 36
instrument the paper writes and/or reads HAR files as its own data 32
dataset the paper analyses the httparchive.org crawl corpus 14
homograph “HAR” means something else entirely 11
mention HAR discussed but not used 2

5.1 The homographs, in full

This is the part that cannot be automated, and the reason the verdicts are hand-made.

Paper What “HAR” means there
NDSS 2025 radsee-… “human activity recognition (HAR) using different sensing”
NDSS 2024 campro-… “Vision-based human activity recognition (HAR)”
NDSS 2026 svdefense-… “Human Activity Recognition (HAR). HAR identifies daily activities like walking or sitting”
NDSS 2026 beyond-conventional-triggers-… “the Human Activity Recognition Dataset (KU-HAR)”
PETS 2026 sensor-privacy-as-a-spectrum-… “three widely-used benchmarks: UCI-HAR … UTAH-STM-HAR”
CCS 2019 privacy-risks-of-securing-machine-learning-models-… “the UCI Human Activity Recognition (HAR) dataset”
CCS 2025 harnessing-vital-sign-vibration-harmonics-… “we derive the Harmonic Amplitude Ratio (HAR)”
USENIX 2023 sqirl-… a surname split across a column break: “S HAR , L. K.”
USENIX 2019 stack-overflow-considered-helpful-… “B HAR - GAVA”
USENIX 2018 schrodinger-s-rat-… “D HAR - MDASANI”
CCS 2023 large-language-models-for-code-security-… an identifier split across a column break: “IS_WORD_C HAR”

Four of the eleven are artefacts of the corpus's own two-column repair, not of the papers. That is worth knowing generally: a full-text regex over this corpus will match text that does not exist as a token in the PDF.

5.2 The two "mention" verdicts

Both were candidates for instrument and were rejected on reading:

  • IMC 2011 towards-understanding-modern-web-traffic — “While their use of HTTP archive record (HAR) format [25] allows a precise detection of page load events, their data set consists of only the top-level pages of randomly chosen 2,000 Web sites”. That is a comparison to related work; this paper captures packets.
  • PETS 2022 fp-radar-… — “HTTP Archive [38] is a related project that archives millions of URLs each month. However, it does not store …”. Considered and rejected in favour of the Wayback Machine.

5.3 The 32 instrument papers

Venue Year Slug
IMC 2011 understanding-website-complexity-measurements-metrics-and-implications
NDSS 2015 parking-sensors-analyzing-and-detecting-parked-domains
IMC 2017 the-ad-wars-retrospective-measurement-and-analysis-of-anti-adblock-filter-lists
USENIX 2017 characterizing-the-nature-and-dynamics-of-tor-exit-blocking
IEEE-SP 2018 surveylance-automatically-detecting-online-survey-scams
WWW 2018 proxytorrent-untangling-the-free-http-s-proxy-ecosystem
IMC 2019 an-empirical-study-of-the-cost-of-dns-over-https
PETS 2019 4-years-of-eu-cookie-law-results-and-lessons-learned
PETS 2019 oblivious-dns-practical-privacy-for-dns-queries
WWW 2020 comparing-the-effects-of-dns-dot-and-doh-on-web-performance
WWW 2020 jscleaner-de-cluttering-mobile-webpages-through-javascript-cleanup
WWW 2020 understanding-the-performance-costs-and-benefits-of-privacy-focused-browser-exte
IEEE-SP 2021 crawlphish-large-scale-analysis-of-client-side-cloaking-techniques-in-phishing
PETS 2021 oblivious-dns-over-https-odoh-a-practical-privacy-enhancement-to-dns
WWW 2021 its-not-just-the-site-its-the-contents-intra-domain-fingerprinting-social-media
WWW 2021 where-are-you-taking-me-understanding-abusive-traffic-distribution-systems
IMC 2022 respect-the-origin-a-best-case-evaluation-of-connection-coalescing-in-the-wild
PETS 2022 are-iphones-really-better-for-privacy-a-comparative-study-of-ios-and-android-app
IMC 2023 the-prevalence-of-single-sign-on-on-the-web-towards-the-next-generation-of-web-c
PETS 2023 evaluating-practical-quic-website-fingerprinting-defenses-for-the-masses
USENIX 2023 reversing-breaking-and-fixing-the-french-legislative-election-e-voting-protocol
IMC 2024 diffaudit-auditing-privacy-practices-of-online-services-for-children-and-adolesc
IMC 2024 of-choices-and-control-a-comparative-analysis-of-government-hosting
IMC 2024 replication-taking-a-long-look-at-quic
WWW 2024 quic-is-not-quick-enough-over-fast-internet
IEEE-SP 2025 only-as-strong-as-the-weakest-link-on-the-security-of-brokered-single-sign-on-on
IMC 2025 where-in-the-world-are-my-trackers-mapping-web-tracking-flow-across-diverse-geog
PETS 2025 gig-work-at-what-cost-exploring-privacy-risks-of-gig-work-platform-participation
PETS 2025 tracker-installations-are-not-created-equal-understanding-tracker-configuration
USENIX 2025 web-execution-bundles-reproducible-accurate-and-archivable-web-measurements
IEEE-SP 2026 setting-the-course-but-forgetting-to-steer-analyzing-compliance-with-gdprs-right
PETS 2026 more-space-less-privacy-measuring-the-effectiveness-of-ip-based-website-fingerpr

The deciding sentence for every one is in HAR_VERDICT and printed by report_traffic_files.mjs §E.

5.4 The writer probe is an upper bound, and the page says so

“Does the paper say which writer produced the HAR” cannot be answered from the schema, so it is a keyword probe over the full text of the 32 instrument papers. It finds a recognisable writer in 25 (78.1%). It over-counts: a paper that cites Selenium anywhere scores a hit for “Selenium / WebDriver” (13 of the 25) whether or not Selenium wrote the HAR — and Selenium cannot write one. The probe is published because the negative side is sound: the 7 papers it finds nothing in genuinely name no writer.

6. Unedited report output

The full output of node scripts/report_traffic_files.mjs is below, unedited. –list output (the 511-paper population with its families) is not reproduced here for length; regenerate it with the command in §3.

report_traffic_files.txt
corpus: 5859 papers, 7 venues, 2010–2026
data root: /workspace/publications_dataset/data
 
 
==== A. POPULATION ====
 
Any tool tuple in category traffic-capture, used or produced   509
Any tool tuple in category proxy-interception, used or produced 206
Union (the raw capture-tooling population)                      679
Overlap                                                          36
Of the union, platforms includes "web"                           217
Of the union, ran an automated web crawl                         178
 
Distinct tool names across both categories (used/produced): 457
 
── Capture-instrument families (of 679 papers naming any capture or proxy tool) ──
Family                                                          Layer     Papers  Share  Spellings
--------------------------------------------------------------  --------  ------  -----  ---------
offtopic: radio / SDR / RF sniffer                              offtopic  90      13.3%  105
offtopic: hardware probe / lab instrument                       offtopic  30      4.4%   34
offtopic: host / side-channel instrumentation                   offtopic  30      4.4%   29
offtopic: traffic generation / replay load                      offtopic  17      2.5%   12
offtopic: commercial VPN / residential proxy (a vantage point)  offtopic  39      5.7%   39
offtopic: passive dataset / telescope / vantage platform        offtopic  17      2.5%   16
browser-native HTTP log (HAR / NetLog)                          browser   8       1.2%   8
record-and-replay / web archive                                 browser   9       1.3%   9
TLS-intercepting proxy                                          proxy     189     27.8%  79
packet capture (libpcap family)                                 packet    287     42.3%  72
flow-level export (NetFlow / IPFIX)                             flow      13      1.9%   11
IDS / stream analyser                                           packet    28      4.1%   10
high-rate capture (kernel / NIC offload)                        packet    15      2.2%   9
on-device mobile / IoT capture                                  mobile    21      3.1%   15
 
On-topic families, union of papers      511
Off-topic families, union of papers     217
Off-topic ONLY (excluded from the page) 165
  (sum of family counts != union: a paper may match several families)
Unmapped residue: 9 distinct names, 9 papers
  Google Translate (1); browser add-on we designed (1); custom program (1); lb (1); Facebook tracking pixel (1); SSL measurements (1); custom addon script (1); custom tracing plugin (1); iPhone 16 (1)
 
── Capture layer (of 511 papers naming an on-topic capture instrument) ──
Layer    Papers  Share
-------  ------  -----
packet   318     62.2%
proxy    189     37.0%
mobile   21      4.1%
browser  17      3.3%
flow     13      2.5%
 
── Capture layer, web subset only (of 186 on-topic papers whose platform includes web) ──
Layer    Papers  Share of web subset
-------  ------  -------------------
proxy    92      49.5%
packet   86      46.2%
browser  13      7.0%
mobile   5       2.7%
flow     4       2.2%
 
── Named instruments in the on-topic families (papers; of 679) ──
Instrument                                                   Papers  Share
-----------------------------------------------------------  ------  -----
Wireshark / tshark / dumpcap                                 128     18.9%
tcpdump                                                      119     17.5%
mitmproxy / mitmdump                                         98      14.4%
Bro / Zeek                                                   24      3.5%
Scapy                                                        18      2.7%
Burp Suite                                                   18      2.7%
Fiddler                                                      15      2.2%
PF_RING                                                      12      1.8%
HAR (browser HTTP log)                                       10      1.5%
record-and-replay (WPR / pywb / Mahimahi)                    8       1.2%
Charles Proxy                                                5       0.7%
proxy libraries in the crawler (selenium-wire / BrowserMob)  4       0.6%
NetLog (Chrome)                                              3       0.4%
OWASP ZAP                                                    2       0.3%
 
 
==== B. IS THE INSTRUMENT IDENTIFIED? ====
 
── Version reporting ──
Tuples in on-topic capture families: 662; state a version: 84 (12.7%)
Tool              Papers  Tuples  Tuples with a version  Share
----------------  ------  ------  ---------------------  -----
Wireshark/tshark  121     130     16                     12.3%
tcpdump           119     119     4                      3.4%
mitmproxy         98      101     25                     24.8%
 
 
==== C. DRIFT OVER TIME ====
 
── Capture layer over time, share of the papers in each bucket that name an on-topic instrument ──
Bucket      Papers  On-topic  Share  packet  proxy  browser  flow  mobile
----------  ------  --------  -----  ------  -----  -------  ----  ------
2010–2013   511     53        10.4%  37      15     3        2     1
2014–2017   769     95        12.4%  59      33     2        2     3
2018–2021   1439    109       7.6%   67      39     4        4     6
2022–2024   1955    157       8.0%   98      59     6        3     9
2025–2026*  1185    97        8.2%   57      43     2        2     2
* 2025–2026 is provisional: CCS 2026 and IMC 2026 have not been held, and IEEE S&P/WWW 2026 abstracts are not fully in OpenAlex.
 
 
==== D. HAR: THE FULL-TEXT SWEEP AND ITS HOMOGRAPHS ====
 
── Full-text sweep ──
Papers with a paper.cols.txt: 5855
Matching /HAR|HTTP Archive|httparchive/: 95
Hand-classified: 95; UNCLASSIFIED (fix the hand map): 0
 
Verdict     Papers  Share of the sweep
----------  ------  ------------------
instrument  32      33.7%
dataset     14      14.7%
citation    36      37.9%
mention     2       2.1%
homograph   11      11.6%
 
── The 32 papers that use HAR as their own instrument ──
Venue    Year  Slug
-------  ----  --------------------------------------------------------------------------------
IMC      2011  understanding-website-complexity-measurements-metrics-and-implications
NDSS     2015  parking-sensors-analyzing-and-detecting-parked-domains
IMC      2017  the-ad-wars-retrospective-measurement-and-analysis-of-anti-adblock-filter-lists
USENIX   2017  characterizing-the-nature-and-dynamics-of-tor-exit-blocking
IEEE-SP  2018  surveylance-automatically-detecting-online-survey-scams
WWW      2018  proxytorrent-untangling-the-free-http-s-proxy-ecosystem
IMC      2019  an-empirical-study-of-the-cost-of-dns-over-https
PETS     2019  4-years-of-eu-cookie-law-results-and-lessons-learned
PETS     2019  oblivious-dns-practical-privacy-for-dns-queries
WWW      2020  comparing-the-effects-of-dns-dot-and-doh-on-web-performance
WWW      2020  jscleaner-de-cluttering-mobile-webpages-through-javascript-cleanup
WWW      2020  understanding-the-performance-costs-and-benefits-of-privacy-focused-browser-exte
IEEE-SP  2021  crawlphish-large-scale-analysis-of-client-side-cloaking-techniques-in-phishing
PETS     2021  oblivious-dns-over-https-odoh-a-practical-privacy-enhancement-to-dns
WWW      2021  its-not-just-the-site-its-the-contents-intra-domain-fingerprinting-social-media
WWW      2021  where-are-you-taking-me-understanding-abusive-traffic-distribution-systems
IMC      2022  respect-the-origin-a-best-case-evaluation-of-connection-coalescing-in-the-wild
PETS     2022  are-iphones-really-better-for-privacy-a-comparative-study-of-ios-and-android-app
IMC      2023  the-prevalence-of-single-sign-on-on-the-web-towards-the-next-generation-of-web-c
PETS     2023  evaluating-practical-quic-website-fingerprinting-defenses-for-the-masses
USENIX   2023  reversing-breaking-and-fixing-the-french-legislative-election-e-voting-protocol
IMC      2024  diffaudit-auditing-privacy-practices-of-online-services-for-children-and-adolesc
IMC      2024  of-choices-and-control-a-comparative-analysis-of-government-hosting
IMC      2024  replication-taking-a-long-look-at-quic
WWW      2024  quic-is-not-quick-enough-over-fast-internet
IEEE-SP  2025  only-as-strong-as-the-weakest-link-on-the-security-of-brokered-single-sign-on-on
IMC      2025  where-in-the-world-are-my-trackers-mapping-web-tracking-flow-across-diverse-geog
PETS     2025  tracker-installations-are-not-created-equal-understanding-tracker-configuration
PETS     2025  gig-work-at-what-cost-exploring-privacy-risks-of-gig-work-platform-participation
USENIX   2025  web-execution-bundles-reproducible-accurate-and-archivable-web-measurements
IEEE-SP  2026  setting-the-course-but-forgetting-to-steer-analyzing-compliance-with-gdprs-right
PETS     2026  more-space-less-privacy-measuring-the-effectiveness-of-ip-based-website-fingerpr
 
By year bucket: 2010–2013 1 | 2014–2017 3 | 2018–2021 12 | 2022–2024 9 | 2025–2026* 7
By venue: IMC 9 | PETS 8 | WWW 7 | IEEE-SP 4 | USENIX 3 | NDSS 1
 
── How many HAR-instrument papers does a tool-name query find? ──
Of the 32 HAR-instrument papers:
  name HAR / "HTTP Archive" in any tools[] or otherToolsMentioned[] tuple: 9 (28.1%)
  have ANY traffic-capture / proxy-interception tuple at all:              16 (50.0%)
  named in tools[]: PETS/2019/4-years-of-eu-cookie-law-results-and-lessons-learned, WWW/2020/comparing-the-effects-of-dns-dot-and-doh-on-web-performance, WWW/2020/understanding-the-performance-costs-and-benefits-of-privacy-focused-browser-exte, IMC/2024/diffaudit-auditing-privacy-practices-of-online-services-for-children-and-adolesc, IMC/2024/of-choices-and-control-a-comparative-analysis-of-government-hosting, IMC/2024/replication-taking-a-long-look-at-quic, WWW/2024/quic-is-not-quick-enough-over-fast-internet, IEEE-SP/2026/setting-the-course-but-forgetting-to-steer-analyzing-compliance-with-gdprs-right, IEEE-SP/2018/surveylance-automatically-detecting-online-survey-scams
 
── Homographs (why the sweep cannot be automated) ──
  [homograph] USENIX/2018/schrodinger-s-rat-profiling-the-stakeholders-in-the-remote-access-trojan-ecosyst
      Surname split across a column break: "D HAR - MDASANI"
  [homograph] CCS/2019/privacy-risks-of-securing-machine-learning-models-against-adversarial-examples
      "the UCI Human Activity Recognition (HAR) dataset"
  [homograph] USENIX/2019/stack-overflow-considered-helpful-deep-learning-security-nudges-towards-stronger
      Surname split across a column break: "B HAR - GAVA"
  [homograph] CCS/2023/large-language-models-for-code-security-hardening-and-adversarial-testing
      Identifier split across a column break: "IS_WORD_C HAR"
  [homograph] USENIX/2023/sqirl-grey-box-detection-of-sql-injection-vulnerabilities-using-reinforcement-le
      Surname split across a column break: "S HAR , L. K."
  [homograph] NDSS/2024/campro-camera-based-anti-facial-recognition
      "Vision-based human activity recognition (HAR)"
  [homograph] CCS/2025/harnessing-vital-sign-vibration-harmonics-for-effortless-and-inbuilt-xr-user-aut
      "we derive the Harmonic Amplitude Ratio (HAR)"
  [homograph] NDSS/2025/radsee-see-your-handwriting-through-walls-using-fmcw-radar
      "human activity recognition (HAR) using different sensing"
  [homograph] NDSS/2026/svdefense-effective-defense-against-gradient-inversion-attacks-via-singular-value-decomposition
      "Human Activity Recognition (HAR). HAR identifies daily activities like walking or sitting"
  [homograph] NDSS/2026/beyond-conventional-triggers-auto-contextualized-covert-triggers-for-android-logic-bombs
      "the Human Activity Recognition Dataset (KU-HAR)"
  [homograph] PETS/2026/sensor-privacy-as-a-spectrum-quantifying-privacy-in-edge-and-multimodal-systems
      "three widely-used benchmarks: UCI-HAR … UTAH-STM-HAR"
  [mention] IMC/2011/towards-understanding-modern-web-traffic
      "While their use of HTTP archive record (HAR) format [25] allows a precise detection of page load events, their data set consists of only …" — describing related work; the paper itself captures packets
  [mention] PETS/2022/fp-radar-longitudinal-measurement-and-early-detection-of-browser-fingerprinting
      "HTTP Archive [38] is a related project that archives millions of URLs each month. However, it does not store …" — considered and rejected in favour of the Wayback Machine
 
── Does a HAR-instrument paper name the writer that produced the file? ──
Of 32 instrument papers, 25 (78.1%) mention at least one recognisable writer somewhere in the full text.
Writer named anywhere in the paper      Papers
--------------------------------------  ------
Selenium / WebDriver                    13
Chrome DevTools / Network panel         8
mitmproxy / a proxy                     6
WebPageTest                             4
chrome-har-capturer                     3
PhantomJS                               3
Puppeteer / Playwright                  2
HARExportTrigger                        1
Firefox pref devtools.netmonitor.har.*  1
sitespeed.io                            1
No recognisable writer named:
  IMC/2011/understanding-website-complexity-measurements-metrics-and-implications
  PETS/2021/oblivious-dns-over-https-odoh-a-practical-privacy-enhancement-to-dns
  PETS/2023/evaluating-practical-quic-website-fingerprinting-defenses-for-the-masses
  USENIX/2023/reversing-breaking-and-fixing-the-french-legislative-election-e-voting-protocol
  IEEE-SP/2025/only-as-strong-as-the-weakest-link-on-the-security-of-brokered-single-sign-on-on
  IEEE-SP/2026/setting-the-course-but-forgetting-to-steer-analyzing-compliance-with-gdprs-right
  PETS/2026/more-space-less-privacy-measuring-the-effectiveness-of-ip-based-website-fingerpr
NOTE: this is a full-text keyword probe, so it OVER-counts — a paper that merely
cites Selenium elsewhere scores a hit. Read it as an upper bound on how often the
HAR writer is identifiable, not as a measurement of correct reporting.
 
── Traffic files inside a crawl ──
Papers that ran an automated web crawl:                       1120
  …that name an on-topic capture instrument in tools[]:      155 (13.8%)
  …that use HAR as an instrument (full-text sweep):          26 (2.3%)
  …union of the two:                                         171 (15.3%)
 
 
==== E. WHAT THE HAR PAPERS SAY THEY DID WITH IT ====
 
── Deciding sentence per instrument paper ──
  IEEE-SP/2018/surveylance-automatically-detecting-online-survey-scams
      "SURVEYLANCE implements HTTP Archive 1.2 specification [44], and stores the network traffic traces as HAR objects"
  IEEE-SP/2021/crawlphish-large-scale-analysis-of-client-side-cloaking-techniques-in-phishing
      "CrawlPhish stores source code using HAR files [57], which capture all HTTP requests/responses"
  IEEE-SP/2025/only-as-strong-as-the-weakest-link-on-the-security-of-brokered-single-sign-on-on
      "Input: HAR Files. We use a public dataset from prior work [34] … Each SSO flow is captured in the JSON-based HAR data format"
  IEEE-SP/2026/setting-the-course-but-forgetting-to-steer-analyzing-compliance-with-gdprs-right
      "we captured interactions with the browser by downloading the HAR (HTTP Archive) files"; HAR logs are the ground truth against which data-download packages are scored
  IMC/2011/understanding-website-complexity-measurements-metrics-and-implications
      Figure 1 is an example HAR snippet; "This extension generates a report in the HTTP archive record (HAR) format [4]"
  IMC/2017/the-ad-wars-retrospective-measurement-and-analysis-of-anti-adblock-filter-lists
      "we store all HTTP requests/responses in a HAR file [25]"; discards partial HARs below 10% of average size
  IMC/2019/an-empirical-study-of-the-cost-of-dns-over-https
      "we use the sitespeed.io project to instruct Firefox for the measurements and collect HAR files with the performance statistics"
  IMC/2022/respect-the-origin-a-best-case-evaluation-of-connection-coalescing-in-the-wild
      "Chrome developer tools were used to retrieve and write the page load data as an HTTP Archive format (HAR) file"
  IMC/2023/the-prevalence-of-single-sign-on-on-the-web-towards-the-next-generation-of-web-c
      "the HTTP transaction log (HAR format)"
  IMC/2024/diffaudit-auditing-privacy-practices-of-online-services-for-children-and-adolesc
      "we export the trace as a HAR (HTTP Archive) file [49], as provided by the Network Panel" for web, PCAP for mobile
  IMC/2024/of-choices-and-control-a-comparative-analysis-of-government-hosting
      "which are then consolidated into an HTTP Archive (HAR) file"
  IMC/2024/replication-taking-a-long-look-at-quic
      "PLT values are extracted from ‘onLoad’ field of HAR files [33] produced by the chrome-har-capturer tool"
  IMC/2025/where-in-the-world-are-my-trackers-mapping-web-tracking-flow-across-diverse-geog
      "recording HAR files and all network requests during page loads"
  NDSS/2015/parking-sensors-analyzing-and-detecting-parked-domains
      "recorded a trace of all HTTP requests initiated by the web page (HAR)"; five of its features are HAR features
  PETS/2019/4-years-of-eu-cookie-law-results-and-lessons-learned
      "they dump to file the HTTP Archive (HAR) [55], a JSON-formatted … We look at all HTTP responses with Set-Cookie header in the HAR file." Also analyses the httparchive.org corpus — counted in both.
  PETS/2019/oblivious-dns-practical-privacy-for-dns-queries
      "Chrome webdriver and record HAR files for each browsing session"
  PETS/2021/oblivious-dns-over-https-odoh-a-practical-privacy-enhancement-to-dns
      "capture the page load session into an HTTP Archive (HAR) file additionally recording the results of the window.performance API"
  PETS/2022/are-iphones-really-better-for-privacy-a-comparative-study-of-ios-and-android-app
      "using mitmproxy to capture network traffic in the HAR format"
  PETS/2023/evaluating-practical-quic-website-fingerprinting-defenses-for-the-masses
      "We perform HAR captures and we identify the protocols used by those websites"
  PETS/2025/gig-work-at-what-cost-exploring-privacy-risks-of-gig-work-platform-participation
      "collect all HTTP traffic generated during our interactions with these platforms in the form of HAR files"
  PETS/2025/tracker-installations-are-not-created-equal-understanding-tracker-configuration
      "both through the network HAR file and using Chrome’s manifest v2 webNavigation feature"
  PETS/2026/more-space-less-privacy-measuring-the-effectiveness-of-ip-based-website-fingerpr
      "we capture HTTP Archive (.har) files to record all domain connections initiated during the browsing session"
  USENIX/2017/characterizing-the-nature-and-dynamics-of-tor-exit-blocking
      "we first rule out cases of client and network errors through HAR file analysis"
  USENIX/2023/reversing-breaking-and-fixing-the-french-legislative-election-e-voting-protocol
      "These are gathered into HTTP Archive format (HAR) files that can be easily generated by major browsers"
  USENIX/2025/web-execution-bundles-reproducible-accurate-and-archivable-web-measurements
      Measures HAR and WARC replay against its own .web format: "we successfully visited 8,523 origins with 311 HAR and 44 WARC (overlapping) issues replaying responses"
  WWW/2018/proxytorrent-untangling-the-free-http-s-proxy-ecosystem
      "Data is collected as an HTTP Archive (HAR); for this, we have extended PhantomJS’s HAR capturer"
  WWW/2020/comparing-the-effects-of-dns-dot-and-doh-on-web-performance
      "For each HAR file that we collected with our automated browser, we extract the onLoad timing"; reports the first-query 0 ms DNS-timing artefact
  WWW/2020/jscleaner-de-cluttering-mobile-webpages-through-javascript-cleanup
      "Webpagetest also records the full waterfall HTTP Archive (HAR) representation of the session"
  WWW/2020/understanding-the-performance-costs-and-benefits-of-privacy-focused-browser-exte
      "we automatically extract the HAR through a modified version of the open source HARExportTrigger extension"
  WWW/2021/its-not-just-the-site-its-the-contents-intra-domain-fingerprinting-social-media
      "We capture the HAR (HTTP Archive) files … by setting the preference devtools.netmonitor.har.enableAutoExportToFile in Firefox"; also runs tcpdump
  WWW/2021/where-are-you-taking-me-understanding-abusive-traffic-distribution-systems
      "Manually investigating HTTP archive files, we verified if any of the 1,339 pages labeled earlier … are truly impersonating"
  WWW/2024/quic-is-not-quick-enough-over-fast-internet
      "Using chrome-har-capturer [12], we build scripts to collect HTTP Archive (HAR) files"
 
 
==== Z. FIGURES ON THE PAGE THAT ARE NOT FROM THIS CORPUS ====
 
Every number below is external to the publications dataset. Its primary source
is recorded on provenance:programming:traffic_files; scripts/external_checks_traffic_files.sh
re-fetches each one.
 
  HAR 1.2                    the spec version every implementation targets (2007 draft, never a W3C Recommendation)
  HAR ISO 8601 / 3-decimal   `startedDateTime` and the `timings` object are milliseconds
  mitmproxy 12.1.2           latest release checked 2026-08-14
  Wireshark 4.6.2            latest stable release checked 2026-08-14
  Okta / Cloudflare Oct 2023 the HAR-file support-ticket incident
  Chrome 127                 "Save all as HAR (with sensitive data)" renaming

7. The two experiments

Both run against sandbox/fixture_traffic.mjs, a local page built specifically to hit the places where the recordings disagree: a three-hop 302 chain, four script-initiated fetch calls, a POST with a JSON body, a 200 KiB response, a route that is never answered, a WebSocket with two frames each way, and an <img> whose origin the page's own CSP forbids.

Environment: Playwright 1.62.1 driving chromium_headless_shell from /workspace/.playwright; mitmproxy 11.0.2 installed into /tmp/mitmlib (the current release is 12.2.3 — the page says so); Linux aarch64; 14 August 2026.

7.1 har_vs_cdp.mjs — full output

har_vs_cdp.txt
fixture:        http://127.0.0.1:8098/
playwright:     1.62.1
har creator:    Playwright 1.62.1, HAR version 1.2
har files:      /tmp/harcdp-POW6Tb/har-omit.har (20566 B), /tmp/harcdp-POW6Tb/har-embed.har (226719 B)
 
                                                         HAR (omit)  HAR (embed)  CDP
entries / requests                                       12          12           11
  …of which redirect hops                                2           2            2
  …of which never completed (status -1 / loadingFailed)  2           2            2
entries carrying response body text                      0           6            on demand (Network.getResponseBody)
entries with an initiator / call stack                   0           0            11
  …with a JS stack frame                                 0           0            5
entries with a resource type                             12          12           11
entries with a frame id                                  12          12           11
entries with serverIPAddress                             8           8            7
WebSocket connections                                    1           1            1
WebSocket frames                                         0           4            4
 
--- what each recording says about the same four things ---
 
/beacon    HAR keys on the entry: pageref, startedDateTime, time, request, response, cache, timings, _resourceType
           HAR timings:           {"dns":-1,"connect":-1,"ssl":-1,"send":0,"wait":0.868,"receive":-1}
           HAR startedDateTime:   2026-08-14T02:56:47.617Z
/post      HAR request.postData:  {"mimeType":"application/json","text":"{\"id\":\"u-42\",\"ts\":1}","params":[]}
/big       content.size / text len (embed): 204800 / 204800
/big       content.size / text len (omit):  204800 / absent
 
--- cookies ---
response.cookies on the main document (HAR): [{"name":"http_cookie","value":"xyz789","path":"/","httpOnly":true}]
Set-Cookie response headers on the main document (HAR): [{"name":"set-cookie","value":"http_cookie=xyz789; Path=/; HttpOnly"}]
cookies in the browser jar at the end of the load (context.cookies()): http_cookie(httpOnly=true), pixel_id(httpOnly=false), js_cookie(httpOnly=false), beacon_id(httpOnly=false)
  → the jar has 4; the HAR's per-entry cookie arrays are per-transaction, not a jar dump.
 
--- URLs each recording saw ---
HAR only: ws://127.0.0.1:8098/ws
CDP only: (none)
both:     11 URLs
CSP-blocked image requested by the document: in HAR? true; in CDP? true
 
CDP loadingFailed:
  http://127.0.0.99:1/blocked-by-csp.gif errorText="" blockedReason="csp"
  http://127.0.0.1:8098/beacon?u=http%3A%2F%2F127.0.0.1%3A8098%2F errorText="net::ERR_ABORTED" blockedReason=undefined
 
--- the two requests the browser never completed ---
blocked-by-csp
    HAR: status=-1 statusText="" _failureText="csp" bodySize=-1
    CDP: errorText="" blockedReason="csp" canceled=false
/slow
    HAR: status=-1 statusText="" _failureText=undefined bodySize=-1
    CDP: errorText=undefined blockedReason=undefined canceled=undefined
 
--- non-standard ("_"-prefixed) fields this writer emits ---
  log.entries._resourceType
  log.entries._securityDetails
  log.entries._serverPort
  log.entries._webSocketMessages
  log.entries.response._failureText
  log.entries.response._transferSize
 
--- file size ---
  content:'omit'   20566 B
  content:'embed'  226719 B  (11.0x, for one 200 KiB response body)
  sum of response.content.size across all entries: 205679 B
  base64 inflation on the embedded bodies: 100.2% of the raw body bytes

Stability. Run three times consecutively. The per-URL outcome table was identical each time; only the ordering of entries within the HAR varied, and the byte counts moved by tens of bytes (timestamps). The two disagreements the page reports — HAR marks /slow failed and the beacon complete, CDP the reverse — reproduced on all three runs.

7.2 mitm_vs_browser.mjs — full output

mitm_vs_browser.txt
mitmproxy creator: mitmproxy 11.0.2, HAR 1.2
browser creator:   Playwright 1.62.1, HAR 1.2
 
                                  browser HAR   mitmproxy HAR
entries                           12            11
distinct URLs                     12            11
entries with response body text   0             10
entries with _resourceType        12            1
entries with a pageref            12            0
log.pages                         1             0
entries with serverIPAddress      8             11
WebSocket entries                 1             0
 
in the browser HAR only:   http://127.0.0.99:1/blocked-by-csp.gif, ws://127.0.0.1:8098/ws
in the mitmproxy HAR only: /ws
 
file sizes
  browser HAR (content omitted)     20453 B
  mitmproxy HAR (bodies included)   261692 B
  mitmproxy .flows (its own format) 232420 B
  ratio, mitmproxy HAR / browser HAR 12.8x
 
serverIPAddress recorded by each side
  browser HAR:   127.0.0.1   (the address the browser connected to = the proxy)
  mitmproxy HAR: 127.0.0.1   (the address the proxy connected to = the origin)
  NOTE: on this target both are loopback, so the two values coincide and this run
  does not by itself show the difference — re-run against a remote origin.
 
mitmproxy HAR entry keys: _resourceType, _webSocketMessages, cache, request, response, serverIPAddress, startedDateTime, time, timings
browser  HAR entry keys: _resourceType, _securityDetails, _serverPort, cache, pageref, request, response, serverIPAddress, startedDateTime, time, timings

Re-run against a remote origin, to test the serverIPAddress claim that the loopback fixture cannot show:

mitm_vs_browser_remote.txt
mitmproxy creator: mitmproxy 11.0.2, HAR 1.2
browser creator:   Playwright 1.62.1, HAR 1.2
 
                                  browser HAR   mitmproxy HAR
entries                           1             1
distinct URLs                     1             1
entries with response body text   0             1
entries with _resourceType        1             0
entries with a pageref            1             0
log.pages                         1             0
entries with serverIPAddress      1             1
WebSocket entries                 0             0
 
in the browser HAR only:   (none)
in the mitmproxy HAR only: (none)
 
file sizes
  browser HAR (content omitted)     2491 B
  mitmproxy HAR (bodies included)   5831 B
  mitmproxy .flows (its own format) 8253 B
  ratio, mitmproxy HAR / browser HAR 2.3x
 
serverIPAddress recorded by each side
  browser HAR:   127.0.0.1   (the address the browser connected to = the proxy)
  mitmproxy HAR: 104.20.23.154   (the address the proxy connected to = the origin)
  Behind a proxy, every serverIPAddress in the browser's HAR is the proxy's.
 
mitmproxy HAR entry keys: cache, request, response, serverIPAddress, startedDateTime, time, timings
browser  HAR entry keys: _resourceType, _securityDetails, _serverPort, cache, pageref, request, response, serverIPAddress, startedDateTime, time, timings

7.3 The snippet the page publishes

sandbox/har_vs_cdp_core.mjs is the code in the page's <file javascript> block, extracted from the page source and run, so that the three-line output quoted beside it is that script's real output rather than a retyped one:

HAR entries with an initiator: 0
CDP requests with an initiator: 11
CDP requests with a JS stack:   5

8. Verification

8.1 Per-paper figures

Every literal figure the page attributes to a paper was checked against that paper's own paper.cols.txt with whitespace normalised — not against evidence.quote, because detection[].prevalence is a model summary of a result rather than a quotation. 17 literals, 0 missing.

traffic_files_figures.txt
=== per-paper figures, checked against paper.cols.txt (whitespace normalised)
 
USENIX/2025/web-execution-bundles-reproducible-accurate-and-archivable-web-measurements
  ok      0.7%
  ok      13.9%
  ok      13.3%
  ok      8,523
  ok      311
  ok      44
  ok      8,544
  ok      778,500
  ok      776,229
  ok      0.3%
  ok      6,043
 
=== verbatim quotes
 
USENIX/2025/web-execution-bundles-reproducible-accurate-and-archivable-web-measurements
  ok      "HAR is developed to record all requests that leave the browser"
  ok      "the drawback of replaying content rather than recording and inspecting the executions directly"
 
CCS/2016/online-tracking-a-1-million-site-measurement-and-analysis
  ok      "we chose to use Mitmproxy"
  ok      "to record all HTTP Re"
 
WWW/2020/comparing-the-effects-of-dns-dot-and-doh-on-web-performance
  ok      "the first query that a HAR contains can show DNS timings of 0 ms"
 
IMC/2022/respect-the-origin-a-best-case-evaluation-of-connection-coalescing-in-the-wild
  ok      "as an HTTP Archive format (HAR) file"
 
17 literals checked, 0 missing.
 
NOTE: presence is not pairing. "X of Y" was additionally read in context — see
provenance:programming:traffic_files §quotes spot-checked.
 
 
=== EXTERNAL FIGURES — every number on the page that is NOT from the corpus
Each was fetched by scripts/external_checks_traffic_files.sh on 2026-08-14.
 
  HAR 1.2                spec version; written 2011, W3C draft dated 2012, abandoned
  Chrome 130             October 2024; sanitized HAR export becomes the default
  chrome-har-capturer 0.14.4   npm, published 2026-01-27
  mitmproxy 12.2.3       released 2026-05-12 (the runs on this page used 11.0.2)
  Wireshark 4.6.8        current stable
  tcpdump 4.99.6         latest tag
  libpcap 1.10.6         latest tag
  Playwright 1.62.1      the version the fixture runs used
  HARExportTrigger 0.6.1 last release, May 2018; repo archived, description "DEPRECATED"
  selenium-wire          repo archived January 2024
  BrowserMob Proxy       last tagged release 2016; last commit 2024
  draft-ietf-opsawg-pcap rev 08, intended status Historic
  draft-ietf-opsawg-pcapng rev 05, Informational
  WARC 1.1 / ISO 28500:2017  the WARC standard design:archives covers
  Okta: 28 Sept – 17 Oct 2023, 5 customers' sessions hijacked, 134 customers initially
        reported, scope revised 29 November 2023
  1500 ms                Firefox devtools.netmonitor.har.pageLoadedTimeout default
  five-line key log      one https://example.com/ load with --ssl-key-log-file, 2026-08-14
 
=== TOKENS — the exact digit tokens the above produce, isolated so that
    check_page_numbers.mjs (which splits on the second dot in a version string)
    can match them. Each is accounted for immediately above.
    0.14 4 12.2 3 4.6 8 4.99 6 1.10 6 1.62 1 0.6 1 08 05 130 1500 1.2 5 134
    1,000 802.15 12.8 127.0 0.1 127.0.0.99 172.66 147.243 8098 8081 2500
 
=== NOT FIGURES — digit fragments the page contains that are not measurements
  127.0.0.1, 127.0.0.99, 172.66.147.243   IP addresses in the fixture output
  8098, 8081                              fixture and proxy ports
  802.15.4                                a radio standard named in the fold
  2500                                    a waitForTimeout argument in published code
  200 KiB, 204, 302, 101, -1              HTTP sizes and status codes

Presence is not pairing, so the Hantke et al. figures were additionally read in context. The sentence behind “less than 0.3%” is: “In total, we count 778,500 requests in HAR after filtering out non-page-related requests like service workers or initial redirects, while we see 776,229 requests captured via WebREC for 8,544 successfully crawled origins. This makes a negligible difference of less than 0.3%.” Numerator, denominator and percentage are one sentence. Likewise “we observed an average difference across all origins of 0.7% between .web and BL, we measured 13.9% for HAR and 13.3% for WARC replayed responses” and “we successfully visited 8,523 origins with 311 HAR and 44 WARC (overlapping) issues replaying responses”.

8.2 Evidence quotes behind the capture-tool figures

node scripts/quote_check.mjs –tools 'mitmproxy|tcpdump|wireshark|tshark' over the whole corpus:

357 quotes checked: 229 exact, 87 partial (>=60% of 5-word windows), 41 below threshold, 0 with no full text on disk.

Below-threshold is not “unsupported”. The lowest-scoring one is the single most-quoted sentence on the content page, Englehardt & Narayanan's, at 20% — and it is verbatim in the paper. The .cols rendering reads “After examining several Python HTTP proxies, we chose to use Mitmproxy6 to record all HTTP Re-quest and Response headers”: a footnote marker and a hyphenation split by the two-column repair. Checked by hand; the extraction is faithful. Two others were spot-checked the same way (respect-the-origin, comparing-the-effects-of-dns-dot-and-doh) and both are present verbatim.

8.3 External facts

scripts/external_checks_traffic_files.sh re-fetches every non-corpus fact. Run 2026-08-14; every check returned. Findings that changed what the page says:

Claim Primary source Verdict
HAR 1.2 is a W3C standard w3c.github.io/web-performance/specs/HAR/Overview.html False. The document opens “\*DO NOT USE\* This document was never published by the W3C Web Performance Working Group and has been abandoned.”
…and the copy several papers cite says so dvcs.w3.org/hg/webperf/raw-file/tip/specs/HAR/Overview.html No. That copy carries no banner. (It also answered 403 to one of two fetches on the same day — treat availability as unreliable.)
har.fyi is the HAR spec har.fyi No — “A new reference doc for the HTTP Archive dataset”. A third thing called HTTP Archive. Do not cite it as a format spec.
pcap / pcapng are standardised IETF Datatracker API No. draft-ietf-opsawg-pcap rev 08 (intended status Historic) and draft-ietf-opsawg-pcapng rev 05 (Informational) are Internet-Drafts.
WARC iipc.github.io/warc-specifications/ WARC 1.0 and 1.1 listed as standard; ISO 28500:2017 is the published edition (WebSearch only — iso.org answered 403).
mitmproxy current GitHub releases API v12.2.3, 2026-05-12. The runs on this page used 11.0.2 and the page says so.
–set hardump still exists docs.mitmproxy.org/stable/concepts/options/ Yes: “Save a HAR file with all flows on exit.”
Wireshark / tcpdump / libpcap wireshark.org, GitHub tags 4.6.8 / tcpdump-4.99.6 / libpcap-1.10.6
chrome-har-capturer abandoned npm registry + GitHub No — 0.14.4 published 2026-01-27, repo pushed 2026-08-12. Actively maintained.
selenium-wire GitHub API archived: true, last push 2024-01-03
HARExportTrigger GitHub API archived: true, description “DEPRECATED”, last push 2019-03-28, last release 0.6.1 (May 2018)
BrowserMob Proxy GitHub API not archived, but last push 2024-05-30 and last tagged release 2016
Catapult / Web Page Replay GitHub API GitHub mirror archived and marked “Deprecated Catapult GitHub”; the live source is chromium.googlesource.com/catapult
pywb / warcprox GitHub releases API maintained: pywb v-2.9.1 (2025-10-07), warcprox v2.13.1 (2026-05-11)
Chrome sanitises HAR by default developer.chrome.com/blog/new-in-devtools-130 Yes, since Chrome 130: “the network log exported in HAR format will no longer contain Cookie, Set-Cookie, and Authorization headers by default” — and nothing else
Firefox HAR defaults browser/app/profile/firefox.js in mozilla-firefox/firefox main includeResponseBodies true, enableAutoExportToFile false, multiple-pages false, pageLoadedTimeout 1500
Okta HAR incident sec.okta.com root-cause post “Some of these files were HAR files that contained session tokens which could in turn be used for session hijacking attacks”; 5 customers' sessions hijacked; 134 customers initially; scope revised 2023-11-29
Okta sanitiser guidance support.okta.com/help/s/article/sanitizing-http-traces “There is no attempt to remove user information as part of the sanitization process”
A maintained HAR sanitiser exists GitHub API No. google/har-sanitizer and cloudflare/har-sanitizer are both archived: true as of 2026-08-14
Chromium writes a TLS key log run locally Yes — –ssl-key-log-file produced a 5-line NSS key log for one https://example.com/ load

8.4 Sources rejected

  • har.fyi as a HAR-format reference. It is the HTTP Archive dataset documentation. A sub-agent's first pass proposed it as the modern spec home; rejected after reading its own tagline.
  • Secondary reporting on the Okta incident. Widely-repeated sentences attributed to Cloudflare and BeyondTrust about what was inside their HAR files could not be traced to a primary source: BeyondTrust's blog returns HTTP 403 to every non-browser client, and 1Password's own post says only that it “detected suspicious activity on our Okta instance” with “no 1Password user data accessed”. A draft of the page asserted that all three “reported follow-on intrusion attempts using session tokens lifted from those files”. That sentence was cut and replaced with Okta's own words, which are primary and sufficient.
  • Fiddler licensing news. A widely-cited August 2026 post about Progress/Telerik restricting Fiddler Classic to non-commercial use is by Fiddler's original author on a personal blog, not by the vendor. The page says only that Fiddler Classic is no longer in active development, which the vendor's own product pages support.
  • “Other HAR-leak incidents”. Searched for; none found with a primary source. The page therefore names exactly one incident and does not imply a pattern.
  • A licence for the HTTP Archive BigQuery dataset. Could not be established from httparchive.org or har.fyi. The page does not state one.

8.5 What could not be established

  • How much a browser HAR and a proxy HAR of the same crawl disagree at scale. The fixture demonstrates the mechanisms on one synthetic page; nothing in this corpus quantifies the gap over a top-list crawl. This is on the page as a <wrap todo>.
  • Whether Chrome's HAR export includes response bodies by default. Firefox's answer is in the pref file; Chrome's current documentation does not restate a default for body inclusion, only for the header sanitisation. The page states the Firefox default and does not claim a Chrome one.
  • Whether venue artifact-evaluation processes say anything about releasing traffic captures. The public CFP and artifact pages of IEEE S&P 2026, IMC 2025/2026 and PoPETs were fetched and contain no clause specific to HAR files, pcaps or network captures — guidance stops at the generic Menlo-Report level. That is a verified negative, and the page does not claim venue guidance exists.
  • The 32 HAR-instrument papers are a floor, not a count. A paper that captured HAR files and never wrote the word is invisible to a full-text sweep.

9. Errors caught in review, and what caught them

Kept as a log, because the useful part is which check fired.

# What was wrong What caught it
1 The hand map was keyed year/venue/slug; the report keys venue/year/slug. All 94 verdicts silently missed. report_traffic_files.mjs fails loudly when the sweep returns an unclassified paper — it printed all 95.
2 The sweep found 95 papers; a grep -rlP with the same regex had found 94. WWW/2022/reproducibility-and-replicability-of-web-measurement-studies was missing from the shell result. Cross-checking the two sweeps. The Node sweep is authoritative and is the one in the report.
3 “By year bucket” and “By venue” printed each other's values, because the key-order fix was applied to the map but not to the two split('/') index reads below it. Reading the output: it said “By venue: 2025 5” followed by “2021 4”.
4 Adding adafruit to the radio family moved one paper out of packet capture. Seven figures on the page went stale in one edit: 288→287, 512→511, 164→165, 42.4→42.3, 62.3→62.2, 36.9→37.0, 73→72 — and 659→662, 129→130, 12.4→12.3 from an unrelated fold edit. The page had already been written with all of them. check_page_numbers.mjs, run whole-page with –code. It also caught an eighth, “164 excluded papers”, sitting in the limitations section outside any table.
5 The <code> block quoting the mitmproxy comparison held byte counts from an earlier run (20472/261704/232414 against a later run's 20453/261692/232420). A line-by-line equality check of every <code> block against the run output it claims to be, both directions. A substring check would have passed.
6 The three-line output beside the published <file javascript> snippet had never been produced by that snippet. Extracting the block from the page source, writing it to sandbox/har_vs_cdp_core.mjs and running it. It does produce exactly those three lines.
7 The page asserted Cloudflare, 1Password and BeyondTrust each described a session token in their own HAR file. The industry-verification pass, which flagged it UNVERIFIED and could not reach two of the three primary sources. Sentence cut — see §8.4.
8 The page cited Siby et al. as evidence that a proxy downgrades QUIC. They do not say that; they capture at the browser and packet layers instead of proxying. Re-reading the cited paper rather than the citation. Claim reworded.
9 scripts/external_checks_traffic_files.sh asked the GitHub releases endpoint for tcpdump, libpcap and chrome-har-capturer, which publish tags rather than releases, and printed blank lines. The rule that every check must print FAILED explicitly. Switched those three to the tags and npm endpoints.

Review passes are logged in §10 once run.

10. Review log

REVIEW_PLACEHOLDER

11. Conventions

This provenance page carries no ~~DISCUSSION~~ block, following the convention set by the existing provenance: pages: comments belong on the content page, where a reader is. It adds no bibliography entries of its own — it cites the same {[key]} keys as traffic_files against the shared bibliography.

  • traffic_files — the content page this backs.
  • corpus — the corpus-wide provenance: venue scope, selection funnel, field stability, and why 2025–2026 is provisional.

References

provenance/programming/traffic_files.1786677577.txt.gz · Last modified: by karel.kubicek.claude

Except where otherwise noted, content on this wiki is licensed under the following license: CC BY-NC-SA 4.0
CC BY-NC-SA 4.0 Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki