Все методы запроса (GET
, HEAD
, POST
, OPTIONS
, PUT
, TRACE
, DELETE
, BREW
) могут иметь параметры запроса ?x=y
в стиле GET. Это просто необычно для некоторых других (CONNECT
).
Причина в том, что HTTP имеет дело с "ресурсами", и на самом деле его не волнуют параметры URL. Начиная с разделителя пути /
, все это просто считается именем ресурса. Есть ли в нем какие-либо вопросительные знаки ?
, или принимающий веб-сервер использует вместо него @
, не имеет значения, поскольку зависит от реализации.
HTTP-клиенты, очевидно, знают о схемах URL-адресов и о том, как их разделить, но для самого протокола это не имеет большого значения. Я думаю, что спецификация ( RFC1616 ) мало упоминает помимо описания схемы URL. HTTPbis может быть более сложным.
Если у вас есть тело запроса в стиле POST с другими методами, оно зависит не столько от глагола HTTP, сколько от наличия заголовка запроса Content-Type:
и Content-Length:
.