2026-09-07 HTTP 6 min read
The Slowloris attack is from 2009. It fits in one small script, needs one machine and no bandwidth, and will still stall a thread-per-connection server left without request timeouts. It wins by going slow — and the fix is the same one HTTP/2's record-breaking floods needed.
2026-08-10 HTTP 6 min read
In April 2024 a researcher showed a single TCP connection could crash Apache, Node.js, and Tomcat with HTTP/2 frames that never appear in an access log. The bug was everywhere at once — because it lived in the spec's seams, not the code.
2026-08-02 HTTP 6 min read
Server Push was HTTP/2's marquee feature: send files before the browser asks. Chrome ripped it out in 2022 after finding it used on 0.7% of sites and often making things slower. What replaced it did the opposite thing, and that's why it worked.
2026-08-01 HTTP 6 min read
In August 2023 Google, Cloudflare, and AWS all logged record DDoS attacks, and Cloudflare's came from a botnet of only about 20,000 machines. The weapon wasn't bandwidth. It was an HTTP/2 feature working exactly as designed.
2026-06-29 HTTP 4 min read
The difference between 301 and 302 isn't 'permanent vs temporary.' It's two unrelated decisions the codes quietly bundle together — and a 301 you set by accident can live in a stranger's browser cache forever.
2026-06-27 HTTP 6 min read
Adding your domain to the HSTS preload list is a one-way door. The list lives inside the browser binary, not on your servers, so undoing it means waiting months for a Chrome release you don't control — and that's the part nobody mentions when they tell you to preload.
2026-06-25 HTTP 5 min read
Most deployed CSPs do nothing. Google measured it: 94.7% of script-limiting policies are bypassable. The syntax is easy. The header is hard for a different reason.
2026-06-05 HTTP 5 min read
QUIC is reliable, ordered, congestion-controlled, and encrypted — everything UDP refuses to be. So why build it on UDP? Because UDP was the only new-protocol-shaped hole left in the internet's plumbing.
2026-05-30 HTTP 4 min read
You can type any browser you like into your User-Agent string. It's the one field nobody trusts — because everything underneath it, the TLS handshake and the HTTP/2 settings, was written by your libraries, not by you.
2026-03-28 HTTP 5 min read
CDN cache poisoning tricks a CDN into caching a malicious response and serving it to all subsequent visitors. One weird request, a lot of collateral.
2026-03-27 HTTP 5 min read
Not all security headers are equal. Some prevent real attacks daily. Some are legacy relics browsers ignore. Here's an honest priority list.
2026-03-27 HTTP 5 min read
The gap between easy headers and hard headers is enormous. Most sites set X-Content-Type-Options and skip Content-Security-Policy. The data shows exactly how wide the gap is.