1) строка запроса раскодируется (плюсы заменяются обратно на пробелы, по кодам вида %xx восстанавливаются символы и т. д., не помню, что там еще с ней делают),
2) раскодированная строка запроса анализируется (то есть режется по амперсандам и из получившихся кусочков извлекаются значения параметров.
Наверное, я параноик, но я бы делала наоборот (