Какие основные HTTP-методы (методы запроса) вы знаете?

«Какие основные HTTP-методы (методы запроса) вы знаете?» — вопрос из категории Сети, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основные HTTP-методы, определяющие действие, которое нужно выполнить с ресурсом:

Метод Идемпотентность Безопасность Назначение
GET Да Да Получение данных или представления ресурса. Не должен изменять состояние сервера.
POST Нет Нет Создание нового ресурса или отправка данных для обработки.
PUT Да Нет Полное обновление ресурса. Если ресурса нет, может создавать его.
PATCH Нет Нет Частичное обновление ресурса.
DELETE Да Нет Удаление указанного ресурса.

Другие методы:

  • HEAD – аналогичен GET, но сервер возвращает только заголовки ответа (без тела). Используется для проверки доступности ресурса.
  • OPTIONS – описывает параметры связи (доступные методы) для целевого ресурса.
  • TRACE – выполняет петлевое тестирование пути к целевому ресурсу (для отладки).
  • CONNECT – устанавливает туннель к серверу, идентифицируемому целевым ресурсом (используется для SSL).

Практическое правило (REST): Соблюдайте семантику методов. Например, операцию поиска или фильтрации реализуйте через GET с query-параметрами, а не через POST.

Пример на Java (HttpURLConnection):

URL url = new URL("https://api.example.com/users");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true); // Разрешаем запись в тело запроса
// ... запись данных в OutputStream