Назад к вопросам
Intern
70
questionbank

Что такое методы HTTP?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Методы HTTP (глаголы или команды) определяют действия, которые могут быть выполнены над ресурсом, указанным в URI запроса.

Основные методы:

  • GET: Запрашивает представление указанного ресурса. Данные запроса передается в URL. Используется для получения данных.
  • POST: Отправляет данные для обработки на указанный ресурс. Данные запроса передаются в теле. Используется для создания или обновления ресурса.
  • PUT: Заменяет все текущие представления ресурса содержимым тела запроса. Используется для обновления ресурса.
  • DELETE: Удаляет указанный ресурс. Используется для удаления ресурса.
  • PATCH: Применяет частичные модификации к ресурсу.
  • HEAD: Запрашивает те же заголовки, что и GET, но без тела ответа.
  • OPTIONS: Описывает методы HTTP, которые сервер поддерживает для указанного URL.

Свойства методов:

  • Идемпотентность: Многократное выполнение одного и того же запроса приводит к тому же состоянию ресурса, что и однократное. Идемпотентны: GET, PUT, DELETE, HEAD, OPTIONS. Не идемпотентен: POST, PATCH.
  • Безопасность: Запрос не изменяет состояние ресурса на сервере. Безопасны: GET, HEAD, OPTIONS. Не безопасны: POST, PUT, DELETE, PATCH.
// Пример GET запроса в Java с использованием HttpClient
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.example.com/resource"))
        .GET()  // И
        .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

// Пример POST запроса в Java
String postBody = "{\"name\":\"test\", \"value\":\"data\"}";
HttpRequest postRequest = HttpRequest.newBuilder()
        .uri(URI.create("https://api.example.com/resource"))
        .POST(HttpRequest.BodyPublishers.ofString(postBody)) // И
        .header("Content-Type", "application/json")
        .build();
HttpResponse<String> postResponse = client.send(postRequest, HttpResponse.BodyHandlers.ofString());
System.out.println(postResponse.body());