Sobes.tech
Intern

Kādi ir HTTP pieprasījumu veidi?

sobes.tech AI

Atbilde no AI

Galvenie HTTP pieprasījumu veidi: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, TRACE, CONNECT.

Apraksts par biežāk izmantotajiem:

  • GET: Pieprasīt norādītā resursa attēlojumu. Šim pieprasījumam jāsaņem tikai dati.
  • POST: Sūta datus apstrādei uz noteiktu resursu. Bieži rezultāts ir stāvokļa maiņa vai blakus efekti serverī.
  • PUT: Aizvieto visus pašreizējos attēlojumus mērķa resursā ar datiem no pieprasījuma ķermeņa.
  • DELETE: Dzēš norādīto resursu.
  • PATCH: Pielieto daļējas modifikācijas resursam.
  • HEAD: Pieprasa galvenes kā GET, bet bez atbildes ķermeņa. Izmanto metadatu saņemšanai.
  • OPTIONS: Apraksta saziņas parametrus mērķa resursam.
  • CONNECT: Pārvērš pieprasīto savienojumu caurspīdīgā TCP/IP starpniekserverī.
  • TRACE: Veic atgriezeniskās saites testu pa ceļu uz mērķa resursu.

Atšķirības starp GET un POST:

Raksturlielums GET POST
Mērķis Datu saņemšana Datu sūtīšana apstrādei
Datu pārraide Pa URL parametriem (Query String) Pa pieprasījuma ķermeni
Drošība Idempotisks (atkārtotas pieprasījumi nemaina stāvokli) Nav idempotisks
Datu redzamība Redzams URL, saglabājas pārlūkprogrammas vēsturē, servera žurnālos Nav redzams URL, nesaglabājas pārlūkprogrammas vēsturē
Datu lielums Ierobežots URL garumā Bez ierobežojuma (vai ļoti liels)
Kešatmiņa Var tikt kešatbildēts Nav kešatbildēts ar galvenajiem līdzekļiem
Grāmatzīmes Var pievienot lapu ar GET parametriem grāmatzīmēm Nav iespējams (parastās formas sūtīšanas metodes)

PHP piemērs ar GET:

<?php
// Saņem `id` parametru no URL
$userId = $_GET['id'];
echo "User ID: " . htmlspecialchars($userId);
?>

PHP piemērs ar POST (formas datu apstrāde):

<?php
// Pārbauda, vai pieprasījums ir ar POST metodi
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Saņem datus no pieprasījuma ķermeņa
    $username = $_POST['username'];
    $password = $_POST['password'];
    // Turpmāka datu apstrāde (piemēram, datu bāzē saglabāšana)
    echo "Username: " . htmlspecialchars($username) . "<br>";
    echo "Password received.";
}
?>