Sobes.tech
Intern

Какви видове HTTP заявки съществуват?

sobes.tech AI

Отговор от AI

Основни видове HTTP заявки: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, TRACE, CONNECT.

Описание на най-често срещаните:

  • GET: Изисква представяне на посочения ресурс. Тази заявка трябва да получава само данни.
  • POST: Изпраща данни за обработка към определен ресурс. Често резултатът е промяна на състоянието или странични ефекти на сървъра.
  • PUT: Заменя всички текущи представяния на целевия ресурс с данните от тялото на заявката.
  • DELETE: Изтрива посочения ресурс.
  • PATCH: Прилага частични модификации към ресурса.
  • HEAD: Изисква заглавки като GET, но без тяло на отговора. Използва се за получаване на метаданни.
  • OPTIONS: Описва параметрите за връзка към целевия ресурс.
  • CONNECT: Преобразува заявената връзка към прозрачен TCP/IP прокси сървър.
  • TRACE: Извършва тест за обратна връзка по пътя към целевия ресурс.

Разлики между GET и POST:

Признак GET POST
Цел Получаване на данни Изпращане на данни за обработка
Пренос на данни Чрез параметри в URL (Query String) Чрез тялото на заявката
Сигурност Идемпотентен (повторни заявки не променят състоянието) Не идемпотентен
Видимост на данните Видими в URL, запазват се в историята на браузъра, логове на сървъра Не се виждат в URL, не се запазват в историята на браузъра
Размер на данните Ограничен от дължината на URL-а Без ограничения (или много големи)
Кеширане Може да се кешира Не се кешира с основните средства
Добавяне към отметки Може да добавите страница с GET параметри към отметките Не може (за обикновени методи за изпращане на форми)

Пример за използване на GET в PHP:

<?php
// Получаване на параметъра 'id' от URL
$userId = $_GET['id'];
echo "User ID: " . htmlspecialchars($userId);
?>

Пример за използване на POST в PHP (обработка на данни от форма):

<?php
// Проверка дали заявката е с метод POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Получаване на данни от тялото на заявката
    $username = $_POST['username'];
    $password = $_POST['password'];
    // Дальнейша обработка на данните (например, запис в база данни)
    echo "Username: " . htmlspecialchars($username) . "<br>";
    echo "Password received.";
}
?>