Domen i hosting

Zakup domena

Zakup domena je jedan od prvih koraka neophodnih za web prezentaciju. Kupovina se vrši preko ovlašćenih prodavaca (registara). Registri domena su kompanije koje prodaju domene. One moraju imati sertifikat odobren od strane ICANN, Internet Corporation for Assigned Names and Numbers (Internet Korporacija za Pripisana Imena i Brojeve). Spisak ovalašćenih registra u Srbiji možete pogledati ovde, dok ću od stranih registara pomenuti namecheep.com i name.com. Kada kupite domen vi ga stvarno ne posedujete, nego kupujete pravo da koristite taj domen na odredjeni period.

Transfer domena

Ukoliko želite da promenite firmu kod koje ste registrovali domen postupak se zove “transfer domena” za kojeg važi sledeći postupak:

  • Krajnji korisnik domena potvrdjuje da su podaci iz “whois” zapisa tačni (potvrdjuje tačnost e-mejl adrese…) i preuzima autentifikacioni kod od starog registra.
  • Korisnik kontaktira svog novog registra sa zahtevom za transfer domena i pritom mu prosledjuje autentifikacioni kod koji je dobio od starog registra.
  • Novi registar kontaktira starog registra domena.
  • Stari registar kontaktira krajnjeg korisnika sa zahtevom za potvrdu verodostojnosti zahteva.
  • Nakon potvrde stari registar će prepustiti domen novom registru.
  • Novi registar će obavestiti krajnjeg korisnika o završetku transfera domena.

Zbog ovako komplikovane procedure koja se često i naplaćuje, kao i zbog drugih prikrivenih problema je preporuka da se ne zakupljuje domen i hosting kod iste firme.

Web hosting

Hosting je usluga koju pruža hosting provajder i zasniva se na iznajmljivanju resursa na serverima (kompjuteri koji su priključeni na mrežu non stop).

Osnovne karakteristike hostinga
  • Prostor na hard disku
    Ovo je zakupljeni prostor na hard disku, koji je neophodan za smeštanje podataka vezanih za web sajt. Treba napomenuti da bi prostor trebao biti dovoljno veliki da na njega stanu svi fajlovi koji čine vašu web prezentaciju ali i kontinuirani backup web sajta (mesečni, nedeljni…)
  • Dozvoljeni mesečni promet podataka (Bandwidth ili Data Transfer)
    U transfer podataka spadaju slike, tekst, audio fajlovi, video fajlovi i sve ostalo sve ostalo što server prebacuje na korisnički web browser. Važi pravilo da stranice sa dosta slika ili video sadržaja imaju veći mesečni promet (protok) podataka, od stranica samo sa tekstom. Takodje važi da sajtovi koji imaju mnogo posetilaca (tj. pristupa stranicama) troše vece količine dozvoljenog mesečnog transfera. Okviran protok se može izračunati ako se pomnoži mesečni broj pristupa i prosečna veličina stranice vašeg sajta (“običan” sajt sa 40.000 pristupa stranici ima protok oko 1GB).
  • Broj dozvoljenih domena i poddomena (tj. broj dozvoljenih baza podataka)
  • Stabilnost hostiga (eng. uptime)
    Ovaj pojam označava koliko vremena je server “up” tj. dostupan. Uptime garancija koju hosting pruža je odraz njihovog kvalita i stabilnosti. Dostupnost od 99% je apsolutni minimum koji bi hosting trebao garantovati.
  • Dostupnost tehničke podrške
    Ova karakteristika podrazumeva koje je radno vreme tehničke podrške kao i vreme na koje tehnička podrška odgovara na neki zahtev (ticket). Ako se ne razumete u poslove administracije hosting paketa, potrebno je naći hosting provajdera sa dobrim preporukama za podršku.
  • Brzina servera
    Brzina servera zavisi od softverske i hardverske konfiguracije (količine memorije, snage procesora, vrste hard diska..), tako da serveri sa boljim procesorima i većom količinom memorije kao i serveri sa SSD diskovima imaju dobre perfomanse.
Tipovi hostinga

Na osnov prethodnih karakteristika postoje raličite vrste hostinga, navešću tipove od lošijih ka boljim:

  • Shared hosting
    Najjeftiniji način da hostujete vaš websajt. Na deljenom hostingu fajlovi vašeg websajta se smeštaju na server (računar) na kojem se nalazi veći broj hostovanih sajtova. Deljenje servera podrazumeva deljenje dva najvažnija resursa hostinga: prostora i protoka (mada ne treba zanemariti procesor i memoriju servera). Iako web hosting provajderi često nude slične mogućnosti (slične servere), razlika može biti velika jer pored toga što kvalitet deljenog hostinga zavisi od kvaliteta samog servera takodje zavisi i od broja sajtova po serveru. Očigledno je da će jedan isti server mnogo bolje raditi ukoliko na njemu ima 20 sajtova nego ako ih je ima 1000. Glavna karakteristika shared hostinga jeste postojanje centralne administracije servera od strane tehničkih lica, što predstavlja pogodnost za one korisnike koji ne žele da se bave informatičkim podešavanjima. Sa druge strane ovo je istovremeno i prepreka za napredne korisnika koji žele da razvijaju i testiraju nove funkcionalnosti zbog manjeg stepena kontrole.
  • VPS (Virtual Private Server)
    VPS hosting je jedan korak iznad shared web hostinga. Ovaj hosting i dalje deli server sa drugim VPS korisnicima, ali svaki server pokreće sopstveni operativni sistem i nezavisno od drugih se može resetovati, namenski podešavati, reinstalirati i sl. VPS hosting pruža fleksibilnost dodavanja i menjanja komponenti operativnog sistema, mrežnih postavki i instalacije software-a po želji.
  • Cloud hosting
    Cloud hosting je tehnologija hostovanja Internet prezentacija na virtuelnim serverima koji svoje resurse povlače iz mreža velikog broja hardverskih servera. On predstavlja naredni evolutivni korak i nastao je kao alternativa hostovanju sajtova na jednom fizičkom serveru.
    Najveća prednost cloud tehnologije je njena fleksibilnost i mogućnost da veoma lako skalirate resurse. Takodje prednost ovakvog hostinga je što osim resursa, možete birati i operativni sistem. Sa standardnim hostingom problem može nastati zbog kvara servera kao i drugih delova infrastrukture, dok su kod cloud hostinga serveri povezani u jedan cloud (komponente mogu biti fizički na potpuno različitim lokacijama), pa se kvar neke komponente brzo rešava, a kopija vašeg cloud servera postaje aktivna u roku od nekoliko minuta, umesto nekoliko sati.
  • Namenski hosting (Dedicated Hosting)
    Hosting kod koga korisnik zakupljuje ceo server koji se ne deli sa drugim korisnicima. Serveri su u vlasništvu web hosting kompanija ali se iznajmljuju samo jednom korisniku. Korisnik ima potpunu kontrolu nad celokupnim serverom uključujući i izbor operativnog sistema, serverskih aplikacija, hardvera. Postoje više podvrsta ovakvog hostinga koje se medjusobno razlikuju od količine uplitanja hosting provajdera u održavanje servera:

    • Fully managed (potpuno nadgledani)
      Podrazumeva praćenje, ažuriranje softvera, restartovanje, bezbedonosne zakrpe, i nadogradnje sistema. Korisnici nemaju potrebu za posedovanjem naprednih informatičkih znanja ili administracijom ili angažovanjem trećih lica za ove poslove.
    • Managed (upravljanje)
      Predstavlja srednji nivo podrške, ali deo administracije se delegira na korisnika
    • Self managed (upravljanje od strane korisnika)
      Podrazumeva osnovni nivo podrške od strane hosting provajdera
    • Unmanaged (bez podrške)
      Zahteva potpunu administraciju od strane korisnika

DNS hosting

DNS (domain name system) je ogroman sistem servera čija je namena da čuvaju bazu kataloga koji sadrži informacije vezane za svaki domen: njegovu IP adresu, informacije o registraciji kao i o njihovom odnosu prema drugim domenima i hostizima. Softver koji prebacuje ime domena razumljivo ljudima (npr. webprogramiranje.org) u njegovu IP adresu (npr. 194.63.248.47.) se zove DNS software. Server koji ima instaliran “DNS software” se nazivaja nameserver, takvi serveri čine DNS sistem. Obično hosting kompanije imaju svoje nameserver-e, pa pored web hostinga daju i DNS hosting svojim klijentima.

Podešavanje nameserver-a

Ukoliko zakup domena i hosting nisu uzeti kod iste kompanije potrebno je obavestiti provajdera preko koga smo zakupili domen, koje nameserver-e koristi web prezentacija (vezana za taj domen). Podatke o tim nameserver-ima vam obezbedjuje kompanija koja Vam daje uslugu DNS hosting-a (obično ista kompanija kao za web hosting).

Primer promene nameservera kod namecheap.com

Prvo se izabere domen kojem želimo da promenimo nameservere. Zatim nadjemo gde se definišu “NAMESERVERS” i izaberemo opciju custom. U ponudjenu formu upišemo imena nameservera koje Vam je dala vaša hosting kompanija. Broj nameservera varira u zavisnosti od izbora hosting kompanije.

primer dreamhost name servera

Nakon promene podatka o nameserver-ima potrebno je vreme da se u svim tačkama DNS sistema ažuriraju promene o novim nameserverima, ta operacija može potrajati i do 48 sati.

SAVET:
Ukoliko ste windows korisnik možete “naterati” vaš browser da za odredjeni naziv domena ode na odredjenu IP adresu. Potrebno je naći fajl host, čija putanja je: c:\windows\System32\drivers\etc\hosts i unutar njega dodati liniju koda koja povezuje IP adresu novog hostinga i naziv domena kao na sledećem primeru:
188.93.124.246 www.webprogramiranje.com
Napomena: nakon što napravite izmene u hosts fajlu, potrebno je da izbrišete browser cache i da restartujete browser. Na ovaj način sa našeg kompjutera možemo odmah pristupiti novom hostingu.

Definisanje A zapisa (A record)

Nakon što smo ukazali gde se nalaze serveri sa DNS softverom (nameserver) koji će vršiti konverziju ime domena u IP adresu, potrebno je definisati podatke za konverziju. A zapis (address record) definiše vezu izmedju odgovarajućeg imena domena i IP adrese. A record je za IPv4 dok je AAAA record za IPv6 protokol.

Postupak

Potrebno je ulogovati se na nalog kod DNS provajdera i locirati stranicu gde se definiše A records. Te stranice se obično imaju naziv: DNS Management, Name Server Management, ili Advanced Settings. Potrebno je definisati naziv domena, IP adresu kao i TTL (time to live) vreme. Vreme TTL je trajanje informacija na serveru bez mogućnosti promene tzv keširanje. Obično je ta vrednost 3600s (1h).

A records primer

Definisanje aliasa CNAME

CNAME (engl. canonical name) je glavno ime domena. Definisanje aliasa (zamenskog imena) za CNAME tzv. setovanje CNAME zapisa nam daje mogućnost da domen zovemo pored defaultnog naziva i nekim drugim imenom. Takvo zamensko ime dobija sve osobine originala, uključujući i IP adrese i poddomene. Najčešća primena je da naš domen www.webprogramirnje.org možemo da pozovemo samo sa webprogramiranje.org.

cname

Mail hosting (Mail Exchange)

Mail hosting predstavlja iznajmljivanje email servera i njegovih usluga. Većina web hosting kompanija u sklopu svoje ponude za web hosting uključuje u cenu i uslugu mail hosting-a. Mail hosting najčešće podrazumeva mail uslugu na bazi POP3 protokola i webmail uslugu baziranu na nekoj od opensource aplikaciji (Horde, RoundCube ili SquirrelMail)

MX zapis

MX zapis (engl. mail exchange record) definiše koji su sve e-mail servisi nadležni za prihvatanje mail poruka kod odredjenog domena. Osnovna funkcionalnost ovog mehanizma je pružiti mogućnost da postoji više e-mail servisa za jedan domen i da se definiše tačan redosled prema kojem kontaktiraju. Time se na jednostavan način omogućava usmerivanje maila (engl. mail routing) preko SMTP protokola (Simple Mail Transfer Protocol), kao i mogućnost raspodele opterećenja između više servisa. MX zapis se koristi ukoliko želite da vam email bude vezan za poddomen (na primer mail.mojdomen.rs).

Prvo je potrebno da definišemo vezu izmedju našeg podomena mail.webprogramiranje.org i IP adrese naših servera, stog ćemmo definisati A zapis

A records mail

Zatim da definišemo MZ zapis:

mx zapis

Nakon definisanja MX zapisa potrebno je do 48h da bi se DNS serveri ažurirali.

Kontrolu MX setovanja Vašeg domena možete proveriti na sledećim linkovima:


JSON (format za razmenu podataka)

JSON opšte

JSON (JavaScript Object Notation) je jedan od lakših tekstualnih otvorenih standarda dizajniran za čitljivu razmenu podataka. Ekstenzija datoteke s podacima u JSON-ovom formatu je .json, dok je meta oznaka (MIME format) application/json.

JSON je format koji polako zamenjuje XML jer ima nekolicinu prednosti u odnosu na XML. JSON ne koristi tagove pa stoga ima kraći kod koji je lakši za pisanje i razumljiviji za čitanje. Mada je najbitnija prednost JSON-a u odnosu na XML je ta što se JSON parsira kroz standardnu JavaScript funkciju dok se XML parsira kroz XML parser.

Continue reading…


Web servisi (osnove)

Šta su web servisi?

Web servis je aplikacija smeštena na nekom serveru, koja je pored osnovne namene dizajnirana da podrži interakciju izmedju dve mašine preko mreže i omogući razmenu informacija izmedju njih. Smatra se da je svaki servis i web servis ako je:

  • Dostupan preko interneta ili (interne mreže)
  • Koristi stadndardizovan sistem poruka
  • Prepoznatiljv je od strane mehanizma za pretragu
  • Nije vezan za operativni sistem ili programski jezik
Pretraga web servisa

Web Servisi se objavljuju na jedinstvenoj lokaciji gde se nude kao usluge. UDDI (Universal Description, Discovery and Integration) predstavlja centralizoanu lokaciju koja obezbeđuje mehanizam za registrovanje i pronalaženje Web servisa. UDDI koristi SOAP za komunikaciju i omogućava klijentima da pronađu servis, kao i serveru da ga objavi.

Servisi mogu biti zatvoreni (privatni) ali i javno dostupni. Listu javno dostupnih servisa možete pogledati na više sajtova:

Opis web servisa

Web servisi imaju mogućnost da opišu sebe, a za opis servisa se koristi WSDL (eng. Web Service Description Language). WSDL je napisan XML-om i sadrži informacije gde se web servis nalazi i koji protokol za komunkaciju koristi.

Saradnja sa GUI aplikacijom

Web servisi u saradnji sa GUI aplikacijom su nešto izmedju web i desktop aplikacije. Web servis na serveru daje funkcionalnost i podatke a desktop aplikacija samo daje prilagodljivi grafički interfejs koji popunjava sa dobijenim podacima od servisa. Web servis u saradnji sa GUI aplikacijom je fleksibilniji od web aplikacije jer korisnik može da prilagodi izgled aplikacije na klijentu dok korisnik web aplikaciie mora da koristi web browser i nema uticaja na to kako će aplikacija izgledati na ekranu.

Prednosti u odnosu na web aplikaciju:
  • Štedljiviji su po pitanju opterećenja mreže i resursa servera jer pri komunikaciji šalju samo odgovor dok web aplikacije pored odgovora šalju i HTML sa formom i opisom kako ogovor treba da bude prikazan. Web servisi su idealni su za “male” uredjaje koji nisu PC tj. mobilne Pocet PC… jer je na takvom uredjaju instalirana samo front-end aplikacija a teži deo se odradjuje na serveru.
  • Lakši su za razvoj, testiranje i održavanje. Kod Web aplikacije pored neophodne funkcionalnosti je potrebno istestirati i dizajn na svim browserima i platformama dok kod web servisa autor brine samo o funkciji dok o prikazu brine klijentska aplikacija.

klijent server

Kod servisa se komunikacija odvija izmedju klijenta i servera tako što klijent pošalje zahtev serveru koji onda server taj zahtev primi i obradi ga pa u odnosu na njega formira odgovor koji zatim pošalje nazad klijentu. Klijent-server stil arhitekture odvaja problematiku dve strane komunikacijskog kanala, što znači da klijentsku stranu uopšte ne zanima način čuvanja informacija na serveru jer uvijek postoji uniforman način pristupa tim resursima. S druge strane, server je nezavisan od klijenta i ne zanima ga kako je implementirano korisnički interfejs niti u kojem je stanju pojedini klijent, čime je serverska strana znatno pojednostavljena. Ovime je postignuta njihov nezavisnost i lakše razdvojeno razvijanje obe strane, odnosno moguće je npr. unaprediti serversku stranu ili potpuno izmeniti njegovu logiku, a da klijent to uopšte ne primieti dok god je način pristupa resursima isti.

Šta je API?

Da bi se ostvarila komnikacija izmedju dva sistema potrebno je da imaju “tačku” za kontakt, tzv. interfejs. Interfejs je posrednik (veza) pri komunikaciji izmedju dva odvojena sistema koji zajedno rade i može biti:

  • Hardverski interfejs (npr. volan, gas i menjač su “tačke pristupa vozilu” i predstavlju posrednika između automobila i osobe koja upravlja sa njim)
  • Programski interfejs tzv. “API” koje predstavlja “tačke pristupa” pri komunikaciju izmedju dva programa

Rad sa servisima podrazumeva da se resursima pristupa na udaljenom serveru (pristup je putem interenet mreže), ovakva mrežna komunikacija sa sobom donosi problem pristupa i prenosa složenih struktura podataka kao i same organizacije resursa na serveru. Programeri su tokom vremena kreirali komunikaciju izmedju dva programa na razne načine tj. pravli različite tipove API-ja ali su u jednom trenutku standardizovali način komunikacije tj. napravili su skup pravila koja mrežne aplikacije trebaju pratiti pri medjusobnoj komunikaciji (npr. jedan od takvih standardizovanih api-ja je “REST API”).
Ono na šta moramo obratiti pažnju je da kada se jednom definiše API i pusti u “promet”, u slučaju da je nakon nekog vremena potrebno napraviti izmene, nije pametno menjati do sada postavljene “end point-e” jer bi bilo u najmanju ruku neljubazno prisiljavati potrošače API-ja da menjaju već izradjene programe da bi se prilagodili na promenu. Kada se napravi promena uvek treba težiti da nastavite s podrškom za postojeća svojstva (end point-e), a da za promene dodate nova svojstva umesto menjanja postojećih.

Continue reading…


Mrežni protokoli (osnove)

OSI referentni model

OSI referentni model (eng. Open Systems Interconnection Basic Reference Model) je apstraktni opis arhitekture mreže. OSI referentni model se sastoji od sedam različitih nivoa apstrakcije.

Slojevi Jedinica Protokoli
Aplikacija
Mrežni procesi vezani za aplikaciju
Podatak HTTP, HTTPS, FTP, SSH, DNS, SMTP
Prezentacija
Enkripcija i kodiranje podataka
Podatak MIME SSL TLS
Sesija
Uspostavljanje sesije krajnjih korisnika
Podatak RPC, PAP, SCP
Transport
Veza, pouzdanost, transport
Segment
Datagram
TCP, UDP
Mreža
Logičko adresiranje i rutiranje
Paket IP, ICMP, ARP, RARP
Sloj veze
Fizičko adresiranje, pristup medijumu
Frejm (Okvir) PPP, HDLC, Frame Relay
Fizički sloj
Transmisija signala
Bit Token Ring
IEEE 802.11

Continue reading…