Johdatus Internetteknologioihin 2 KALVOSARJA HTTP SERVERCLIENT Palvelimen ja

  • Slides: 14
Download presentation
Johdatus Internetteknologioihin 2. KALVOSARJA: HTTP, SERVER-CLIENT

Johdatus Internetteknologioihin 2. KALVOSARJA: HTTP, SERVER-CLIENT

Palvelimen ja selaimen yhteistyö Internet toimii Client-Server -periaatteella eli asiakkaan ja palvelimen välillä ei

Palvelimen ja selaimen yhteistyö Internet toimii Client-Server -periaatteella eli asiakkaan ja palvelimen välillä ei ole jatkuvaa tietoliikenneyhteyttä, vaan yhteys muodostetaan tiedonsiirron ajaksi. Tiedon siirryttyä yhteys puretaan. Poikkeuksena edelliseen reaaliaikaiset sovellukset, jotka pitävät yhteyden kunnes se katkaistaan. (TCP -> joka on eri kerroksella) Yhteistyö perustuu pyyntöihin ja vastauksiin. Asiakas on aloittava osapuoli ja lähettää pyynnön, palvelimen tehtävä on reagoida asiakkaan pyyntöihin.

Client? Yleensä selain On muitakin vaihtoehtoja Myös komentoja (ohjelmia): linuxissa curl ja wget yms.

Client? Yleensä selain On muitakin vaihtoehtoja Myös komentoja (ohjelmia): linuxissa curl ja wget yms. .

Palvelin Laite joka tarjoaa resursseja/palveluja Voi koostua useamman laitteen yhteistyöstä, mikä ei näy käyttäjälle

Palvelin Laite joka tarjoaa resursseja/palveluja Voi koostua useamman laitteen yhteistyöstä, mikä ei näy käyttäjälle Usein monistettu, jotta kestää ruuhkat Voi sijaita fyysisesti eri paikoissa Voi olla sijaintikohtainen Usein jollain ohjelmistolla tarjotaan sivut, sitten lisäksi on tietokantaa, ehkä login palvelua yms. jotka toimivat yhdessä. Nämäkään asiat ei näy yleensä loppukäyttäjälle

Esimerkki palvelin Contriboard

Esimerkki palvelin Contriboard

Mitä kaikkea siellä välissä on? Usein käyttäjiä ei kiinnosta mitä kautta paketti kulkee, jotkut

Mitä kaikkea siellä välissä on? Usein käyttäjiä ei kiinnosta mitä kautta paketti kulkee, jotkut jopa luulevat että omalta koneelta on suora yhteys palvelimeen Täytyy muistaa että Internet kuitenkin rakentuu kytkimistä, reitittimistä yms. . Joiden kautta liikenne kulkee, eli liikenne menee suoraa palvelimelle vain jos se on kiinni koneessasi! Tutkitaan asioita tracert käskyllä, esim tracert google. com Kaikki komponentit eivät näy myöskään tracert käskyllä, sillä se näyttää vain ”verkon vaihtumiset”. Joidenkin hyppyjen näkyminen on estetty servereistä. Välityspalvelimet Sovelluksia kehittäessä näitä välissä olevia laitteita ei pakosta tarvitse huomioida, vaan yhteyden voidaan ajatella muodostuvan suoraan.

HTTP Yleisin Internetin tiedonsiirron määrittävä protokolla Useita metodeja: Yleisin GET - jolla haetaan resurssia

HTTP Yleisin Internetin tiedonsiirron määrittävä protokolla Useita metodeja: Yleisin GET - jolla haetaan resurssia POST - esim. lähettämään tietoja palveluun Pyynnössä mukana BODY, ja kaikissa HEADERS Muita mm. OPTIONS, HEAD, PUT, DELETE, TRACE ja CONNECT Varattu portti 80, myös 8080 harvemmin käytetty. Tehtävä: selvitä montako porttia on ja kuinka ne on jaettu?

Get-pyyntö Referer -> kertoo mistä sivulle päädyttiin Selain/asiakasohjelma kertoo nimensä ja versionsa Kerrotaan myös

Get-pyyntö Referer -> kertoo mistä sivulle päädyttiin Selain/asiakasohjelma kertoo nimensä ja versionsa Kerrotaan myös millaisia tiedostoja selain osaa käsitellä yms. Teknisiä tietoja. Selain voi kertoa myös halutun kielen Selaimista voidaan estää tietojen antoa, mutta se voi johtaa ongelmatilanteisiin

Pyyntö(Request): HTTP (get) GET /wiki/HTTP/1. 1 Host: fi. wikipedia. org User-Agent: Mozilla/5. 0 (Windows;

Pyyntö(Request): HTTP (get) GET /wiki/HTTP/1. 1 Host: fi. wikipedia. org User-Agent: Mozilla/5. 0 (Windows; U; Windows NT 5. 1; fi-FI; rv: 1. 6) Gecko/20040206 Firefox/0. 8 Accept: application/x-shockwaveflash, text/xml, application/xhtml+xml, text/html; q=0. 9, text/pla in; q=0. 8, video/x-mng, image/png, image/jpeg, image/gif; q=0. 2, */*; q=0. 1 Accept-Language: fi, en; q=0. 7, en-us; q=0. 3 Accept-Encoding: gzip, deflate Accept-Charset: ISO-8859 -1, utf-8; q=0. 7, *; q=0. 7 Keep-Alive: 300 Proxy. Connection: keep-alive Referer: http: //fi. wikipedia. org/w/wiki. phtml? title=HTTP Cache-Control: max-age=0

Vastaus(Response): HTTP (response) HTTP/1. 1 200 OK Date: Tue, 06 Jul 2004 17: 59:

Vastaus(Response): HTTP (response) HTTP/1. 1 200 OK Date: Tue, 06 Jul 2004 17: 59: 22 GMT Expires: Thu, 01 Jan 1970 00: 00 GMT Cache-Control: private, must-revalidate Via: 1. 0 cthulhu Server: Apache/1. 3. 29 (Unix) PHP/4. 3. 4 X-Powered-By: PHP/4. 3. 4 Set-Cookie: fiwiki. Session=a 8015 bd 32 eee 4 e 5 bd 46 fd 83 aea 40 f 159; path=/ Vary: Accept-Encoding, Cookie Content-Language: fi Content-Type: text/html; charset=utf-8 X-Cache: MISS from wikipedia. org Transfer. Encoding: chunked Connection: keep-alive

Edellisten todentaminen/tutkiminen Firefoxilla : F 12 -> network Mennään www. wikipedia. fi, pitäisi näkyä

Edellisten todentaminen/tutkiminen Firefoxilla : F 12 -> network Mennään www. wikipedia. fi, pitäisi näkyä GET viesti Response välilehdellä pitäisi näkyä pyyntöön vastaus Tehtävä: Mene samalle sivulle, kun kuuntelet liikennettä Wiresharkilla Pystytkö näkemään get pyynnön wiresharkissa? Mitä eroa on wiresharkin ja selaimen F 12 tiedoissa?

Vastauskoodit Onko jollekin joskus tullut vastaan 404? Selvitetään mitä muita koodeja on olemassa Jotkin

Vastauskoodit Onko jollekin joskus tullut vastaan 404? Selvitetään mitä muita koodeja on olemassa Jotkin palvelimet käyttää automaattisesti vastauskoodeja, mutta kannattaa muistaa että ne voidaan ohjelmoida käsin. Eli niihinkään ei voi täysin luottaa. Valmiit palvelinohjelmistot sisältävät usein valmiit vastauskoodit eri tilanteisiin. Esim. Apache

Tilaton vai tilallinen? HTTP on normaalisti tilaton Samalla pyynnöllä aina sama tulos Mitään tietoa

Tilaton vai tilallinen? HTTP on normaalisti tilaton Samalla pyynnöllä aina sama tulos Mitään tietoa ei talleteta Selain ei siis pystyisi hallitsemaan esim. sisäänkirjautumisia, tunnuksia jne. . Istunnot Tilapäistiedostot (palvelimella), evästeet, istuntomuuttujat (kielissä) Evästeet (Cookie) Palvelin asettaa clientille evästeen, sekä itselleen tiedot joilla pidetään muistissa istuntoon liittyvä tieto.

Palvelinten vaaroja Ohjelmalla samat oikeudet kuin käyttäjätunnuksella -> Pääsy tiedostoihin Voi poistaa, lisätä, muokata,

Palvelinten vaaroja Ohjelmalla samat oikeudet kuin käyttäjätunnuksella -> Pääsy tiedostoihin Voi poistaa, lisätä, muokata, suorittaa Ohjelman kautta voidaan kutsua mitä tahansa ohjelmaa Jos yhdellä koneella on useampi ohjelma, huonosti tehty ohjelma voi viedä resurssit kaikilta. Palvelin voidaan kaapata Liikenne voidaan ohjata väärälle palvelimelle Voitko luottaa palvelimeen?