Кто добавляет "_" параметр единственного подчеркивания запроса? - PullRequest
66 голосов
/ 10 сентября 2010

У меня PHP-сервер, работающий на Apache, я получаю много запросов, выглядящих так,

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.

Ответы [ 4 ]

101 голосов
/ 10 сентября 2010

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

редактирование: он добавляет его только для запросов на получение, и только если кэш опций имеет значение false:

cache: false
9 голосов
/ 10 сентября 2010
3 голосов
/ 10 сентября 2010

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

2 голосов
/ 10 сентября 2010

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 : "");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...