Blogia
Geeks i d'altres

Server web, més que casolà

Lletgint el RFC 2616 (de l'Hypertext Transfer Protocol 1.1), se m'ha pasat pel cap aquesta genialitat xDD

sudo cat page.html sudo nc -l -p 80


Evidentment, a page.html hi ha el codi html de la pagina que volem servir. És el que té aburrir-se els capvespres :D.

6 comentarios

benetj -

És una putada. Per molt de programari lliure que facis amb java acabes passant-lo amb la JVM que és propietari.

Allibereu Java, que està trista !!!

servomac -

Imagin que ho dius en plà conya, perque ja he dit que ho volia fer en C (:S && :D).

Tot i així, trob que seria una bona pràtica per aprendre a emprar sockets amb Java, i sobretot per aprendre a programar aplicacions mitjanament complexes tenint en ment el paradigma de POO.

Per cert, estic molt content de que t'entri es 'cuquet' d'es Java, pero no oblidis mai la seva trampa ;).

benetj -

En Java, no?

jejeje

p.d.:Gràcies a tú i al teu blog m'ha picat la curiositat pel Java

servomac -

Estava lletgint el RFC amb la intenció al cap de programar amb C un server web molt simple, que sigi almenys capaç de presentar webs HTML.
No vull implementar el HTTP/1.1 sencer, ni molt manco, simplement el bàsic per servir pàgines.
Què en trobes? Molt complicat, o m'hi puc embarcar?

guillem -

Val, no ha sortit molt malament. Els "rn" misteriosos són contrabarra-r i contrabarra-n, que són els finals de linia que se suposa que vol HTTP. Al final estan repetits perquè la capçalera acaba amb una linia en blanc. Amb una cosa així ja pots semblar un servidor web de veres i tot. Fots el netcat dins un bucle, te montes qualque script per atendre peticions com ara "GET / HTTP/1.1" tornant una llista de fitxers, i ja tens un servidor web X'-D Però alerta amb la seguretat, que una cosa així improvisada crea mil forats!

guillem -

Això no és exactament HTTP estàndard perquè no hi ha capçalera de resposta. Si te funciona és perquè el navegador tol.lera errors de protocol per un tub. Hauries d'afegir davant el page.html una cosa tipus "HTTP/1.1 200 OkrnContent-type: text/htmlrnrn", i un Content-length: no faria mal. Esper que surti raonablement bé, possiblement el teu bloc retallarà coses O:-)