On Github Fin3er / Fin3er.github.io
Tuomas Kalliolan "ploki"
HTTP FTP WebSocket Irclokki-HTTP-lyhenne sanoista Hypertext Transfer Protocol
-HTTP 1.1 vielä yleisin, mutta HTTP/2 vuodelta 2015
-HTTP-protokolla sijoittuu OSI-tasoissa ylimpään application-kerrokseen.
-Perustana World Wide Webille vuodesta 1990, käytetään välittämään Html-tiedostoja, kuvia jne.
-Vaaditaan niin client- kuin serverpäässäkin, clientin (request,response) ja serveri (käsittelee request,response)
-HTTP-protkollan oletusportti on TCP-portti 80
-HTTP-protokolla on tilaton. Serveri ja clientti ovat tietoisia toisistaan vain kyseisin requestin ajan. Istuntojen toteutus esim. evästeiden avulla
-Tärkeimpiä HTTP-komentoja ovat esim. GET,POST,HEAD,CONNECT
-FTP-lyhenne sanoista File Transfer Protocol
-Käytetään siirtämään tiedostoja host:lta toiselle TCP-protokollaa käyttäen, toimii asiakas-palvelin periaatteella
-Selaimella voi yhdistää FTP-osoitteisiin samoin kuin HTTP-osoitteisiinkin
-FTP voi toimia aktiivisessa(palvelin aloittaa itse tiedonsiirron) tai passiivisessa(palvelin odottaa asiakkaan aloitusta) tilassa
-Dataa voidaan lähettää neljässä eri muodossa: ASCII,Image(Binary), EBCDIC tai Paikallisesti
-Datan lähetystavoille on kolme eri tapaa: Stream mode, Block mode tai Compressed mode
-Käyttää kahta eri porttia. Oletuksena TCP-portti 21 yhteydenmuodostukseen ja portti 20 datan siirtoon
-Tärkeimpiä FTP-komentoja ovat esim. USER,PASS,QUIT, CWD, TYPE, RETR, PORT
-WebSocket on TCP-protokollaan pohjautuva verkkoprotokolla, joka mahdollistaa bidirektionaalisen yhteyden Websovelluksen ja WebSocket-serverin välillä
-Parannusta HTTP-protokollaan esim. reaaliaikaisissa-peleissä, koska yhteys pysyy auki
-Käyttää kuten HTTP-protkolla porttia numero 80, HTTP-serverit ymmärtävät yhteydenmuodosuksen upgrade-pyyntönä
-Suurin osa suurista selaimista tukee WebSocket-protokollaa
-Kaksi URL-skeemaa: ws. salaamattomille WebSocket yhteksille, wss. salatuille WebSocket-yhteyksille
-Yksi tärkeimmistä WebSocket-kirjastoista ohjelmoijalle on socket.io
-WebSocket-serveri voidaan kirjoittaa esim. C(++):lla, Pythonilla, Javascriptillä tai PHP:llä
Harjoitus tuli tehtyä noin 2 päivää sitten ja tästä ei ollut tallennetta, joten olen muistini varassa. Pahoittelut jos jokin kohta unohtuu ohjeista.
1. Ensimmäisenä loimme sovelluksen opettajan valmiista koodista, joka löytyy githubista:
"rhc app create irclokki nodejs-0.10 --from-code https://github.com/jvanhalen/irclokki.git"
2. Seuraavaksi sovellukseen lisättiin MySql-cartridge:
"rhc cartridge add mysql-5.5 -a irclokki"
3. Itselläni oli vaikeuksia ssh-avaimen kanssa, mutta koska kirjoitan ohjeet jälkikäteen en muista ongelmaa aivan tarkkaan. Ongelma kuitenkin johtui oikeastaan siitä etten malttanut noudattaa ohjeita tarpeeksi tarkkaan. Muistaakseni itseltä puuttui tuo puttygen koneelta, ja koitin ratkaista ongelmaa eri tavalla kuin ohjeissa mainittiin. Lopulta kun latasin puttygenin ja seurasin ohjetta orjallisemmin ongelma ratkesi.
Ohjeet ssh-yhteyteen puttyn kautta löytyivät täältä: https://developers.openshift.com/en/managing-remote-connection.html#download-the-putty-installer
SSH-avaimen sai selville komennolla rhc app-show irclokki tai OpenShiftin sivuilta kohdasta remote Access
4. Lopulta kun ssh-yhteys sovellukseen onnistui, käytimme sitä MySql-tietokannan konffaukseen
5. Viimeinen komento oli "rhc app restart irclokki" ja lopulta oma bottini löytyi testikanavalta toimien kuten pitikin.