Ответ
GET — это идемпотентный HTTP-метод, предназначенный только для получения (чтения) данных с сервера. Он не должен изменять состояние сервера или иметь побочные эффекты.
Основные характеристики и использование:
- Данные в URL: Параметры передаются в строке запроса (после
?).GET /api/users?role=admin&limit=10 HTTP/1.1 - Кешируемость: Ответы на GET-запросы могут и должны кешироваться браузерами и промежуточными прокси.
- Закладки и история: URL GET-запроса можно сохранить в закладки, так как он содержит все необходимые параметры.
- Ограничения: Длина URL ограничена (обычно ~2048-4096 символов), данные видны в истории и логах.
Пример на C# (ASP.NET Core):
// Контроллер для обработки GET-запроса
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
[HttpGet] // Атрибут, указывающий на метод GET
public IActionResult GetUsers([FromQuery] string role, [FromQuery] int limit = 20)
{
// Логика получения данных (без модификации состояния)
var users = _userService.GetFilteredUsers(role, limit);
return Ok(users); // Возвращаем данные с кодом 200 OK
}
}
Когда НЕ использовать GET: Для отправки конфиденциальных данных (пароли, токены) или больших объемов данных (используйте POST или PUT).