Sobes.tech
Intern

Millised on HTTP-päringute tüübid?

sobes.tech AI

Vastus AI-lt

Peamised HTTP-päringu tüübid: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, TRACE, CONNECT.

Kirjeldus kõige levinumatest:

  • GET: Nõuab märgitud ressursi kuvamist. Selle meetodiga tehtud päringud peaksid saama ainult andmeid.
  • POST: Saadab andmeid töötlemiseks määratud ressursile. Tulemuseks võib olla oleku muutus või kõrvaltoimed serveris.
  • PUT: Asendab kõik praegused vaated sihtressursil andmetega päringu kehas.
  • DELETE: Kustutab märgitud ressursi.
  • PATCH: Rakendab osalisi muudatusi ressursile.
  • HEAD: Nõuab päiseid nagu GET, kuid ilma vastuse kehas. Kasutatakse metaandmete saamiseks.
  • OPTIONS: Kirjeldab sihtressursi ühenduse parameetreid.
  • CONNECT: Muudab nõutud ühenduse läbipaistvaks TCP/IP proxy-serveriks.
  • TRACE: Teostab tagasipöördumise testi sihtressursi teekonnal.

Erinevused GET ja POST vahel:

Omadus GET POST
Eesmärk Andmete saamine Andmete saatmine töötlemiseks
Andmete edastamine URL-i parameetrite kaudu (Query String) Päringu kehas
Turvalisus Idempotentne (korduvad päringud ei muuda olekut) Mitte-idempotentne
Andmete nähtavus Nähtav URL-is, salvestub brauseri ajaloos, serveri logides Nähtamatu URL-is, ei salvestu brauseri ajaloos
Andmete suurus Piiratud URL-i pikkusega Piiramatu (või väga suur)
Puhverdamine Võib puhverdada Ei puhverdata põhivahenditega
Järjehoidjad Võib lisada lehekülje GET-parameetritega järjehoidjatesse Ei saa (tavaliste vormi saatmise meetoditega)

PHP näide GET kasutamisest:

<?php
// `id` parameetri saamine URL-ist
$userId = $_GET['id'];
echo "User ID: " . htmlspecialchars($userId);
?>

PHP näide POST kasutamisest (vormi andmete töötlemine):

<?php
// Kontroll, kas päring on POST
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Andmete saamine päringu kehas
    $username = $_POST['username'];
    $password = $_POST['password'];
    // Andmete edasine töötlemine (nt andmebaasi salvestamine)
    echo "Username: " . htmlspecialchars($username) . "<br>";
    echo "Password received.";
}
?>