Chi aggiunge “_” Parametro di query Single Underscore?

Ho un server PHP in esecuzione su Apache, ho un sacco di richieste come questo,

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 

Il parametro _ è misteriosamente aggiunto alla richiesta. Sto cercando di scoprire chi lo sta facendo.

C’è un NetScaler in esecuzione davanti ad Apache.

jQuery aggiunge un parametro come quello per aggirare il caching di IE.

modifica: lo aggiunge solo per ottenere richieste e solo se l’opzione cache è falsa:

 cache: false 

Potrebbe essere il parametro JQuery CacheBuster.


Risorse:

  • [jQuery] Query GData JSON “Parametri di query non validi: _”
  • [jQuery] Distriggers la busting della cache in $ .getScript
  • Busting della cache

Probabilmente si tratta di un parametro fittizio aggiunto dal proxy inverso per forzare la pubblicazione di contenuto non memorizzato nella cache.

1283458471913 è un timestamp unix in ms, probabilmente un bot / proxy che si assicura che ottengano una nuova pagina e non una versione cache.

Potrebbe anche essere jQuery che causerebbe questo per la richiesta AJAX di avere l’attributo nocache impostato su 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 : ""); }