Tietoliikenneohjelmistojen ja multimedian laboratorio

Tik-110.350 Tietokoneverkot

Harjoitustyö 2001: HTTP Palvelin ja Selain

Tik-110.350/2001/harjoitustyo (in English)


1. osan palautus: 16.2.2001 klo 16:00
2. osan palautus demon yhteydessä viikolla 12
(viimeinen deadline 23.3.2001 klo 16:30)
 Varaa demoaika

Materiaali

Harjoitustyö perustuu RFC2616: Hypertext Transfer Protocol - HTTP 1.1.

Verkossa on paljon hyvää(kin) materiaalia, jota voi käyttää hyväkseen. Erilaisia koosteita socket-ohjelmoinnista on saatavilla paljon. Oikeastaan verkosta löytyy niin hyvin tietoa, että muuta materiaalia ei välttämättä edes tarvitse. Kannattaa kuitenkin säilyttää kriittisyys verkosta löydettyä tietoa kohtaan.

Alla on pari hyvää kirjaa:

Lisäksi:

HUOM: Tehtävässä on tarkoituksena opetella Socket-ohjelmointia, joten valmiiden kirjastojen käyttö ei ole sallittua. Esimerkiksi Java-kielellä toteutettuna on sallittua käyttää java.net.Socket, java.net.URL sekä java.net.ServerSocket-luokkia, mutta java.net.HttpURLConnection-luokkaa ei ole. Arvostelussa periaatteena on, että mikäli toteutuksessa on käytetty valmiita luokkia tai kirjastoja, jotka esimerkiksi toteuttavat HTTP-protokollaa, saa kyseinen työ arvosanaksi HYLÄTYN. Jos sinulle on epäselvää onko jokin kirjasto sallittu vai ei, kysy kurssin henkilökunnalta.


Harjoitustyön vaatimukset

Harjoitustyön aiheena on suunnitella ja toteuttaa HTTP-protokollaa käyttävä asiakas- ja/tai palvelinohjelma eli WWW-selain ja/tai WWW-palvelin, jotka pystyvät käsittelemään yksinkertaisia tekstiä ja linkkejä sisältäviä html-sivuja (mallisivuja).

Asiakasohjelma ei saa olla sidottu mihinkään palvelimeen, eikä palvelin luonnollisesti mihinkään asiakasohjelmaan. Jos toteutat molemmat, pelkkä keskinäinen yhteentoiminta ei riitä.

Toiminnassa ei siis tule olla eroja ajetaanko ohjelmaa esim alphasta tai betasta ja käytetäänkö palvelimena esimerkiksi Apachea tai Microsoftin IIS-palvelinta tai asiakasohjelmana Netscape Navigatoria tai Microsoft Internet Exploreria. Käyttöympäristön osalta ohjelma tietenkin saa olla sidottu.

Ohjelman tulee toteuttaa seuraavat toiminteet:

Palvelin

Selain

Yksin kotitehtävät tekevät opiskelijat toteuttavat joko WWW-selaimen tai WWW-palvelimen päästäkseen kurssista läpi.

Kotitehtävissä parityötä tekevät saavat tehdä myös harjoitustyön parityönä. Parityötä tekevien on tehtävä molemmat osat, eli sekä www-selain että www-palvelin.

Harjoitustyöstä on mahdollista saada +1 korotus kurssiarvosanaan toteuttamalla yksin www-selaimen ja www-palvelimen tai SSL-protokollan www-palvelimen tai -selaimen lisäksi. Parityötä tekevät toteuttavat www-palvelimen ja -selaimen lisäksi SSL-protokollan saadakseen korotuksen. Myös jokin toinen verkkoprotokolla voi tulla kysymykseen, mutta hyväksytä ehdotuksesi kurssin henkilökunnalla.

Ohjelma suositellaan tehtäväksi C:llä, Perlilla tai Javalla. Muitakin kieliä saa käyttää, mutta minkäänlaista tukea ei tällöin kurssihenkilökunnalta saa ja kieli pitää hyväksyttää kurssin henkilökunnalla. Kiellettyjä kieliä ovat mm. Visual-xxx (esim. Visual-Basic), delphi ja fortran. Lisäksi valmiiden HTTP-kirjastojen käyttö harjoitustyössä on kielletty. On myös otettava huomioon, että valmis tekele on kyettävä demoamaan Maarintalon UNIX-työasemilla tai Windows-koneilla (todennäköisesti Maarin luokassa f, Digital unix- tai Windows2000). Huom! Kun olet varannut itsellesi demoajan, käy koeajamassa ohjelmasi SIINÄ LUOKASSA, jossa demosi pidetään.

Harjoitustyö on jaettu kahteen osaan siten, että ensimmäisessä osassa palautetaan suunnitelma ohjelmasta ja toisessa osassa palautetaan ohjelman lähdekoodi sekä raportti työstä. Toisen osan palautuksen yhteydessä myös demotaan ohjelman toimivuus. Erillisellä sivulla on eritelty ensimmäisen ja toisen osan tarkemmat vaatimukset.

Osa 1: suunnitelma

Osa 2: toteutus


Arvostelu

Osa 1: Harjoitustyön ensimmäinen osa arvostellaan asteikolla hyväksytty - bumerangi - hylätty. Bumerangin voi saada, jos opiskelija on selvästikin yrittänyt ottaa selvää, miten harjoitustyö tulisi toteuttaa, mutta hänelle on kuitenkin jäänyt jokin perustavaa laatua oleva seikka ymmärtämättä. Kaikennäköiset puolivillaiset, selvästi kiireessä ja pahemmin ajattelematta kyhätyt (tyypillisesti juuri ennen deadlinea tulleet) palautukset tulevat kuitenkin saamaan arvosanan hylätty. On hyvä huomata, että jos harjoitustyön ensimmäisestä osasta saa arvosanan hylätty, ei opintojaksoa voi saada läpi. Tämän vuoksi ensimmäiseen osaan tulisi kiinnittää tarpeeksi huomiota tarpeeksi varhaisessa vaiheessa.

Osa 2: Harjoitustyön toinen osa arvostellaan asteikolla hyväksytty - hylätty. Tästä osasta ei varsinaisesti voi saada bumerangia, mutta epäonnistuneen demon voi EHKÄ uusia, JOS vapaita demoaikoja on silloin vielä jäljellä. Eli jos assistentti hylkää demosi, voit yrittää palautusta uudestaan korjattuasi hylkäyksen aiheuttaneet viat. Assistentti hylkää demon seuraavissa tapauksissa:

Huomaa, että hyväksytty demo ei vielä tarkoita hyväksyttyä harjoitustyötä. Onnistuneen demon jälkeen harjoitustyö merkitään palautetuksi.

Palautus

Osa 1: Palauta tämä osa yleisten tehtävien palautusohjeiden mukaisesti kotitehtäväkierroksena 11. Muista tarkistaa, että saat palautuksestasi onnistumiskuittauksen kurssin sähköpostiautomaatilta.

Osa 2:


Tämän sivun sisällöstä vastaavat verkkojen assarit, sähköposti: verkot@tml.hut.fi
Sivun sisältöä on viimeksi päivitetty 24.1.2001.
URL: http://www.tml.hut.fi/Opinnot/Tik-110.350/2001/harjoitustyo.html