Någon som har erfarenhet av att skriva en webserver?
Och kan rekommendera litteratur
Letar efter fritifdsprojekt ;)
13 svar · 533 visningar · startad av psykolog
Någon som har erfarenhet av att skriva en webserver?
Och kan rekommendera litteratur
Letar efter fritifdsprojekt ;)
Har ingen erfarenhet av det, men väl en litteraturhänvisning:
http://www.w3.org/Protocols/rfc2616/rfc2616.html
dvs http-protokollet som din webserver måste förstå.
Vilket operativ har du tänkt skriva för och i vilken utvecklingsmiljö ? Lösningarna ser minst sagt olika ut. Ska du stödja alla protocoll eller bara http ? https så blir det ju krypering inblandat.
Olika javisst
Naturligtvis blir det ju olika beroende på vilken plattform jag använder, men det måste ju finnas en bakomliggande teknik som är ganska så gemensam för alla webbservers.
Tack för länken!
Hur man betjänar klienter är det väl enda som är lika i alla typer av platformar och utvecklingsmiljöer. Rester skiljer sig helt beroende på vilken utvecklingsmiljö du använder.
http://www.w3.org/Protocols/rfc2616/rfc2616.html
Övriga saker värda att fundera på är tråd- och objektpooler. Själva sockethanteringen är enkel.
Det är ju rätt mycket jobb om man ska stödja HTTP 1.1 fullt ut.... :-)
-> psykolog
Väldigt generaliserat ska du göra ett program som ligger och lyssnar på en TCP/IP-port. När någon klient kontaktar programmet, ska det göra vad klienten ber programmet om. Det kommer vara saker som att skicka över en html-fil, skicka över en bild, etc. När klienten ber om dessa saker, gör den det med hjälp av protokollet http. Det är alltså http-frågor som din server måste förstå. Http-protokollet har vi redan länkat till, till och med två gånger. Själva grundprincipen bör vara lika för alla plattformar. Vad du mer bör kolla upp, är hur en server för TCP/IP fungerar, hur den ligger i en loop och lyssnar på en utvald port. Men som sagt, mina erfarenheter på området är begränsade, så några detaljer om https eller liknande kan jag inte.
Det är inga problem alls, man klarar det genom vanliga standardfunktioner. Kör du med C/C++ så är det bara att starta!
Det hela handlar om att lyssna på en port, skriva ett HTTP huvud, hämta en fil på hårddisken och skicka iväg...
För bästa funktionalitet (och för bättre prestanda plus mera huvudbry) så bör du skapa en trådad modell.
Det finns två enkla webbservrar med källkod på nätet, har tyvärr inte adressen, men de heter httpa och httpmt (har för mig de fanns på en sida om sockets programmering) gör en sökning.
/T
TinyWEB är en weserver där källkoden(delphi) medföljer.
http://www.ritlabs.com/tinyweb/
Vad är du för en vekling?
Efter 10 års programmering så börjar man vara tämnligen less på text-parsnings problematik. Man har gjort det förut om man så säger. :-)
tack alla
Jag hade glömt av den här tråden, för jag fick plötsligt alldeles mycket mindre tid ;), men jag skall kolla upp det här närmare när jag får tid.
Tack för hjälpen!
Det finns som sagt en mängd små och stora webbservrar med medföljande kod att kolla på.
Själv byggde jag en enkel trådad webbserver i Java som stödde HTTP 1.0 hyffsat som en lab när jag pluggade som jag nog skulle kunna rota fram källkoden till om du är intresserad, notera dock att den antagligen är rätt fult skriven med tanke på att det var ett tag sedan jag gjorde den :)