PDA

View Full Version : Proxy server Web in C (Linux)


fedo
17-02-2003, 11:01
Ciao gente,

il mio problema è come invio un file al browser,cioè in che modo
divido il pacchetto,l'Header Http e il corpo messaggio che devo scrivere sul
socket.

io ho la funzione write(descrittore,messaggio,0) :

Ho provato a fare un client da Prompt e il messaggio che invio viene
ricevuto. Se lo mando al browser invece non và. Devo scrivere davanti l' Header Http? Se si, come?

Potete farmi un esempio di write dove il browser deve visualizzare una stringa tipo "Questa è una prova" inviata dal mio server? Oppure meglio, comemandare un file HTML presente sul disco..

Ma è vero che il mio server deve essere per forza sulla porta 80 ?

Vi ringrazio, anche se la domanda sarà per pochi "intnditori" ;)

P.S. Sapete se Online ci sono guide sull' argomento? io non le ho trovate.

cionci
17-02-2003, 13:12
Ovviamente devi anche inviare gli header oltre al codice HTML...gli stessi header che il server HTTP invia al tuo proxy...
Il tuo proxy tiene anche una cache ?

fedo
17-02-2003, 14:42
si,pure una cache dobbiamo fare.

Nella write però, che stringa ci metto?E' qui che devo inserire l'header come testo normale?

Puoi farmi un esempio di scrittura sul socket di un pacchetto IP, in modo che il browser visualizzi una scritta?

grazie

cionci
17-02-2003, 14:56
Basta prendere quello che ti da in output un server HTTP ad una richiesta...
Apri telnet e ti connetti sulla porta 80 di un server HTTP...
Poi scrivi :
GET / HTTP/1.1
Host: www.tuoserver.com

Ovviamente al posto di tuoeserver.com ci scriverai l'indirizzo giusto del server...
Premi due volte invio ed i questo modo ottieni la risposta di un server HTTP e noterai che gli header vengono inviati come semplice testo precedendo l'HTML...

3DDragon
18-02-2003, 09:32
Originally posted by "fedo"

si,pure una cache dobbiamo fare.

Nella write però, che stringa ci metto?E' qui che devo inserire l'header come testo normale?

Puoi farmi un esempio di scrittura sul socket di un pacchetto IP, in modo che il browser visualizzi una scritta?

grazie

ti rimando alla lettura del protocollo http...
fa una descrizione dettagliata di ogni singolo campo che deve essere contenuto negli header di risposta e di richiesta di ogni comunicazione http.
ecco il link all'RFC
http://www.w3.org/Protocols/rfc2616/rfc2616.html

fedo
18-02-2003, 15:59
THX, ora funge!