r-Tune
Le service HTTP de BoostEdge a une très grande capacité d'adapation. Il permet de configurer très finement le traitement des requêtes
HTTP. Il est possible de discriminer selon le host name, le
path ainsi que sur toute autre partie de l'en-tête HTTP de la requête ou encore sur l'adresse IP
du navigateur.
Il est donc possible d'appliquer un traitement différent aux requêtes
selon qu'il s'agit d'une page HTML, de contenu dynamique (par exemple
du PHP), ou des composants graphiques.
Si on poursuit cet exemple, les requêtes portant sur du contenu dynaique
seront relayées au serveur d'origine, alors que celles portant sur
du contenu statique seront servies depuis le cache. De plus, les règles
de revalidation du cache pourront être différentes pour des pages HTML
et pour des images.
Plusieurs méthodes de comparaison sont disponibles pour comparer le
host name ou le path de la requête avec les valeurs tests. On peut utiliser
une comparaison exacte, mais aussi une comparaison avec des caractères
jocker ou encore pour les cas plus complexes des expressions régulières
(les fameuses regexp).
Pour le host name il exite des critères de sélection spécifiques. Par exemple
on peut déterminer le cas où c'est un plain name, une adresse IP sous
forme numérique, etc.
Pour le path il est possible de détecter un virtual path,
une extention (.jpg), un nom de directory (qui se termine
par un "/") etc.
Critères étendus
Quand les critères de sélection de traitement exposés plus haut ne suffisent pas,
il est alors possible de recourir à des expressions de sélection très générales.
Celles-ci sont rédigées sous la forme d'expressions logiques (boolénnes)
dans lesquelles peuvent figurer des termes symbolisant n'importe quelle
partie de la requête.
Par exemple, afin de prendre en compte le type de navigateur il est possible
d'utiliser une expression de la forme:
match (query.header.UserAgent, "*Mozilla*").
On voit dans cet exemple que les champs de l'entête HTTP sont représentés par
des facteurs de la forme query.header..
Tous les champs standard sont utilisables de cette manière. Il est également
possible de tester des champs non standard. Par exemple la présence d'un
champ X-my-own-filed sera testé par une expression de la forme
!query.header.field["X-my-own-field"].empty
|