В чем разница между get и post?

задняя часть

Это первый раз, когда я что-то пишу о Наггетс. Мэнсин сказала, что сейчас дрожит. Надеюсь, вы меня поправите, если я ошибаюсь.┓( ´∀`)┏

Наиболее интуитивно понятна семантическая разница

  • get используется для получения данных, post используется для отправки данных
  • Параметр get имеет ограничение по длине (ограничено длиной URL-адреса, конкретное значение зависит от ограничения браузера и сервера, до 2048 байт), в то время как сообщение не имеет ограничения.
  • Данные запроса на получение будут добавлены к URL-адресу, а URL-адрес и данные передачи разделены знаком «?». Несколько параметров связаны с помощью «&», а почтовый запрос поместит запрошенные данные в тело http-запроса.
  • get — это передача открытого текста, а post размещается в теле запроса, но разработчики могут увидеть его с помощью инструмента захвата пакетов, который также эквивалентен открытому тексту.
  • запросы на получение сохраняются в истории браузера и, возможно, в журналах веб-сервера

С текущей точки зрения post безопаснее, чем get, по крайней мере запрашиваемые данные не видны в URL. Но действительно ли это все? ? ?

Неправильно, неправильно? ? ? ? ?

  • Так безопасно или небезопасно? ? ? ? ?

В это время вы должны сначала определить, что используется для определения безопасности (например)

  • Как вы думаете, безопасно ли показывать этот URL моим родителям, дядям и тётям?
  • Вы просите младшего инженера-испытателя протестировать этот интерфейс, считаете ли вы его безопасным?
  • Вы просите инженера по тестированию безопасности просмотреть запрос на получение? Поэтому разные группы людей имеют разные определения безопасности.
  • правда

Во-первых, get и post по сути являются tcp-ссылками, но из-за ограничений http-протокола и браузера или сервера они различаются в процессе применения, но между ними все же есть большая разница: get при запросе Отправка пакет данных отправит заголовок и данные вместе, а post сгенерирует два пакета данных, чтобы сначала отправить заголовок, сервер возвращает 100, а затем отправляет данные, сервер возвращает 200

Итак, когда вы проанализируете get и post слой за слоем до конца, вы обнаружите, что их суть заключается в tcp-соединении, разницы нет, просто из-за правил протокола http и ограничений браузеров или серверов они отражаются в процессе приложения. разные.

Что, черт возьми, такое RFC?

Некоторое время назад, когда я увидел, что кто-то говорит об этом, кто-то вытащилRFC, то что такое RFC?

  • Запрос комментариев (RFC) представляет собой серию пронумерованных документов. Файл собирает информацию об Интернете, а также файлы программного обеспечения для сообщества UNIX и Интернета. (из энциклопедии Baidu)

Скажи это так! RFC — это спецификация Интернета. То, что мы обычно называем протоколом, — это существование RFC. В спецификации http/1.1 RFC7231 включает несколько методов http, которые определяют несколько свойств:

1.безопасный

Безопасность здесь отличается от общепринятого значения безопасности, например, если семантика запроса по существу заключается в получении данных (только для чтения), то запрос является безопасным. Если запрос, инициированный клиентом к серверу, не вызывает никакого изменения состояния на стороне сервера, то он в безопасности, а пост-запрос на отправку данных неизбежно вызовет соответствующее изменение сервера. Из этого измерения запрос на получение безопасен по отношению к серверу, а сообщение — нет.

ldempotend (идемпотент)

С точки зрения непрофессионала, идемпотентность означает, что эффект многократного выполнения одного и того же запроса точно такой же, как если бы он выполнялся только один раз. Цель извлечения идемпотентности здесь в основном состоит в том, чтобы иметь дело с ситуацией, когда один и тот же запрос отправляется повторно.Если соединение потеряно до того, как запрос ответит, если запрос идемпотентный, то вы можете безопасно отправить запрос повторно. Следовательно, можно сделать вывод, что запрос на получение является идемпотентным, запрос может быть отправлен повторно, а запрос на публикацию не является идемпотентным, а повторные запросы могут иметь непредсказуемые последствия.

кэшируемый

Как следует из названия, это вопрос о том, можно ли кешировать запрос.В большинстве случаев сообщение post не кэшируется (некоторые браузеры могут поддерживать кеширование сообщений), но get может кэшироваться.

Трудно понять, что:

get — это запрос на получение указанного ресурса. Метод get является безопасным, идемпотентным и кэшируемым. Тело сообщения метода get не имеет семантики.

Post — это обработка указанного ресурса в соответствии с телом сообщения Post не является безопасным, не идемпотентным и не кэшируемым (в большинстве случаев).

Хорошо, давай сегодня поговорим о многом. Если большой парень обнаружит что-то не так, пожалуйста, помоги мне исправить это, краб-краб-краб-краб! Подскользнись первым!