На каком протоколе основывается архитектурный стиль REST?

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

Ответ

REST (Representational State Transfer) — это архитектурный стиль, который основывается на протоколе HTTP (или HTTPS для безопасности). REST использует стандартные методы HTTP как операции для работы с ресурсами.

Основные HTTP-методы в REST: Метод Операция над ресурсом Идемпотентность Безопасность
GET Получение (Read) Да Да
POST Создание (Create) Нет Нет
PUT Полное обновление/замена (Update/Replace) Да Нет
PATCH Частичное обновление (Partial Update) Нет Нет
DELETE Удаление (Delete) Да Нет

Пример REST-запроса на Java:

// Использование HttpClient (Java 11+)
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.example.com/users/123"))
        .header("Accept", "application/json")
        .GET() // Используем HTTP метод GET
        .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("Status: " + response.statusCode());
System.out.println("Body: " + response.body());

Ключевые принципы: REST является протоколо-независимым, но на практике почти всегда реализуется поверх HTTP из-за его повсеместности, простоты и наличия необходимых механизмов (коды состояния, заголовки).