Un pic despre HTTP, metodele GET si POST
Există două concepte care sunt comune pentru aproape toate programele - este prelucrarea datelor de intrare și a rezultatelor de ieșire. Pe această pagină, ne vom concentra pe procesarea intrării CGI-programe. În primul rând, în cazul în care sunt datele de intrare, și în al doilea rând, deoarece datele de intrare sunt transmise la server. Pentru a scrie CGI-programe eficiente de care aveți nevoie pentru a avea o idee clară despre aceste lucruri.
Un pic despre HTTP
Serverul acceptă trei tipuri de cereri: GET, POST, și HEAD. programe de interogare pentru web-server, după cum urmează:
GET /index.html HTTP / 1.0
Prima parte, în acest caz, GET. - o metodă de solicitare, a doua, index.html. - o adresă URL solicitată, al treilea, HTTP / 1.0. - protocolul utilizat de client.
Cele două Metoda principala solicitare - un GET și POST. Acestea sunt aceleași metode care sunt disponibile pentru tine atunci când creați formulare. Metoda HEAD este rar utilizat de browser, deoarece cere doar un antet de răspuns și corpul de răspuns în acest caz nu este transmis. De exemplu, pentru a verifica dacă o pagină, browser-ul nu se poate schimba antetul de interogare, dar nu este generat de un schimb complet de date.
În mod implicit, atunci când interogarea folosind metoda GET. Metoda POST este folosită numai atunci când este menționat în mod explicit în formularul de cerere. este foarte important pentru CGI-programator pentru a realiza că atunci când solicită o formulare de date metoda GET trimise la server, împreună cu URL-ul. Web-servere de sprijin CGI, copiați datele într-un QUERY_STRING numit variabilă de mediu. După aceea îngrijirea despre obținerea de date de mediu și de prelucrare a acestora este atribuită CGI-program.
URL-ul cu șirul de interogare arată astfel:
Sign. separă șirul de interogare a URL-ul resursei în sine; nick și PSW - variabilele trecut la server, MAKS și Parol - valorile lor, respectiv.
metoda POST
Metoda POST este utilizată atunci când este menționat în mod explicit în forma METODA atribut. Spre deosebire de metoda GET, POST pune datele nu se află în URL-ul, la fel ca în corpul cererii. cerere POST este în mare măsură similară cu răspunsul HTTP. Prima linie este o cerere HTTP standard care specifică metoda POST. Acesta poate fi antete suplimentare necesare, separate de corp printr-o cerere de linie goală.
Organismul cerere folosind metoda POST, programul este transferat ca un flux standard de intrare.
Alegeți între GET și POST
Este clar că dezvoltarea formelor CGI-programator va fi o întrebare: care dintre aceste metode de utilizare. În cele mai multe cazuri, se aplică ambele metode și ambele funcționează bine. Cu toate acestea, există situații în care utilizarea unei anumite metode oferă anumite avantaje.
Luați în considerare unele situații în care are sens să aleagă GET sau metoda POST.
- Dacă doriți programul să fie numit cu ajutorul unor link-uri, trebuie acordată prioritate metodei GET.
- Dacă nu doriți argumentele trecut la programul, înregistrate în fișierul jurnal de server, utilizați metoda POST. De exemplu, în cazul în care forma necesită un nume de utilizator și o parolă, nu doriți să numele și parola este stocată în fișierul de raport. În plus, nu este rezonabil să se transfere parola, ca parte a URL-ului.
- Dacă formularul are o dimensiune considerabilă, Nikolay Neprimerov conține casete de text cu note și comentarii, ar trebui să utilizați metoda POST. În general vorbind, este posibil în acest caz, pentru a utiliza metoda GET, dar atunci se va confrunta cu restricții privind dimensiunea de URL-ul, diferite pentru diferite sisteme de operare și browsere (limita în raport cu dimensiunea variabilelor de mediu). Pur și simplu utilizați metoda POST.
- Dacă formularul conține un câmp de fișier, utilizați metoda POST. În plus, în acest caz, trebuie să instalați atribut ENCTYPE valoare multipart / form-date.