1 / 26

HTTP-protokolla

HTTP-protokolla. HTTP (HyperText Transfer Protocol) on web-asiakkaan ja –palvelimen keskinäiseen tiedonsiirtoon käyttämä yhteyskäytäntö. Nimestään huolimatta HTTP-protokolla ei rajoitu pelkästään HTML-dokumenttien siirtämiseen, vaan sillä voi siirtää monenlaista dataa.

newman
Download Presentation

HTTP-protokolla

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. HTTP-protokolla • HTTP (HyperText Transfer Protocol) on web-asiakkaan ja –palvelimen keskinäiseen tiedonsiirtoon käyttämä yhteyskäytäntö. • Nimestään huolimatta HTTP-protokolla ei rajoitu pelkästään HTML-dokumenttien siirtämiseen, vaan sillä voi siirtää monenlaista dataa. • Palvelin kertoo yleensä siirrettävän datan tyypin ContentType-otsakkeessa. • Tarkastellaan seuraavaksi HTTP-siirtotapahtumaa, kuva 1. tMyn

  2. 1 2 Kuva 1. HTTP-siirtotapahtuma. tMyn

  3. HTTP-siirtotapahtuma koostuu kahdesta HTTP-viestistä (HTTP message), jotka ovat: 1. Asiakaspyyntö (HTTP request), jonka sisältönä on • Pyyntörivi (Request Line) • HTTP-otsakkeet • data 2. Palvelimen vastaus (HTTP response), jonka sisältönä on • Tilarivi (Status Line) • HTTP-otsakkeet • data tMyn

  4. HTTP-asiakaspyyntö etenee seuraavassa muodossa: 1. Asiakas ottaa yhteyden halutun palvelimen tiettyyn porttiin (yleensä 80). 2. Asiakas lähettää HTTP-komennon (pyyntörivi), jonka kolmesta välilyönnillä erotetusta kentästä löytyy • Käytettävä metodi • Pyydettävä dokumentti • HTTP:n versio. Esim. GET / manual / HTTP / 1.0 tMyn

  5. 3. Asiakas lähettää mahdolliset HTTP-otsakkeet riveittäin. Kukin rivi koostuu otsakkeen nimestä, kaksoispisteestä, välilyönnistä ja otsakkeen arvosta sekä rivinvaihtomerkistä (CRLF). Web-selain voi kertoa näin esimerkiksi nimensä, hyväksymänsä dokumenttityypit, toivomansa kielen jne. Esim. User-agent: Mozilla… Accept: image/gif, … Accept-Language: fi, en-us; … tMyn

  6. 4. Asiakas lähettää rivinvaihtomerkin (CRLF eli tyhjän rivin). 5. Asiakas voi lähettää muuta dataa. Näin tapahtuu esim. silloin, kun web-selain lähettää HTML-lomakkeen sisältämän datan POST-metodilla. 6. Pyyntö päättyy kahteen peräkkäiseen rivinvaihtomerkkiin. • Seuraavaksi on esitetty skripti asiakaspyynnön lähettämän datan näyttämistä varten: tMyn

  7. HTML-lomake: tMyn

  8. Tarvittava PHP-skripti: tMyn

  9. tMyn

  10. Description • array getallheaders ( void ) • Fetches all HTTP headers from the current request. • This function is an alias for apache_request_headers(). Please read the • apache_request_headers() documentation for more information on how this • function works. • This function is only supported when PHP is installed as an Apache module. • Return Values • An associative array of all the HTTP headers in the current request, or • FALSE on failure. tMyn

  11. Lähetetään palvelimelle jotakin lomakkeen avulla: tMyn

  12. Tällaista informaatiota selain lähettää web-palvelimelle: tMyn

  13. tMyn

  14. Kun asiakas on lähettänyt HTTP-pyynnön, palvelin vastaa siihen. Palvelimen vastaus etenee seuraavassa muodossa: 1. Palvelin vastaa tilarivillä, jonka kolmesta välilyönneillä erotetusta kentästä löytyy • HTTP:n versio • Tilakoodi • Tilakoodin tekstimuotoinen selitys. • Esim. • HTTP / 1.0 200 OK tMyn

  15. 2. Palvelin lähettää mahdolliset HTTP-otsakkeet riveittäin. Kukin rivi koostuu otsakkeen nimestä, kaksoispisteestä, välilyönnistä ja otsakkeen arvosta sekä rivinvaihtomerkistä (CRLF). Tyypillisesti voidaan kertoa esim. vastauksen luontiaika, tietoja palvelimesta ja palautettavan dokumentin sisältötyyppi. Esim. Date: Mon, … Apache… Content-Type: text/html; charset… tMyn

  16. 3. Palvelin lähettää rivinvaihtomerkin (CRLF). 4. Pyynnön onnistuessa vastaukseksi lähetetään mahdollisesti haluttu data. • Käydään seuraavaksi vanhassa kotikunnassa Askolassa katsomassa mikä palvelin siellä on: tMyn

  17. tMyn

  18. tMyn

  19. Palvelimena näyttää olevan Apache: tMyn

  20. jne… tMyn

  21. Mitähän palvelinta Nokia käyttää?: tMyn

  22. Jaaha, näyttää olevan tyyppiä ”Nokia”: tMyn

  23. HTTP on tilaton protokolla. Peräkkäisten siirtotapahtumien välillä ei ole mahdollista pitää tilatietoa protokollan avulla (vrt. istunnonhallinta). Näin ollen • Tapahtumien seuranta ei kuormita HTTP:tä, mikä tekee siitä jossakin mielessä nopean ja keveän protokollan • Jokainen HTTP-siirtotapahtuma on aloitettava aivan alusta, minkä vuoksi web-sovellusten ohjelmointi on työlästä. tMyn

  24. Web-selaimen tilalla tarkoitetaan kaikkea seuraavalla pyynnöllä välitettävissä olevaa dataa, joka on tallennettuna mm. lomakkeen kenttiin, hyperlinkkien kyselyosiin ja evästeisiin. • Koska siirtotapahtumien välillä ei ole mitään yhteyttä, sovelluksen tilatiedot täytyy ylläpitää tilanteesta riippuen palvelinskriptin luomissa tai asettamissa • HTML-lomakkeissa • Hyperlinkeissä URL:in kyselyosassa • Evästeissä (cookies). tMyn

  25. Jos tarkastellaan palvelinskriptin kommunikointia käyttöliittymänsä (web-selain) kanssa erikseen molempiin suuntiin, voidaan sanoa, että palvelinskriptiin liittyy neljä keskeisesti erilaista datan välitystapaa. • Syöttökanavia on kaksi, eli palvelinskripti voi saada syötteensä web-selaimelta jommallakummalla tavalla: • HTML-lomakkeelta joko POST- tai GET-metodilla • Hyperlinkin välityksellä siihen liitetystä URL:in kyselyosasta GET-metodilla. tMyn

  26. Tulostuskanavia on myös kaksi. Palvelinskripti lähettää tulosteensa web-selaimelle jommallakummalla tavalla: • HTTP-otsakkeiden välityksellä (mm. kertoo dokumentin mediatyypin, asettaa evästeitä, uudelleenohjaa pyynnön jne.) • Palvelimen vastauksen (HTTP Response) data-osassa. tMyn

More Related