2013-09-03 14 views
5

Ho un vecchio codice mod_perl che genera contenuto dinamico. Mi è stato chiesto di implementare l'invio di un Etag ad ogni risposta.Generazione di un Etag in base al corpo in mod_perl

Sembra che il modo per fare ciò potrebbe essere quello di aggiungere un gestore mod_perl, ma questo contenuto è generato dinamicamente, quindi ho bisogno di rendere l'Etag un checksum del corpo della risposta. Non ho ancora trovato un modo per ottenere il contenuto del corpo della risposta in un gestore mod_perl per il checksum.

Come devo generare dinamicamente gli ETAG in base al corpo della risposta in mod_perl?

+1

Se è possibile modificare il gestore mod_perl stesso, quindi modificarlo per raccogliere tutto il contenuto in uscita (ad esempio, un '$ r-> print' centrale alla fine), in modo da poter aggiungere intestazioni arbitrarie. Se non puoi cambiarlo, allora potresti scrivere un [filtro mod_perl2] (http://perl.apache.org/docs/2.0/user/handlers/filters.html). –

risposta

0

Se il contenuto viene generato dinamicamente, probabilmente il modo più semplice per impostare gli etags su numeri totalmente casuali. (E questo è anche il modo più sicuro ...)

O forse puoi creare un'euristica come creare un hash dai parametri url/get/post. Se non è possibile creare questo tipo di euristica significa che la propria logica interna si basa su altri stati interni. (sessione/etc) Quindi probabilmente gli etags random totali sono la soluzione migliore.