PDA

Visualizza la versione completa : [C] Ricevere le variabili da una richiesta POST


/dev/null
10-07-2004, 15:19
Ho visto che alcuni quì stanno cercando di realizzare web browser, mentre io (e forse qualcun altro) sto cercando di realizzare un web server...
Perchè non mettiamo insieme le nostre forze per migliorare questi software? :zizi:

Il mio serverinoino sembra riuscire a ricevere le richieste con metodo GET, e inviare i files richiesti senza molti problemi...
Il problema è il metodo POST: i browser dove infilano le variabili e i loro valori?
Ho la seguente pagina:

prova.html
<html><body>
<FORM METHOD="POST" ACTION="prova2.html">
<INPUT TYPE="text" NAME="HTML1">x
<INPUT TYPE="checkbox" NAME="HTML2" VALUE="domanda1">c1
<INPUT CHECKED TYPE="checkbox" NAME="HTML2" VALUE="domanda2">c2
<INPUT CHECKED TYPE="radio" NAME="HTML3" VALUE="domanda3">r1
<INPUT TYPE="radio" NAME="HTML3" VALUE="domanda4">r2
<INPUT TYPE="submit" NAME="INVIA" VALUE="invia">
</FORM>
</body></html>
(se al posto del "POST" mettessi "GET" funzionerebbe tutto)

Il mio browser però mi invia questa richiesta dopo aver spedito la form:

richiesta del browser
POST prova2.html HTTP/1.1
Host: *IL_MIO_IP_ADDR*
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040722 Firefox/0.9
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: it
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://*IL_MIO_IP_ADDR*/prova.html
Content-Type: application/x-www-form-urlencoded
Content-Length: 94E io i valori delle variabili della form dove le trovo? :confused:

Lethalman
10-07-2004, 15:28
Prova a sniffarti la 80 :)
Se non sbaglio i POST vengono prolungati in altri pacchetti, come anche l'invio del codice HTML da parte del webserver! Non puoi mandare tutto d'un botto un sacco di bytes (anche perche' non verrebbe accettato secondo il protocollo) ma dovete mandarli pacchetto per pacchetto. Vi consiglio di leggere l'RFC!

/dev/null
10-07-2004, 15:47
Grazie, ho risolto il problema :D
Se la richiesta era GET mi bastava interrompere la lettura al raggiungere "\r\n\r\n", mentre se la richiesta e' post le variabili vengono messe dopo il "\r\n\r\n"...
Il RFC sarebbe questo: http://www.rfc-editor.org/
Ehm, dove comincio a leggere? :master:

Loading