Blogi – Tänne tulee Verkkosovelluskehitys-kurssin asiaa – HTTP



Blogi – Tänne tulee Verkkosovelluskehitys-kurssin asiaa – HTTP

0 0


viitasusi.github.io


On Github viitasusi / viitasusi.github.io

Blogi

Tänne tulee Verkkosovelluskehitys-kurssin asiaa

Esityksen omistaa Ville / @villehietanen

Itseäni kiinnostavia asioita kurssilla

  • RoR - Ruby on Rails
  • Verkkosovellusten arkkitehtuurit
  • JS-frameworkit

Tietoliikenneprotokollista

Seuraavat sivut käsittelevät mielestäni kiinnsotavimpia protokollia

HTTP

HTTP (HyperText Transfer Protocol) on TCP/IP -protokollapinon sovellustason protokolla, jota web-palvelimet ja selaimet käyttävät kommunikointiin. HTTP-protokolla perustuu asiakas-palvelin malliin, jossa jokaista pyyntöä kohden on yksi vastaus. Käytännössä selain lähettää HTTP-viestin HTTP-palvelimelle, joka palauttaa HTTP-vastauksen.

Asiakas-Palvelin -malli

Asiakas-palvelin -mallissa (Client-Server model) asiakkaat käyttävät palvelimen tarjoamia palveluja. Kommunikointi asiakkaan ja palvelimen välillä tapahtuu siten, että asiakasohjelmisto ja palvelinohjelmisto sijaitsevat erillisissä fyysisissä sijainneissa. Palvelinohjelmisto tarjoaa yhden tai useamman palvelun, joita asiakasohjelmisto käyttää.

HTTP-viestin rakenne 1/2

HTTP-protokollan yli lähetettävät viestit ovat tekstimuotoisia. Viestit koostuvat riveistä jotka muodostavat otsakkeen, sekä riveistä jotka muodostavat viestin rungon. Viestin runkoa ei ole pakko olla olemassa. Viestin loppuminen ilmoitetaan kahdella peräkkäisellä rivinvaihdolla.

HTTP-viestin rakenne 2/2

Palvelimelle lähetettävän viestin, eli kyselyn, ensimmäisellä rivillä on pyyntötapa, halutun resurssin polku ja HTTP-protokollan versionumero.Pyyntötapa ilmaisee HTTP-protokollassa käytettävän pyynnön tavan (esim. GET tai POST), polku haluttuun resurssiin kertoo haettavan resurssin sijainnin palvelimella (esim. /index.html), ja HTTP-versio kertoo käytettävän version (esim. HTTP/1.0).Esimerkki viestistä: GET /index.html HTTP/1.0

SOAP

SOAP on yksi Web Service ohjelmistojärjestelmän protokolla, jonka tehtävä on kuljettaa XML-dokumentteja tietoverkkojen yli. SOAP-protokolla rakentuu HTTP:n päälle

Käyttötarkoitus

SOAP-protokollaa käytetään yleisesti esimerkiksi kahen järjestelmän väliseen tietojenvaihtoon. Järjestelmän voivat kommunikoia keskenään ja ohjata toisiaan XML-dokumenttien välityksellä. SOAP-protokollaa ei juuri käytetä avoimessa internetissä. Sen sijaan esimerkiksi monien verkkopalvelujen taustajärjestelmät kommunikoivat SOAP-protokollaa käyttäen.

Viestin rakenne

SOAP-viestin rakenne on erittäin yksinkertainen. Viesti sisältää juurielementin nimeltä Envelope. Tämän elementin sisällä kuljetetaan koko SOAP-viesti. Envelope-elementti sisältää vapaavalintaisen Header-elementin ja pakollisen Body-elementin.

TCP

TCP on tiedonsiirtoprotokolla, jolla luodaan yhteyksiä tietokoneiden välille. TCP-yhteyksien avulla tietokoneet voivat lähettää toisilleen tavujonoja luotettavasti. TCP-protokolla pitää myös huolta, että paketit saapuvat perille oikeassa järjestyksessä. Tarvittaessa hävinnyt paketti voidaan lähettää uudestaan. Suurin osa Internetin liikenteestä perustuu TCP-protokollaan ja koko TCP/IP-protokollaperhe on saanut nimensä TCP-protokollan perusteella. HTTP-protokolla toimii TCP:n päällä.

TCP-yhteys

TCP-yhteys voidaan jakaa kolmeen osaan:

  • yhteyden muodostaminen
  • tiedonsiirto
  • yhteyden katkaisu

Ruuhkanhallinta

Pakettien katoaminen johtuu yleensä ruuhkasta internetin reitittimillä. Näissä tilanteissa reitittimelle saapuu enemmän paketteja kuin se ehtii välittämään eteenpäin. Kun reitittimen puskuri täyttyy, ylimääräiset paketit joudutaan hylkäämään. Jos datan lähettäjä vain itsepintaisesti uudelleenlähettäisi paketit, se lisäisi reitittimen ruuhkaa entisestään. Sitä varten TCP-protokollaan on kehitetty ruuhkanhallintamekanismeja. Ruuhkanhallintamekanismit ovat pitäneet internetin käyttökelpoisena, vaikka liikenteen määrä on kasvanut vuosien saatossa räjähdysmäisesti.

IRC-loki

Botti, joka loggaa irc-kanavan keskustelua

Käskyt

Lähdekoodin kloonaaminen git-reposta: rhc app create irclokki nodejs-0.10 --from-code https://github.com/jvanhalen/irclokki.git

mysql-cartridge OpenShift-sovellukseen

  • rhc cartridge list
  • rhc cartridge add mysql-5.5 -a irclokki

tietokannan taulut

  • rhc ssh irclokki
  • mysql
  • DROP DATABASE if exists irclog;
  • CREATE DATABASE irclog;
  • USE irclog;
  • CREATE TABLE log (id INT PRIMARY KEY AUTO_INCREMENT, timestamp BIGINT, message TEXT);
Seuraavaksi käynnistetään Openshift-sovellus uudelleen: rhc app-restart irclokki

Blogi Tänne tulee Verkkosovelluskehitys-kurssin asiaa Esityksen omistaa Ville / @villehietanen