2010-09-10 2 views
59

У меня есть PHP-сервер работает на Apache, я получаю много запроса выглядит так,Кто добавляет параметр _ _ "Single Underscore Query Parameter?

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 

_ параметр загадочно добавил к запросу. Я пытаюсь выяснить, кто это делает.

Перед Apache работает NetScaler.

+0

почему это IP '10.1.1.211' это локальный IP обеспечивает маршрутизатор/модем правильно? – RobertPitt

+0

@ RobertPitt, вероятно, IP-адрес NetScaler вверх по течению? – jfrobishow

+0

oki просто интересно, никогда не использовал NetScaler – RobertPitt

ответ

83

jQuery добавляет такой параметр, чтобы обойти кеширование IE.

редактировать: это только добавляет его для запросов GET, и только если кэш опция ложна:

cache: false 
+0

Я использую jQuery, но он не отображается в каждом запросе. –

+0

Вы используете какой-либо вызов ajax, где вы указываете атрибут nocache? Он будет добавляться только тогда, и только если это запрос GET. См. Мой код ниже из jQuery, если (s.cache === false && type == "GET") – jfrobishow

+0

У меня есть только один вызов AJAX на моей странице, и я устанавливаю атрибут nocache. Однако некоторые запросы не имеют параметра. –

3

Возможно, это фиктивный параметр, добавленный обратным прокси-сервером, чтобы заставить обслуживать не кэшированный контент.

2

1283458471913 отметка времени Unix в мс, вероятно, бут/прокси, убедившись, что они получают новая страница, а не кешированная версия.

Также может быть jQuery, который приведет к тому, что для запроса AJAX у вас есть атрибут nocache, установленный в 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 : ""); 
} 
Смежные вопросы