Sobes.tech
Intern

Kokie yra HTTP užklausų tipai?

sobes.tech AI

Atsakymas iš AI

Pagrindiniai HTTP užklausų tipai: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, TRACE, CONNECT.

Aprašymas dažniausiai naudojamų:

  • GET: Prašo parodyti nurodytą išteklių. Šio metodo užklausos turėtų gauti tik duomenis.
  • POST: Siunčia duomenis apdorojimui į tam tikrą išteklių. Dažnai rezultatas yra būsenos pakeitimas arba šalutiniai efektai serveryje.
  • PUT: Pakeičia visus esamus tikslinio ištekliaus vaizdus duomenimis iš užklausos kūno.
  • DELETE: Ištrina nurodytą išteklių.
  • PATCH: Taikomi daliniai pakeitimai ištekliui.
  • HEAD: Prašo antraščių kaip ir GET, bet be atsakymo kūno. Naudojama metaduomenims gauti.
  • OPTIONS: Aprašo ryšio parametrus tiksliniam ištekliui.
  • CONNECT: Paverčia prašomą jungtį į skaidrią TCP/IP proxy serverį.
  • TRACE: Atlieka atgalinio ryšio testą keliu iki tikslo ištekliaus.

Skirtumai tarp GET ir POST:

Žymuo GET POST
Tikslas Gauti duomenis Siųsti duomenis apdorojimui
Duomenų perdavimas Per URL parametrus (Query String) Per užklausos kūną
Sauga Idempotentinis (pakartotinės užklausos nekeičia būsenos) Neidempotentinis
Duomenų matomumas Matomi URL, saugomi naršyklės istorijoje, serverio žurnaluose Nematomai URL, neįrašomi naršyklės istorijoje
Dydis Apribotas URL ilgiu Be apribojimų (arba labai didelis)
Kaušas Gali būti kaušas Neskaitomas pagrindinėmis priemonėmis
Žymės Galima pridėti puslapį su GET parametrais žymėse Negalima (įprastais formos siuntimo metodais)

PHP pavyzdys naudojant GET:

<?php
// Gauti `id` parametrą iš URL
$userId = $_GET['id'];
echo "User ID: " . htmlspecialchars($userId);
?>

PHP pavyzdys naudojant POST (formos duomenų apdorojimas):

<?php
// Patikrinimas, ar užklausa yra POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Gauti duomenis iš užklausos kūno
    $username = $_POST['username'];
    $password = $_POST['password'];
    // Tolimesnė duomenų apdorojimas (pvz., įrašymas į duomenų bazę)
    echo "Username: " . htmlspecialchars($username) . "<br>";
    echo "Password received.";
}
?>