Это совершенно законно. Многие фреймворки поддерживают его, например, Servlet API даже указывает приоритет (порядок) аргументов, как они появляются в getParameters (String), который сначала предоставит параметр запроса. Например, это также допустимо, а имена параметров не совпадают.
POST /path?param1=value HTTP/1.1
Host: localhost
param1=value¶m2=value
Это также действует в соответствии с HTTP / 1.1 RFC, см. RFC 2616 .
Он не должен быть привязан к конкретному поставщику, и большинство комплексных сред будет его поддерживать.