Есть ли реальное преимущество при использовании правильных методов HTTP? - PullRequest
0 голосов
/ 10 марта 2020

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

Каковы недостатки в отсутствии использования "HEAD", "PUT", "DELETE", "TRACE" и др. c.?

Ответы [ 2 ]

1 голос
/ 14 марта 2020

Семантика каждого HTTP-глагола известна клиентам (например, браузерам) и промежуточному оборудованию. Они обрабатывают запросы соответственно (с точки зрения ведения журнала, кэширования, воспроизведения и т. Д. c ...)

Некоторые примеры:

  • A GET / HEAD запрос считается "безопасным" и может быть воспроизведен несколько раз, ничего не нарушая. С другой стороны, запрос POST не считается «безопасным», поскольку подразумевает изменение удаленного состояния. Вот почему, когда вы переходите, публикуя форму, и нажимаете кнопку «назад» вашего браузера, ваш браузер спрашивает, хотите ли вы POST снова заполнить форму
  • Запрос GET следует использовать для получить удаленный ресурс. Вот почему ресурс может быть кэширован в промежуточном оборудовании с поддержкой HTTP, чтобы уменьшить количество запросов в бэкэнд-системах. Ответ на запрос GET считается кэшируемым (он реализован в Service Workers , веб-серверах, HTTP-прокси и т. Д. c ...).
  • Если вы используете GET запрос вместо POST, это означает, что вы отправляете полезную нагрузку в URL, а это означает, что потенциальные конфиденциальные данные регистрируются бэкэндом, а также все промежуточное оборудование (URL рассматривается как регистрируемая не конфиденциальная информация )
  • О PUT, PATCH, DELETE, нет особой озабоченности по поводу использования POST вместо одного из них, они здесь, чтобы помочь вам создать самодокументированные RESTful API Определите детализированные авторизации на конечных точках и очень похожи на POST, когда мы забываем семантику (не кешируемая, не воспроизводимая, при необходимости сохраняем данные в теле)
0 голосов
/ 10 марта 2020

GET-запросы обычно предназначены для запроса данных, а POST - для отправки данных. Самая большая разница в том, что параметры GET видны в URL после "?" пока POST отправляется в заголовок запроса. POST-запросы в этом смысле более безопасны и должны использоваться для отправки конфиденциальных данных, таких как пароли. GET-запросы могут быть использованы для отправки параметров только через URL. Например, если ваш сайт динамически загружает страницы на основе параметров, полезно использовать get. YouTube использует get для передачи идентификатора видео.

https://www.youtube.com/watch?v=dQw4w9WgXcQ

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