Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Meta VR Glasses(meta.com)
    142comments
  2. Linux support is coming to Snapdragon X2 Series(qualcomm.com)
    63comments
  3. Claude discovers a novel enzyme system with CRISPR-like repeats(anthropic.com)
    526comments
  4. VSCode's SSH Agent Is Bananas (2025)(fly.io)
    85comments
  5. ArXiv receives multiyear commitments to support it as an independent nonprofit(arxiv.org)
    7comments
  6. The "Windows XP Box" (2003)(mini-itx.com)
    7comments
  7. FLAWED's Flaws and What This Means for Industry Research(suhacker.ai)
    discuss
  8. Mercury 2.5 LLM hits 770 tokens per second(artificialanalysis.ai)
    20comments
  9. Fixing the Portobello Police Station Clock(pointinthecloud.com)
    88comments
  10. We just shipped support for the ugliest part of HTTP: Vary(cloudflare.com)
    9comments
  11. LensVLM: Compressing long context as images, expanding only relevant pages(huggingface.co)
    6comments
  12. The mystery animal on an ancient god's head(signoregalilei.com)
    16comments
  13. Italian parliament votes for return to nuclear energy(apnews.com)
    381comments
  14. A brief history of Windows scroll bar shortcuts(devblogs.microsoft.com/oldnewthing)
    48comments
  15. Show HN: An open-source manufacturing ERP/MES/QMS(carbon.ms)
    discuss
  16. Making Tailscale Faster(tailscale.com)
    30comments
  17. The Curious Power of Punctuation(newyorker.com)
    3comments
  18. Gemini 3.8 text-to-speech(blog.google)
    124comments
  19. Radicle: Disclosure of Vulnerability in the Network Protocol(radicle.dev)
    48comments
  20. Tokens too cheap to meter(jyn.dev)
    179comments
  21. Augustofaces: Pareidolia Fine Art(augusto.at)
    1comments
  22. Swap, ZRAM, Zswap and Hibernate on NixOS(matthewbrunelle.com)
    7comments
  23. A refined phylochronology of the second plague pandemic in Western Eurasia(pnas.org)
    discuss
  24. I don't want the details(michaelheap.com)
    194comments
  25. Z80 REPL (2018)(abagames.github.io)
    18comments
  26. Claude Code reads AGENTS.md only when telemetry is on [fixed](szypowi.cz)
    254comments
  27. Show HN: I built a post-mortem debugger for native Windows x64/x86 crashes(forensicdbg.com)
    5comments
  28. QuestDB (YC S20) Is Hiring a Sales Engineer(questdb.com)
    discuss
  29. Once Claude can measure something, it can make it faster(claude.dev)
    104comments
  30. 28% of job postings on company career sites have been open over 90 days(unlisted.careers)
    298comments

We just shipped support for the ugliest part of HTTP: Vary

68 pointsby 3h agoblog.cloudflare.com
9 comments
2h agoHN ↗

I've been wanting this from Cloudflare for years.

The classic problem here is if you do that thing where user agents that send "accept: text/html" get HTML, while user agents that don't get JSON or some other format.

This used to be impossible to deploy behind Cloudflare caching, because they ignored the Vary header on anything other than images - so you risked caching the JSON version and then serving it up to someone who was expecting HTML.

(Independent of the Cloudflare feature I ended up deciding never to use that pattern, because I prefer having URL that predictably returns HTML or JSON - I add a .json suffix to my apps to serve JSON instead.)

2h agoHN ↗

Nice to see. I’ve used vary to quite a bit of success on CloudFront back in the day.

I actually assumed when I started using Cloudflare that it did have vary support and it led to a serious bug in my sass app at the time.

2h agoHN ↗

I honestly thought they would never ship this. Holy hell this has been a long time coming.

Actual real content negotiation in 2026. Never thought I'd live to see the day.

1h agoHN ↗

"If the origin response does not include a Vary header, Cloudflare caches the response normally"[1]

"If one response omits it, Cloudflare could cache that response without the variance needed to keep it isolated."[2]

Will that non-Vary cache object front-run any Vary-segmented cache objects?

If so, probably worth adding a snippet rule to ensure every response has a Vary header?

1: https://developers.cloudflare.com/cache/concepts/vary/#how-v...

2: https://blog.cloudflare.com/vary-support/#how-a-response-mov...

1h agoHN ↗

finally. now maybe they'll have time to implement a working unsubscribe on their marketing emails.

59m agoHN ↗

Turns out their marketing can get to you through HN posts…

44m agoHN ↗

I had not actually realized what a mess Vary is.

Wow, sometimes I think it's amazing the web works at all!

36m agoHN ↗

It pains me to think about the important ones like varying on session cookie and authorization headers, and how badly some middleware can confuse things.

We generate custom content for a given authentication context. We definitely want caching at the user agent, but we want the cache keyed by the authenticated identity. Otherwise something like logging out and logging in as a different identity can produce monstrously confused results when an SPA or similar mixes some cached and some fresh responses into one page.

32m agoHN ↗

If this surprises you, remember that Cloudflare doesn't cache HTML by default.