tag che non rispetta le immagini max-age e che ricaricano inutilmente

Ho un programma cgi scritto in C che emette immagini gif, scriverle su stdout e precedute dalle linee di controllo della cache,

fprintf(stdout,"Cache-Control: max-age=99999\n"); fprintf(stdout,"Content-Length: %d\n",nbytes); fprintf(stdout,"Content-Type: image/gif\n\n"); 

E il CGI è invocato da una pagina HTML con un tag del modulo

  

dove query_string è il solito modulo variable = value & etc che descrive la gif che deve essere generata dal programma. Funziona bene (almeno nella misura in cui l’ho testato), ma le immagini vengono nuovamente scaricate ogni volta che ricarico la pagina HTML, nonostante la massima età emessa dal programma.

Le immagini statiche, vale a dire dove src = “http://example.com/image.gif” punta a un file, sembrano funzionare bene e vengono semplicemente ricaricate dalla cache del browser client. Quindi sto indovinando (totalmente a indovinare) il problema legato al fatto che il tag sta eseguendo dynamicmente un programma sul server, e questo in qualche modo sovrascrive il limite massimo. È giusto? O cosa? E come, se c’è un modo, posso ottenere il browser per riutilizzare le sue immagini memorizzate nella cache quando la pagina viene ricaricata?

Nota: sto testando con Linux (Slackware 14.2) firefox 45.2.0, ma ho visto lo stesso comportamento con Mozilla e Konqueror. Non ho avuto l’opportunità di provare Windows.

Modifica Grazie a JefréN per la soluzione, ed ecco una demo del programma in lavorazione,

http://www.forkosh.com/gifscroll.xq?message=%5CLARGE%5Cbf%7B%5Chspace%7B8%7D%5Cfbox%7B%5Cfbox%7B%7B%5C%20Thanks,%5C%20JefreN%5C% 20% 7D% 7D% 7D% 5Chspace% 7B8% 7D% 7D & nscroll = 4 & nflicker = 6 & fg = 4 & bg = 0 & margine = 52 & njitter = 4 & vjitter = .50 & password = forkosh & nzoom = 6 & zoomn = -10% 20 &% 20bg2 = 0 & nchk = 0 & BDigitare = 3 & bmargin = 24 & bWidth = 48 & bshape = 1 & bsfrac = .50 & bfrac = .43 & cband = 3,5,6,7,13,5,11,2 & fgb1 = -1 & fgb2 = -99