Класс HttpRequest определяет два свойства:
Получает метод передачи данных HTTP (те, которые ДОБИРАЮТСЯ, POST или ГОЛОВА), используемый клиентом.
public string HttpMethod { get; }
Метод передачи данных HTTP используется клиентом.
и RequestType:
Получает или устанавливает метод передачи данных HTTP (ДОБЕРИТЕСЬ или POST), используемый клиентом.
public string RequestType { get; set; }
Строка, представляющая тип вызова HTTP, отправленный клиентом.
Каково различие между этими двумя свойствами? Когда я хотел бы использовать один по другому? Который является надлежащим для осмотра для наблюдения, какой метод передачи данных использовался клиентом?
Документация указывает, что HttpMethod возвратится, любой глагол использовался:
такой, в то время как ДОБИРАЮТСЯ, POST или ГОЛОВА
в то время как документация относительно RequestType, кажется, указывает на только одно из двух возможных значений:
ДОБЕРИТЕСЬ или POST
Я протестировал со случайной выборкой глаголов, и оба свойства, кажется, поддерживают все глаголы, и оба возвращают те же значения:
Тестирование:
Client Used HttpMethod RequestType
GET GET GET
POST POST POST
HEAD HEAD HEAD
CONNECT CONNECT CONNECT
MKCOL MKCOL MKCOL
PUT PUT PUT
FOOTEST FOOTEST FOOTEST
Что является различием между:
и когда я должен использовать один по другому?
Отражатель показывает, что RequestType
вызовы httpmethod
внутри. Так что вы когда-либо настолько слегка лучше вызов httpmethod
. На самом деле я думаю, что реальная причина requesttype
существует для обратной совместимости с классическим ASP.
Вы можете проверить статью ниже: -
Методы запроса: HTTP-запрос, сделанный с использованием telnet. Заголовки запроса, ответа и тело ответа выделены.
HTTP определяет восемь методов (иногда называемых «глаголами»), указывающих желаемое действие, которое должно быть выполнено над идентифицированным ресурсом. Что представляет этот ресурс, будь то уже существующие данные или данные, которые генерируются динамически, зависит от реализации сервера. Часто ресурс соответствует файлу или выходным данным исполняемого файла, находящегося на сервере.
HEAD Запрашивает ответ, идентичный тому, который соответствует запросу GET, но без тела ответа. Это полезно для получения метаинформации, записанной в заголовках ответов, без необходимости транспортировать весь контент.
GET Запрашивает представление указанного ресурса. Обратите внимание, что GET не следует использовать для операций, вызывающих побочные эффекты, например, для выполнения действий в веб-приложениях. Одна из причин этого заключается в том, что GET может произвольно использоваться роботами или поисковыми роботами, которым не нужно учитывать побочные эффекты, которые должен вызывать запрос. См. Безопасные методы ниже.
POST Отправляет данные для обработки (например, из HTML-формы) в указанный ресурс. Данные включены в тело запроса. Это может привести к созданию нового ресурса или обновлению существующих ресурсов, либо к тому и другому. PUT Загружает представление указанного ресурса. DELETE Удаляет указанный ресурс. TRACE Повторяет полученное request, чтобы клиент мог видеть, какие промежуточные серверы добавляют или изменяют в запросе. OPTIONS Возвращает методы HTTP, которые сервер поддерживает для указанного URL. Это можно использовать для проверки функциональности веб-сервера, запросив '*' вместо определенного ресурса. CONNECT Преобразует соединение запроса в прозрачный туннель TCP / IP, обычно для упрощения SSL -зашифрованная связь (HTTPS) через незашифрованный HTTP-прокси. [5] PATCH Используется для частичного изменения ресурса. [6]
HTTP-серверы необходимы для реализации как минимум методы GET и HEAD [7] и, по возможности, также метод OPTIONS. [необходима ссылка] Безопасные методы
Некоторые методы (например, HEAD, GET, OPTIONS и TRACE) определены как безопасные , что означает, что они предназначены только для поиска информации и не должны изменять состояние сервера. Другими словами, они не должны иметь побочных эффектов, помимо относительно безобидных эффектов, таких как ведение журнала, кэширование, показ баннерной рекламы или увеличение счетчика веб-сайтов. Поэтому выполнение произвольных запросов GET без учета контекста состояния приложения следует считать безопасным.
Напротив, такие методы, как POST, PUT и DELETE, предназначены для действий, которые могут вызывать побочные эффекты либо на сервере, либо внешние побочные эффекты, такие как финансовые транзакции или передача электронной почты.Поэтому такие методы обычно не используются соответствующими веб-роботами или поисковыми роботами, которые, как правило, отправляют запросы без учета контекста или последствий.
Несмотря на предписанную безопасность GET-запросов, на практике их обработка сервером технически не ограничена каким-либо образом, и небрежное или преднамеренное программирование может так же легко (или более легко из-за отсутствия мер предосторожности пользовательского агента) вызвать не -тривиальные изменения на сервере. Это не рекомендуется, поскольку это может вызвать проблемы для веб-кэширования, поисковых систем и других автоматизированных агентов, которые могут вносить непреднамеренные изменения на сервере.