IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Répondre à une requête ET en envoyer une autre en même temps.


Sujet :

Apache

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut Répondre à une requête ET en envoyer une autre en même temps.
    Bonjour !

    Je fais face au problème suivant, sans trouver de réponse sur le net, donc je me tourne vers vous :-)
    Il existe peut être une solution simple, mais je n'ai peut être pas utilisé les bons mots-clé sous google.

    Quoi qu'il en soit, voici mon problème :

    J'ai un Apache en frontal d'un JOnAS/Tomcat.
    L'Apache (en gros) sert des fichiers (serveur de download) et l'AS derrière est là pour effectuer quelques traitements.

    Les requêtes de Download contiennent, en plus du nom du fichier à DL, des informations à faire traiter par l'AS.
    Et c'est là que ça bloque pour moi. Il faut, sur une seule requête d'un utilisateur, que l'Apache envoie le fichier demandé, et que l'AS récupère les informations contenues dans la requête.

    En quelque sorte, il faudrait que l'Apache renvoie le fichier demandé, et transmette en même temps une requête à l'AS.

    Je ne prends peut être pas le problème par le bon bout, mais j'espère avoir été à peut près clair dans ce que je veux arriver à faire...

    Merci !

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ben, c'est pas compliqué : ce n'est pas à Apache de traiter la requête mais à l'AS. La requête est en fait une URL AS et non pas directement l'URL Apache du fichier à télécharger. AS réagit à cette URL en effectuant les traitements qui t'intéresse et en retour renvoie le fichier à télécharger (c'est-à-dire que l'AS lit le fichier et le renvoie, donc il a accès au document root d'Apache plus ou moins directement) ou redirige l'utilisateur vers une vraie URL Apache de téléchargement. Je pencherais plutôt pour la première solution car dans le cas de la redirection, un utilisateur malin peut reconstruire des URL de téléchargement direct et donc contourner l'AS (il télécharge le doc sans passer par l'AS, donc pas de traitement).

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut Merci, mais...
    Merci Mac pour cette réponse, mais aucune des 2 solutions ne me convient (si j'ai bien compris ce que tu proposes) :-(
    Je m'explique sur pourquoi j'avais écarté ces solutions :

    Solution 1 - L'AS fait office de serveur de fichier.
    Ca ne me convient pas, dans le sens ou ce n'est pas le job d'un AS que de fournir des ressources statiques.

    Solution 2 - Redirection 302
    La encore, ça ne répond pas à ma demande puisque je souhaiterais que le user n'envoie qu'une unique requête, or avec une redirection, il y a un aller retour non ?

    Voici ce que ca donne (je crois ?)
    User -[requête]-> Apache -[transmet]-> AS -[traite et répond 302]-> Apache -[transmet réponse 302]-> User -[requête]-> Apache -[Envoie le fichier]-> User.

    J'espère avoir compris tes propositions...

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Pour la solution 2, tu as bien compris, mais pas la solution 1 : je ne suis pas d'accord pour dire que l'AS sert de serveur de fichiers. En effet, tu peux continuer à stocker tes fichiers où tu veux (le document root d'Apache par exemple ou une base de données), l'AS servant dans ce cas d'intermédiaire pour renvoyer les fichiers à l'utilisateur. L'AS peut aller chercher le fichier directement sur le file system ou simplement faire une requête HTTP sur Apache pour récupérer le fichier et le renvoyer à l'utilisateur, ça fait bien ce genre de choses.

    Il faut bien que tu comprennes le problème : vu que tu écartes la solution 2, les solutions restantes sont plus que limitées : il faut nécessairement que tu passes par une couche logiciel qui faut les 2 choses à la fois : Apache ne pouvant pas le faire, il ne te reste plus que JonAS.

    Il existe toutefois une 3ème solution qu'on n'a pas envisagé : le JavaScript. Quand l'utilisateur clique sur un lien pour télécharger le document, le clic déclanche en fait une fonction JavaScript qui fait un premier appel (par Ajax ?) sur l'AS pour traiter tes infos, puis lance l'appel de la vraie URL Apache pour télécharger le fichier. Mais ce mécanisme présente une faiblesse comme tout ce qui tourne côté client : c'est contournable. Donc si tu ne veux pas qu'on puisse télécharger le document sans passer par un traitement JonAS, tu n'as vraiment pas le choix : la solution 1.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    En fait, disons plutôt que j'ai toujours pensé que ça n'était pas le job d'un AS que de jouer avec des ressources statiques

    C'est effectivement une solution qui répondrait à mes exigences, mais on perd la puissance de l'Apache qui est vraiment fait pour ce boulot là lui.

    Pour tout dire, j'espérais que l'on me proposerait des solutions faisant intervenir des modules complémentaires, comme celui-ci par exemple, sur lequel je suis tombé hier :
    http://tangent.org/403/mod_trigger.html

    Mais j'ai quelques soucis à le faire marcher :-/


    Enfin bref, il n'y a peut être pas de solution "toute faite" pour ce problème.
    Merci pour tes réponses !

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Effectivement, ça semble répondre à ton besoin. Je ne connaissais pas. Je ne sais pas si ça marche pour toutes les versions d'Apache. C'est quoi, les problèmes que tu rencontres ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Bah disons que j'aimerai le faire tourner sous Windows et Linux et que la seule chose que j'ai trouvé, ce sont les sources du bousin.

    Et là, j'ai quelques soucis à compiler tout ça :-)
    De plus, la doc est plus que succincte :-/

    Bref, j'ai un peu laissé tombé, en voyant que pas grand monde ne l'utilisait (pas bcp de réponses sous google :-) ) et en me disant qu'il y avait sûrement plus simple

  8. #8
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Là, je ne peux pas t'aider, je suis une bille en C et compilation.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    C'est pas grave, je vais trouver une autre solution, ou jouer avec les redirections

    Merci pour les propositions en tous cas, et si quelqu'un connait un moyen de faire ce que je veux, qu'il n'hésite pas !

Discussions similaires

  1. Réponses: 7
    Dernier message: 19/09/2013, 16h23
  2. Réponses: 9
    Dernier message: 19/12/2011, 17h11
  3. Réponses: 5
    Dernier message: 18/02/2009, 09h52
  4. Réponses: 1
    Dernier message: 13/02/2009, 10h13
  5. passer d'une requêtes SGL directe en une requête normale
    Par jenniferIUP dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/02/2009, 08h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo