Возможные способы запуска HTTP-запросов с использованием различных методов

0

Мне интересно узнать различные способы, которыми я могу запускать HTTP-запросы с использованием разных методов

Ex. HTTP-запрос с использованием метода GET может быть запущен следующими способами

  1. введите URL-адрес в браузере и нажмите Enter
  2. нажмите гиперссылку
  3. отправить форму HTML без указания атрибута метода
  4. отправьте форму HTML с атрибутом метода "GET"

Только способ запуска HTTP-запроса с использованием метода POST заключается в отправке HTML-формы с атрибутом метода POST,

Я уже экспериментировал в GET & POST с помощью Java Servlets, и мне любопытно протестировать HEAD, PUT, DELETE, TRACE, OPTIONS с помощью Java Servlets

Ожидание предложений от гуру Java/HTML/HTTP

FYI, я использую Apache Tomcat 7.0.47 для экспериментирования всего этого

заранее спасибо

  • 0
    Браузеры обычно не отправляют запросы, кроме POST и GET, но некоторые библиотеки Javascirpt могут. Если вам интересно узнать о REST, вы должны рассмотреть клиенты, отличные от браузеров, подумайте, что REST - это смена парадигмы от основанных на HTTP RPC.
  • 0
    Привет, Амир, нет ли другого способа отправить запрос, кроме GET / POST из браузера, используя простой HTML? Спасибо за напоминание, мы можем использовать AJAX для отправки различных методов. Но я только начинающий и хочу смоделировать это с помощью HTML, для начала
Показать ещё 3 комментария
Теги:
servlets
http

1 ответ

0
Лучший ответ

HTTP - это стандартный протокол. Он имеет стандартный формат запроса и ответа. Он отправляется через TCP. У вас есть HTTP-серверы, которые прослушивают какой-то порт, чтобы отвечать на запросы и HTTP-клиенты, отправляющие эти запросы.

На самом базовом уровне клиент HTTP может использовать Socket и SocketOutputStream для отправки HTTP-запроса. Взгляните на этот пример. Вы просто пишете байты (из сериализованного запроса String) в поток вывода сокета. HTTP-сервер анализирует байты и, если он находится в правильном формате, отправляет некоторый обработчик для обработки запроса.

Существует много библиотек Java, которые упрощают задачу для вас. Например, Java HttpUrlConnection или Apache HTTP Components.

На стороне клиента отправка запроса HEAD, PUT, DELETE, TRACE, OPTIONS не отличается от GET или POST, за исключением того, что может содержать строка запроса и тело запроса.

На стороне сервера, реализованной с помощью Servlet s, вы просто делаете свой класс расширением HttpServlet и реализуете различные doXxx().

  • 0
    Я попытался отправить приведенную ниже форму для отправки HEAD <form method = 'head' action = "myServlet"> .... </ form> Я все еще вижу в Fiddler (HTTP Proxy / Debugging Tool) запуск GET, а не HEAD Any конкретная причина? Теоретически я знаю, что HEAD предназначен только для получения информации заголовка ответа. Но он отображает выходные данные метода service (ServletRequest, ServletResponse), присутствующего в моем сервлете.
  • 0
    @JavaHopper Точка входа всех классов Servlet - это service метод. Если ваш класс не расширяет HttpServlet вам придется реализовать свои собственные процедуры диспетчеризации для обработки различных методов http.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню