27.10. Tipovi web zahteva (POST i GET)
Vežbe
Pokrenuti Xampp-Control (XAMPP je u školi postavljen na D: particiju) i startovati Apache web server.
Ako biste ga samo zatvorili (na iksić) , time ne biste zaustavili Apache - i dalje ćete mu moći pristupiti u donjem desnom delu ekrana. Zaustavljanje će kasnije ići tako što se prvo zaustavi Apache (na dugme Stop) a zatim klikne na Quit.
U folderu htdocs kreirati svoj podfolder sa nazivom prezimeIme (ako ga nemate: vaše prezime i ime, bez šašavih slova). U tom vašem folderu ćete za svaki od sledećih primera kreirati poseban podfolder. ( Trudite se da nazivi foldera budu što kraći! )
Kreirati folder za današnji rad: test i u njemu kreirati index.html (samo sa nekim naslovom) i pristupiti mu sa lokalnog web servera : u liniju browsera kucati putanju localhost/prezimeIme/test/ i on će odnah prepoznati vaš fajl. .
Sada kreirati folder test2, otvoriti ga u VS Code, ali ovaj put kreirati index.php u koji ćete smestiti samo jednu liniju koda:
<?php phpinfo() ?>
Šta ćete dobiti ako u liniji browsera ukucate: localhost/prezimeIme/test2/ ... - verzija php -a koja vam "trči" na računaru
Lekcija br. 1 za 27.10:
Tipovi web zahteva (POST i GET)
Kada korisnik otvori neku web stranicu ili pošalje formu (npr. za prijavu, registraciju, pretragu...), njegov web browser komunicira sa web serverom pomoću tzv. HTTP zahteva.
Zahtev (engl. request) je kao poruka koju browser šalje serveru, a server zatim vraća odgovor (engl. response) — obično HTML stranicu ili podatke.
Postoji više tipova zahteva, ali najvažniji i najčešći su:
-
GET
-
POST
1. GET zahtev
GET se koristi kada želimo da dobijemo podatke sa servera — dakle, nešto „čitamo“, a ne „menjamo“.
Kako to izgleda?
Kada se u liniji Google pretraživača ukuca tekst java i pritisne Enter, u URL liniji će pisati nešto kao :
https://www.google.com/search?q=java
to je GET zahtev.
U URL-u se vidi šta je traženo: q=java
(delovi posle znaka ? predstavljaju parametre koji se šalju serveru, a tu ulaazi i tip browsera i još po nešto .... ).
Karakteristike GET zahteva:
| Osobina | Objašnjenje |
|---|---|
| Vidljivo u URL-u | Parametri se vide u adresi (npr. ?ime=Marko&prezime=Petrovic) |
| Ograničena dužina | URL ne može biti beskonačno dug |
| Pogodan za pretragu | Koristi se kada hoćemo da dohvatimo podatke (npr. pretraga proizvoda, članka...) |
| Nema "skrivenih" podataka | Nije bezbedno za lozinke, mejlove itd. |
Primer GET zahteva u HTML-u
<form method="get" action="rezultati.html">
<label>Unesi grad:</label>
<input type="text" name="grad">
<input type="submit" value="Pretraži">
</form>
Ako korisnik unese Beograd, i klikne Pretraži, u adresnoj liniji će se pojaviti:
rezultati.html?grad=Beograd
2. POST zahtev
POST se koristi kada želimo da pošaljemo podatke na server — obično da ih upisujemo, menjamo ili brišemo.
Primer: slanje forme za prijavu na sajt, registraciju, unos komentara, porudžbinu itd.
Karakteristike POST zahteva:
| Osobina | Objašnjenje |
|---|---|
| Ne vidi se u URL-u | Podaci se šalju "u pozadini", ne prikazuju se u adresi |
| Nema ograničenja dužine | Može poslati velike količine podataka |
| Bezbedniji za osetljive podatke | Lozinke, mejl adrese, brojevi kartica... |
| Ne pamti se u istoriji | browser ne pamti sadržaj POST zahteva |
| Pogodan za promene u bazi | Koristi se kada želimo da dodamo ili izmenimo nešto na serveru |
Primer POST zahteva u HTML-u
<form method="post" action="login.php">
<label>Korisničko ime:</label>
<input type="text" name="korisnik"><br>
<label>Lozinka:</label>
<input type="password" name="lozinka"><br>
<input type="submit" value="Prijavi se">
</form>
Kada se forma pošalje, podatke ne vidimo u URL-u — oni idu „skriveni“ u pozadini do servera.
Poređenje: GET vs POST
| Osobina | GET | POST |
|---|---|---|
| Tip upotrebe | Dohvata podatke | Šalje/menja podatke |
| Vidljivost | Parametri se vide u URL-u | Parametri se ne vide |
| Bezbednost | Manja | Veća |
| Dužina podataka | Ograničena | Neograničena |
| Primer upotrebe | Pretraga, filtriranje, navigacija | Registracija, prijava, unos komentara |
Vežba 1
Kreirati HTML formu koja koristi GET metod i omogućava da korisnik unese svoje ime i vidi ga u URL-u.
<form method="get" action="pozdrav.html">
<label>Unesi svoje ime:</label>
<input type="text" name="ime">
<input type="submit" value="Pošalji">
</form>
➡Nakon što korisnik unese ime "Ana" i klikne na dugme, URL će biti: pozdrav.html?ime=Ana
Vežba 2
Kreirati HTML formu koja koristi POST metod i služi za unos komentara (ime i tekst komentara).
<form method="post" action="komentar.php">
<label>Ime:</label><br>
<input type="text" name="ime"><br>
<label>Komentar:</label><br>
<textarea name="tekst"></textarea><br>
<input type="submit" value="Pošalji komentar">
</form>
➡ Podaci se neće videti u URL-u jer se šalju POST
Zadatak samostalni rad učenika
Napraviti formu za prijavu na sajt koja ima:
-
polje za korisničko ime
-
polje za lozinku
-
dugme „Prijavi se“
Forma treba da koristi POST metod, a action može biti "prijava.php".
....