Каково различие между HttpMethod и RequestType HttpRequest?

Класс HttpRequest определяет два свойства:

HttpMethod:

Получает метод передачи данных 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

Что является различием между:

  • HttpRequest. HttpMethod
  • HttpRequest. RequestType

и когда я должен использовать один по другому?

26
задан Ian Boyd 20 November 2013 в 16:55
поделиться

2 ответа

Отражатель показывает, что RequestType вызовы httpmethod внутри. Так что вы когда-либо настолько слегка лучше вызов httpmethod . На самом деле я думаю, что реальная причина requesttype существует для обратной совместимости с классическим ASP.

27
ответ дан 28 November 2019 в 17:19
поделиться

Вы можете проверить статью ниже: -

Методы запроса: 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-запросов, на практике их обработка сервером технически не ограничена каким-либо образом, и небрежное или преднамеренное программирование может так же легко (или более легко из-за отсутствия мер предосторожности пользовательского агента) вызвать не -тривиальные изменения на сервере. Это не рекомендуется, поскольку это может вызвать проблемы для веб-кэширования, поисковых систем и других автоматизированных агентов, которые могут вносить непреднамеренные изменения на сервере.

-4
ответ дан 28 November 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: