Le 9 août 2012 09:22, Vincent Pottier <vpott...@gmail.com> a écrit :
> Le 09/08/2012 08:01, Stéphane Henriod a écrit :
>
>> Je veux effectivement bien un petit coup de main!
>>
>> Mais, de toute façon, je ne suis pas certain que je sois autorisé à
>> installer un proxy chez mon hébergeur...
>>
>> Stéphane
>
> Et quel est-il pour ne pas permettre un bout de code qui lance des requêtes
> http ?
>
> Le proxi en question n'est pas un proxi de réseau d'entreprise mais juste un
> bout de code (php, python...) qui reçoit les requêtes du client,
> éventuellement les reformule, les envoie à overpass et retourne le résultat
> au client.

plus que d'intercepter les requêtes HTTP, il s'agit surtout de gérer
un cache local des requêtes pour éviter que des requêtes trop
nombreuses soient envoyées au serveur source par tes clients : ils
interrogeront ton serveur qui leur retournera le contenu de ton cache
ou sinon effectuera la requête lui-même, et si elle prends trop de
temps, redirigera automatiquement le client par un redirect HTTP
temporaire vers le serveur source, tandisque le proxy de ton serveur
termine sa mise en cache en arrière-plan avec une priorité plus faible
pour répondre à des demandes d'autres clients ou une requête répétée
du même client (au cas où ce client ne gère pas lui-même de cache,
afin que cette fois en réinterrogeant le serveur il ne subisse plus la
redirection mais reçoive le contenu de ton cache...).

Attention, la gestion d'un cache est chose délicate : il faut tenir
compte des statuts retournés par le serveur, et s'il retourne une
erreur 500+, le proxy doit limiter ses requêtes de réessai. Si le
serveur retourne une erreur 300+, ton proxy doit tenir compte de la
date de péremption de cette erreur pour éviter de requérir à nouveau
le serveur. Si le serveur ne donne pas de date de péremption, il faut
en ajouter une raisonnable. Cela implique donc aussi la mise en cache
de certains statuts, même s'il n'y a pas de contenus, ainsi que de
toutes les métadonnées de la requête non liées à la seule session en
cours (taille du résultat, type MIME, encodage...). Si la requête
n'est pas sécurisée tu peux aussi compresser les contenus non
compressés par le serveur source et que ton cache renverra sous forme
compressée : le XML se comprime très bien, et tu gagnera de la bande
passante en émission vers tes clients !

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à