ПОЛУЧИТЬ против пустого ПОСТА - PullRequest
3 голосов
/ 05 марта 2011

Для своей работы я просматривал несколько файлов javascript и обнаружил несколько вызовов AJAX, которые использовали POST, но не отправляли никаких данных.Кажется, раньше они это делали, но серверная часть была обновлена, и данные не были нужны, и предыдущие разработчики оставили их как POST (или они просто скопировали и вставили вызовы $.ajax из других файлов и удалили значения данных).

Я изменил эти пустые запросы POST на запросы GET.Я предполагаю, что более эффективно использовать GET вместо пустого POST.Я посмотрел и не нашел ничего полезного.

Итак, эффективнее ли использовать GET вместо POST без отправленных данных?

Ответы [ 3 ]

10 голосов
/ 05 марта 2011

Я бы сказал, что GET против POST не столько вопрос эффективности, сколько смысловой. Какова цель запросов POST? Если цель состоит в том, чтобы каким-то образом изменить состояние системы, я бы рекомендовал оставить их как POST. Если целью является получение некоторых данных из системы, я бы изменил их на GET.

Проблема параметров данных на самом деле не вступает в игру, так как запросы GET и POST могут принимать параметры. (ПОЛУЧИТЬ строку запроса и POST через почтовые данные)

Помимо теоретических проблем, есть реальные причины использовать GET или POST. Например, запросы GET могут кэшироваться веб-серверами, прокси-серверами и клиентами, тогда как запросы POST никогда не кэшируются AFAIK. Я уверен, что есть и другие различия, но соблюдение семантического характера запросов должно позаботиться о них за вас.

4 голосов
/ 05 марта 2011

Скорее, чем из соображений производительности, это разница в значении двух глаголов.Предполагается, что GET не изменяет запрошенный ресурс, тогда как POST может это сделать.

2 голосов
/ 05 марта 2011

Кроме того факта, что GET имеет на один символ меньше POST Я сомневаюсь, что есть разница в производительности. Оба запроса имеют точные заголовки (кроме части метода) и не имеют тела. Они практически идентичны.

Например:

GET /someResource.ext HTTP/1.1
Accept: text/plain
Accept-Encoding: gzip
// empty line //

против

POST /someResource.ext HTTP/1.1
Accept: text/plain
Accept-Encoding: gzip
// empty line //

Но, выбирая одно над другим, вы должны учитывать их назначение. GET следует использовать, когда вам нужно получить что-то с сервера, тогда как POST следует использовать, когда вам нужно отправить что-то на сервер (отправить как в дать не так, как в отправка параметра ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...