Gestion cache internet pour pdf

Franck -  
sebsauvage Messages postés 33415 Statut Modérateur -
Bonjour,

Je souhaiterais savoir s'il est possible de pouvoir télécharger des pdf sans que ce dernier soit enregistré dans le cache du browser ?
Je dois en effet permettre aux utilisateurs d'afficher des pdf dans une page Web mais ces documents (pdf) ne doivent pas être dans le cache du browser.
Je ne sais pas si de simples méta tag permettent de gérer les pdf en cache ou pas ...
D'avance, merci beaucoup pour votre aide.

Cordialement

Franck
A voir également:

5 réponses

sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Il suffit en principe de le spécifier dans les entêtes de réponse HTTP, mais il faut savoir que les navigateurs n'ont aucune obligation de les respecter.

(on met une date d'expiration du document dans le passé)
Expires: Mon, 04 Dec 1999 21:29:02 GMT

(on ajoute une directive):
Pragma: no-cache
CacheControl: no-cache
0
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
mais il faut savoir que les navigateurs n'ont aucune obligation de les respecter
Ah bon, je croyais avoir lu récement (je sais plus ou, ptet ici) qu'on pouvait forcer le navigateur à ne pas charger en caches les documents.
<virenque>On m'aurait menti ?</virenque>

Zep3k!GnO
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Ah bon, je croyais avoir lu récement (je sais plus ou, ptet ici) qu'on pouvait forcer le navigateur à ne pas charger en caches les documents.

Tu ne peux pas forcer un navigateur à faire ce que tu veux.

Manquerait plus qu'un webmaster me dicte la manière dont je peux recevoir ou voir les pages web, tiens !

Quand tu envoie des choses au navigateur, et tout ce que tu peux faire, c'est espérer qu'il les respecte.

(C'est très facile avec des programmes comme Proxomitron ou GreaseMonkey de forcer les documents à être placés dans le cache.)
0
kremfr
 
Merci beaucoup pour votre réponse.
Cependant, je n'ai pas été assez complet dans ma demande, c'est un peu plus compliqué...ma page est généré en java ... pour répondre à des normes de sécurités, lorsque l'utilisateur clique sur le lien pdf, le code fait appel à un service java qui retourne en réponse un tableau de byte (représentant le document pdf qui est interprété par le browser).
Il semblerait qu'en VB il est possible de gérer dynamiquement la gestion des objets pdf en cache. Reste à savoir si le java le permet également ...
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
pour répondre à des normes de sécurités, lorsque l'utilisateur clique sur le lien pdf, le code fait appel à un service java qui retourne en réponse un tableau de byte

La manière dont c'est généré côté serveur (dynamiquement ou sous forme d'un fichier statique, en Java ou en VB) n'a aucune influence: le navigateur reçoit le fichier et l'interprète comme un fichier PDF.
(qui pourra ou non être enregistré dans un cache.)

Vu du navigateur, c'est un flux de données comme un autre.

Il semblerait qu'en VB il est possible de gérer dynamiquement la gestion des objets pdf en cache.

ça n'est pas spécifique à VB, c'est spécifique au protocole HTTP.
(directive Pragma:no-cache, etc.)

Mais encore une fois, les navigateurs n'ont aucune obligation de respecter ces directives.
Certains administrateurs de proxy forcent même le cache sur certains sites (comme Microsoft) pour éviter de surcharger leur connexion internet.
0
Franck
 
l'affichage du pdf se fait via l'envoie d'un tableau de bytes par une servlet. La gestion du cache est donc à gérer dynamiquement lors de la response de la servlet.
Pour se faire il faut inclure le code suivant dans l'objet response

res.setHeader("Pragma", "no-cache"); //HTTP/1.0, for Proxy Servers
res.setHeader("Cache-Control", "no-cache"); //HTTP/1.1, for Proxy Servers
res.setDateHeader("Expires", 0); // for Browsers

Mais le problème reste entier. Si on n’utilise pas le cache du browser, on ne peut pas ouvrir le fichier PDF.
La seule option possible dans ce cas et de l’enregistrer sur le disque et de l’ouvrir ensuite.
Malheureusement, cette solution ne convient pas en terme de securité.

La question est donc est il possible d’ouvrir un pdf en interprétant dynamiquement les données du tableau de bytes sans qu'il soit en cache ou sur le disque dur.

Merci encore
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
La question est donc est il possible d’ouvrir un pdf en interprétant dynamiquement les données du tableau de bytes sans qu'il soit en cache ou sur le disque dur.

A priori non puisque, à ma connaissance, dans la majorité des cas le navigateur commence par enregistrer le fichier sur disque avant de lancer Acrobat Reader pour ouvrir le fichier.

La solution pourrait être d'utiliser une applet Java (mais un format différent du PDF, du coup).

ça rendra plus difficile le repiquage des données (mais pas impossible).
0