2009-09-29 7 views
1

Является ли POST более компактным, чем GET, поскольку запросы GET должны быть закодированы в URL?Что более компактно, GET или POST?

+2

Почему вы озабочены этой оптимизации? –

+1

Вдали от оптимизаций вопрос очень интересный. – 2009-09-29 18:44:27

+1

Используйте, чтобы изменить представление, которое вы представляете пользователю. Используйте сообщение, чтобы изменить то, что находится на вашем сервере. Не смешивайте их и используйте правильный для правильной работы. Получает, должен ВСЕГДА быть свободным от побочных эффектов. –

ответ

1

Простое примечание. Согласно команде Yahoo YUI и YSlow, при использовании объектов XMLHttpRequest (AJAX) POST почти всегда использует два пакета, тогда как GET будет использовать один (разрешает длину контента).

Это означает, что ваши запросы AJAX являются «более компактными», если вы используете GET.

Источник:

http://developer.yahoo.com/performance/rules.html#ajax_get

5

Оба имеют совершенно разные цели, поэтому я не буду сравнивать их таким образом. GET предназначен для поиска данных и не должен иметь побочных эффектов. И POST предназначен для отправки данных, а не для их получения.

4

И ПОЧТА. Они одинаково компактны. Это вопрос , где данные идут. Для POST он попадает в тело запроса. Для GET - в URL. Более того, в случае кодирования multpart/form-data (что требуется для загрузки файлов, но в этом случае GET-запрос не является вариантом, в любом случае) POST будет более подробным.

2

Нет, запросы POST еще должны быть помещены в HTTP-запрос. Вы просто не видите их как часть URL-адреса.

IE вот прибудете запрос

GET <url with params> 

против почтового запроса

POST <url> 
    ... 
    <params> 
2

POST имеет еще одну букву в нем, чем GET, так что менее компактно.

Если компактность очень важна и вам не нужна семантика HTTP, используйте вместо нее двоичный протокол. Семантика POST и GET отличается, и HTTP не оптимизирован для компактности.

2

Возможно, вы захотите ознакомиться со следующей информацией относительно удобства использования vs post. http://www.w3.org/2001/tag/doc/whenToUseGet.html

Подводя итог:

использование GET, если:

взаимодействие больше похоже на вопрос. Например, поиски, только для чтения операций и т.д.

использование POST, если:

Взаимодействие больше похож на порядок, изменяет состояние ресурса, или пользователь будет нести ответственность за результаты взаимодействия.

Обратите внимание, что ничто из этого не учитывает РАЗМЕР запроса. Для большей мысли вы могли бы подумать о первых днях Интернета, когда поисковые системы вызвали проблемы с базой данных, просто выполнив запросы GET по ссылкам, которые они сканировали. Это объясняется тем, что некоторые программисты использовали запросы GET для изменения состояния ресурсов (например, удаление записей, удаление таблиц и т. Д.).

+1

Я бы предположил, что значительное количество веб-сайтов по-прежнему неправильно используют GET для изменения состояния. –

 Смежные вопросы

  • Нет связанных вопросов^_^