Почему доступно несколько методов HTTP? - PullRequest
0 голосов
/ 29 апреля 2018

Назад, когда я впервые начал разрабатывать клиент-серверные приложения, которые должны были использовать HTTP для отправки данных на сервер, я был довольно одарен, когда речь шла о методах HTTP. Я буквально использовал GET-запросы на ВСЕ.

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

Почему важно использовать определенные методы HTTP, а не использовать один и тот же метод для всего?

Я понимаю, что POST более безопасен, чем GET (GET делает данные видимыми в HTTP-URL), однако, не могли бы мы тогда просто использовать POST для всего?

1 Ответ

0 голосов
/ 29 апреля 2018

Я собираюсь дать краткий ответ на этот вопрос.

GET используется для чтения информации. Это метод по умолчанию, и все используют его для перехода с одной ссылки на другую. Это касается как браузеров, так и сканеров.

GET является «безопасным». Это означает, что если вы делаете запрос GET, вы гарантированно никогда не измените что-либо на сервере. Если запрос GET может привести к удалению чего-либо на сервере, это может быть очень проблематично, поскольку паук / сканер / поисковая система может предположить, что следующие ссылки безопасны, и автоматически удаляет вещи.

Вот почему у нас есть несколько разных методов. GET предназначен для того, чтобы вы могли «получать» вещи с сервера. Точно так же PUT позволяет вам установить что-то новое на сервере, а DELETE позволяет вам что-то удалить.

POST Самая большая оригинальная цель - отправка форм. Вы отправляете форму на сервер и просите сервер сделать что-то с этой формой.

Любой клиент (человек / браузер или машина / сканер) знает, что POST является «небезопасным». Он не будет автоматически выполнять POST запросов от вашего имени, если он действительно не знает, что это то, что вы (пользователь) хотите. Он также используется для таких вещей, как отправка форм.

Поэтому, когда вы разрабатываете свой веб-сайт, убедитесь, что вы используете GET только для получения информации с сервера, и используйте POST, если ваш ajax-запрос вызовет изменение «чего-то» на сервере.

Забавный факт: существует много официальных HTTP-методов. Хотя бы 30. Вы, вероятно, будете использовать только очень немногие из них.

Итак, чтобы ответить на вопрос в названии более точно:

Почему доступно несколько методов HTTP?

Различные методы HTTP имеют разные правила и ограничения. Если все согласятся с этими правилами, мы можем начать делать предположения о том, каково намерение. Поскольку эти гарантии существуют, HTTP-серверы, клиенты и прокси-серверы могут принимать разумные решения, не понимая вашего конкретного приложения.

...