2014-09-22 2 views
-1

Я задаюсь вопросом, почему мы до сих пор с помощью метода GET в AJAX запросов, например:GET лучше, чем POST в подходе AJAX?

$.ajax({ 
    type: "GET", 
    url: "SomeController/GetSomething", 
    data: { id: 100} 
}); 

GET это удобно, когда вы хотите хранить данные в URL, когда вы запрашиваете Google, и вы хотите отправить этот запрос другу или что-то еще. С другой стороны, у нас есть пробелы в безопасности. Они не большие (я бы сказал, что они являются препятствиями), но было бы немного лучше использовать POST, когда вы не хотите показывать данные формы. Кроме того, POST может хранить данные любого типа, управлять размером данных и скрывать передаваемые переменные.

Является ли это хорошим решением всегда использовать GET в местах, которые не являются «общедоступными» (строки поиска, страница статьи, профиль пользователя, ...) и использовать POST везде? При таком подходе все запросы AJAX следует отправлять с использованием метода POST.

+1

GET означает, что вы можете видеть параметры в URL-адресе; не так w/POST.GET имеет максимальный предел длины (зависит от сервера: 2 КБ-8 КБ); не так w/POST. – duffymo

+2

Разница заключается не в том, как вы его используете, а в том, как их ДОЛЖНЫ использоваться: GET = дать мне «что-то» с идентификатором 100. POST = создать что-то с идентификатором 100. Это в основном предназначено для служб RESTful. Другая причина заключается в том, что вы можете скопировать запрос GET, а не запрос POST. – DoXicK

+0

Конечно, это ОТДЫХ. – Fka

ответ

0

Как вы сказали, GET не безопасен, но позволяет нам копировать и вставлять ссылки и получать те же результаты. POST более безопасен в том, как он не показывает параметры напрямую, ему все еще нужно работать на бэкэнд для подключения всех отверстий.

0

Ключом не следует забывать, почему его называют «GET», а другой - «POST».

GET доступен, поэтому не подходит для чего-либо чувствительного, но легко манипулирует напрямую.

POST следует использовать для отправки на серверные, чувствительные или «длинные» данные.

0

Это только мое мнение:

Опытный пользователь, который действительно хочет знать, какие данные размещены всегда будет в состоянии обнаружить именно то, что данные передаются во время запроса HTTP. Единственный инструмент, который вам действительно нужен, - это инструменты, встроенные в современные браузеры. Если вы передаете с использованием HTTPS, то сторонняя сторона сможет распознавать параметры GET, но не данные POST, поэтому я бы сказал, что вы правы, что конфиденциальные данные следует отправлять только как POST. В противном случае, как инструмент безопасности, POST через GET выполняет аналогичную функцию с маской пароля на входах с паролем (чтобы кто-то не просматривал ваши данные через плечо).

Теперь, на ваш вопрос «ПОЛУЧИТ лучше ...?»

Я бы сказал, что так же, как с помощью синхронных запросов HTTP, вы должны использовать GET, когда пользователь или приложение должно получить данных и POST, когда ваше приложение пользователя должен пост данных (за настойчивость - в сеансе (например, логин) или базы данных и т. д.). Так что это действительно большая разница в семантике. Практически, вы могли бы использовать пост для всего, если хотите.

1

При использовании POST XHR вы используете двухэтапный процесс: сначала отправляете заголовки, а затем данные, но используете Ajax для отклика, правильно? Итак, зачем использовать двухэтапный процесс, когда вы можете использовать одноэтапный процесс (GET XHR)?

Кроме того, запрос AFAIK, GET является кешируемым, POST - нет.

Последнее, но не менее важное: некоторые из них указали: HTTP-глаголы имеют смысл.

Продолжайте использовать GET XHR для получения данных с сервера и POST XHR для отправки данных.