web-dev-qa-db-fra.com

Qui ajoute le paramètre de requête de soulignement unique "_"?

J'ai un serveur PHP fonctionnant sur Apache, je reçois beaucoup de requêtes comme ceci,

10.1.1.211 - - [02/Sep/2010:16:14:31 -0400] "GET /request?_=1283458471913&action=get_list HTTP/1.1" 200 547 0 "http://www.example.com/request" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)" 28632 15602

Le paramètre _ est mystérieusement ajouté à la demande. J'essaie de savoir qui fait ça.

Un NetScaler s'exécute devant Apache.

66
ZZ Coder

jQuery ajoute un paramètre comme celui-ci pour contourner la mise en cache d'IE.

edit: il ne l'ajoute que pour les requêtes get, et seulement si le cache des options est faux:

cache: false
101
Patricia
9
Colin Hebert

Il s'agit probablement d'un paramètre factice ajouté par le proxy inverse pour forcer la diffusion du contenu non mis en cache.

3
Artefacto

1283458471913 est un horodatage Unix en ms, probablement un bot/proxy s'assurant qu'ils obtiennent une nouvelle page et non une version mise en cache.

Cela pourrait également être jQuery, ce qui entraînerait cela pour AJAX demande de vous, l'attribut nocache soit défini sur true.

if ( s.cache === false && type == "GET" ) {
    var ts = now();
    // try replacing _= if it is there

    var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2″);
    // if nothing was replaced, add timestamp to the end

    s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
}
2
jfrobishow