Мой сервер XMPP получил основное повышение скорости (извините, никакие фактические числа, чисто наблюдательные) после того, как я последовательно пытался предотвратить их (такие как проверка, если сокет подключен перед попыткой считать больше данных), и предоставление мне способы избежать их (упомянутые методы TryX). Это было только с приблизительно 50 активными (болтающими) виртуальными пользователями.
Дело не в скорости. Есть много случаев, когда POST более применим. Например, поисковые системы будут индексировать URL-адреса GET, а браузеры могут добавлять их в закладки и отображать в истории. В результате, если вы предпримете такие действия, как изменение БД на основе запроса GET, это может быть опасно, поскольку некоторые боты также могут проходить по URL-адресу.
Другой случай может быть проблемой безопасности. Если вы отправите учетные данные с помощью GET, они будут перечислены в истории браузера и файлах журнала сервера.
Существует несколько неправильных представлений о GET и POST в HTTP. Есть одно основное отличие: GET должен быть идемпотентным, а POST - нет. Это означает, что GET не вызывают побочных эффектов, т. Е. Я могу отправлять GET в веб-приложение столько раз, сколько захочу (подумайте, нажимая Ctrl + R или F5 много раз), и запросы будут «безопасными»
Я не могу сделать это с помощью POST, POST может изменить данные на сервере. Например, если я заказываю элемент в Интернете, этот элемент должен быть добавлен с помощью POST, потому что состояние изменяется на сервере, количество добавленных элементов увеличилось на 1. Если бы я сделал это с помощью POST и нажал обновить в браузере браузер предупреждает меня, если я сделаю это с помощью GET, браузер просто отправит запрос.
На сервере GET vs POST - это чистое соглашение, т.е. Я как разработчик должен убедиться, что я кодирую POST на сервере так, чтобы , а не повторять вызов. Есть разные способы сделать это, но это другой вопрос.
Чтобы ответить на вопрос, использую ли я GET или POST для выполнения той же задачи, разницы в производительности нет.
Вы можете прочитать RFC ( http : //www.w3.org/Protocols/rfc2616/rfc2616.html ) для получения дополнительных сведений.
Если посмотреть на протокол http, POST или GET должны быть одинаково легкими и быстрыми для синтаксического анализа. Я бы сказал, разницы в производительности нет.
Взгляните на необработанные заголовки HTTP
http GET
GET /index.html?userid=joe&password=guessme HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0
http POST
POST /login.jsp HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0
Content-Length: 27
Content-Type: application/x-www-form-urlencoded
userid=joe&password=guessme
С моей точки зрения, производительность не следует учитывать при сравнении GET и POST.
POST увеличит ваши заголовки еще больше, просто сделав их больше, но на самом деле разница должна быть незначительной, поэтому я не понимаю, почему это должно вызывать беспокойство.
Просто подождите. Имейте в виду, что правильный способ использовать HTTP - использовать GET только для действий и POST для данных. Вам не обязательно, но вы также не хотите иметь случай, когда боты Google могут, например, вставлять, удалять или манипулировать данными, которые предназначены только для обработки человеком, просто потому, что он следует по найденным ссылкам. .
Вы должны думать о GET как о «месте, куда можно пойти», а о POST как о «выполнении чего-либо». Например, форма поиска должна быть отправлена с использованием GET, потому что страница результатов поиска является «местом», и пользователь захочет добавить ее в закладки или извлечь ее из своей истории позже. Если вы отправляете форму с помощью POST, пользователь может воссоздать страницу, только отправив форму еще раз. С другой стороны, если бы вы выполняли действие, такое как нажатие кнопки удаления, вы не хотели бы отправлять это с помощью GET, поскольку действие будет повторяться всякий раз, когда пользователь возвращается по URL-адресу.