Как вы уже обнаружили, есть два способа передачи данных по протоколу http: GET
или POST
. Существует также третий тип HTTP-сообщения, называемый HEAD
, но на самом деле он используется только для получения метаданных вокруг ресурса без его загрузки и широко не применяется.
Очевидно, что и GET
, и POST
легко доступны благодаря использованию тега <form>
. GET
также легко доступен, если вручную добавить параметры запроса в URL в виде пар имя-значение (foo.html?a=1&b=2
).
Однако прелесть и сложность POST
в том, что пары имя-значение передаются из браузера на веб-сервер, заключенный в заголовок HTTP-запроса, который не так легко доступен. Единственный способ выполнить POST
без использования тега <form>
- это вручную изменить заголовок HTTP-запроса и добавить пары имя-значение в себя.
Также имейте в виду, что HTTP-сервер сам по себе не знает, поступил ли запрос (GET
или POST
) из главного окна браузера или из вызова AJAX. В любом случае, веб-сервер будет читать запрос, расшифровывать, если это запрос GET
или POST
, искать подходящие пары имя-значение и генерировать ответ.
Если вам нужна дополнительная информация о том, как правильно отформатировать POST
запрос, вы можете перейти по адресу jmarshall.com / easy / http / или, возможно, tcpipguide.com / free / t_HTTPRequestMessageFormat .htm . Окончательным ресурсом всегда является W3C , но иногда RFC могут быть ужасно запутанными для нас, простых смертных, читать.