View Issue Details

IDProjectCategoryView StatusLast Update
0008493Talerexchangepublic2024-02-23 14:00
ReporterFlorian Dold Assigned ToChristian Grothoff  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionno change required 
Target Version0.9.4Fixed in Version0.9.4 
Summary0008493: exchange sends two Vary headers for /terms response, causing browsers to return cached response even when the language changes
Description$ curl

< vary: Accept-Encoding
< etag: exchange-tos-v0
< vary: Accept-Language,Accept,Accept-Encoding
TagsNo tags attached.


Christian Grothoff

2024-02-22 21:53

manager   ~0021465

I read that the server is exactly doing what the spec says: specify which HTTP request headers may have influenced the response generation, so that a browser or cache should NOT (necessarily) return the cached version if the HTTP request headers changed. Now, if a browser doesn't respect this, that's another story, but where do you think I'm misreading the spec?

Christian Grothoff

2024-02-22 21:53

manager   ~0021466

Oh, sorry. The issue is that we set TWO vary headers, right?

Christian Grothoff

2024-02-22 21:56

manager   ~0021467

Eh, I just checked, and Firefox only shows one VARY header. And the code only has ONE place where ONE vary header is set.

Christian Grothoff

2024-02-22 22:00

manager   ~0021468

Interesting, curl and Firefox disagree! More interesting: curl only shows *1* vary header when run against the Exchange without nginx proxy!

Christian Grothoff

2024-02-22 22:01

manager   ~0021469

nginx.conf: gzip_vary on;

instructs nginx to add such a 'Vary' header. I think this is the real culprit, as Nginx just adds another vary header, not caring what already exists.

So no, there won't be an Exchange test for this, it wouldn't catch anything anyway!

Christian Grothoff

2024-02-23 14:00

manager   ~0021477

This is actually OK, the browser combines multiple headers.

Issue History

Date Modified Username Field Change
2024-02-22 20:55 Florian Dold New Issue
2024-02-22 20:55 Florian Dold Status new => assigned
2024-02-22 20:55 Florian Dold Assigned To => Christian Grothoff
2024-02-22 21:53 Christian Grothoff Note Added: 0021465
2024-02-22 21:53 Christian Grothoff Note Added: 0021466
2024-02-22 21:56 Christian Grothoff Note Added: 0021467
2024-02-22 22:00 Christian Grothoff Note Added: 0021468
2024-02-22 22:01 Christian Grothoff Note Added: 0021469
2024-02-22 22:04 Christian Grothoff Assigned To Christian Grothoff => javier.sepulveda
2024-02-23 14:00 Christian Grothoff Assigned To javier.sepulveda => Christian Grothoff
2024-02-23 14:00 Christian Grothoff Status assigned => closed
2024-02-23 14:00 Christian Grothoff Resolution open => no change required
2024-02-23 14:00 Christian Grothoff Fixed in Version => 0.9.4
2024-02-23 14:00 Christian Grothoff Note Added: 0021477