Veebiserveri funktsioonide kirjeldus. Mis on veebiserver. Veebiserver koduarvutis: installimine

Kui prindite sisse aadressiriba oma brauseris http://www.site/how-web-server-work/ ja klõpsake Sisestage võti- see meie veebisaidi leht ilmub ekraanile.

Tegelikult algtase juhtus järgmine: Teie brauser lõi ühenduse veebiserveriga, saatis päringu lehe veebilehe saamiseks ja võttis selle vastu.

Nüüd natuke täpsemalt:

URL koosneb kolmest osast:

1. Protokoll (http)

2. Serveri nimi (www.sait)

3. Lehekülje aadressid (kuidas-veebiserver-töö)

Brauser võtab ühendust domeeninimeserveriga, et tõlkida saidi nimi www.site keelde IP-aadress, mida ta kasutab serverimasinaga ühenduse loomiseks. Seejärel loob brauser ühenduse veebiserveriga määratud IP-aadressil pordis 80 või mõnel muul, kui see nii on ette nähtud (porte käsitleme selles artiklis hiljem).

HTTP-protokolli järgides saatis brauser serverile päringu, nõudes faili http://www.site/how-web-server-work/

pane see tähele küpsised saab saata ka brauserist serverisse.

Vastuseks genereeris server dünaamiline veebileht ja saatis selle tagasi HTML tekst selle lehe kuvamiseks oma brauseris. Küpsised saab saata ka serverist brauserisse lehe päises. Brauser loeb HTML-i silte ja loob veebilehe väljundi ekraanile.

Internet

Mis on siis "Internet"? Internet koosneb sadadest miljonitest arvutitest, mis on omavahel ühendatud arvutivõrk . Võrk võimaldab kõigil arvutitel üksteisega suhelda. Koduarvuti saab kõige rohkem kasutades Internetti ühendada erinevaid viise ja seadmed - alustades primitiivsest modemist telefoniliin, pumpades ühendust läbi kohalik võrk (LAN) Interneti-teenuse pakkujaga ( ISP).

Suuremad Interneti-teenuse pakkujad toetavad fiiberoptilisi liine terves riigis või piirkonnas. Põhivõrgud paigutatud üle kogu maailma, ühendatud fiiberoptiliste liinide, merekaablite või satelliitkanalid. Seega on iga Internetis olev arvuti ühendatud kõigi teiste Internetis olevate arvutitega.

Kliendid ja serverid

Üldiselt võib kõik Internetis olevad arvutid jagada kahte kategooriasse: serverid ja kliendid. Arvutid, mis pakuvad teenuseid (nt veebiserverid, FTP-serverid, pilveteenused) teiste masinate jaoks on serverid. Masinad, mida nende teenustega ühenduse loomiseks kasutatakse, on − kliendid. Kui Google'iga on ühendatud, sooritada otsingupäring või kasutada mõnda oma teenust, pakub Google oma arvutit (võimalik, et terve klastri võimsad arvutid), et teie taotlust teenindada. Nii et Google pakub serverit. Teie masin võib teenuseid pakkuda ka kellelegi Internetis. Seega on kasutajamasin tavaliselt klient, kuigi vajaduse korral võib sellest saada ka server.

Server võib Internetis pakkuda üht või mitut teenust. Näiteks võib serverarvutis olla tarkvara, mis võimaldab tal toimida veebiserverina, serveri email ja FTP serverid. Serveriga liituvad klientarvutid suunavad oma päringud spetsiaalsele tarkvarale, mis töötab jagatud serveriarvutis. Näiteks kui kasutate oma arvutis veebibrauserit, "räägib" see serveri arvuti veebiserveriga. Sinu oma meilirakendus"räägib" serveriga Meil, ja nii edasi.

IP-aadressid

Kõigi nende masinate võrku ühendamiseks on igal Interneti-arvutil unikaalne aadress IP-aadress. Tüüpiline IP-aadress näeb välja selline:

Helistatakse neljale IP-aadressi numbrile oktettid sest need võivad võtta väärtusi vahemikus 0 kuni 255 või 28 võimalikku väärtust.

Igal Interneti-arvutil on oma unikaalne IP-aadress. Serveril on staatiline IP-aadress, mis muutub harva. Koduarvutil on sageli Interneti-teenuse pakkuja määratud IP-aadress, kui masin sellega ühenduse loob. See IP-aadress on selle seansi jaoks ainulaadne, kuid järgmisel korral võib see erineda. Nii vajab ISP ainult ühte IP-aadressi iga toetatava ruuteri jaoks, mitte iga kliendi jaoks.

Kui töötate Windowsi masin, saate käsu abil vaadata oma arvutis palju Interneti-teavet, sealhulgas praegust IP-aadressi ja hostinime ipconfig. UNIX-seadmes peate tippima nslookup V käsurida masina IP-aadressi kuvamiseks.

Domeeninimed

Kuna enamikul inimestel on raskusi IP-aadresse moodustavate numbrite jada meeldejätmisega ja IP-aadresse tuleb mõnikord muuta, on kõigil Interneti-serveritel ja saitidel ka inimloetavad nimed, mida nimetatakse domeeninimed. Näiteks www.. Seda on enamikul meist lihtsam meeles pidada www.sait kui meenutada 5.9.205.233

Nimi www.site koosneb tegelikult kolmest osast:

1. Nimeta maailm Lai Veeb(www). Tegelikult saate ilma "www" sõnaselgelt täpsustamata, kuigi formaalselt on see erinev võrk.

2. Domeeninimi (qriosity)

3. Domeeni tsoonis kõrgeim tase(ru)

Domeeninimed hallata Domeeninimede registripidajad. Registripidajad loovad tippdomeeninimesid ja tagavad, et kõik domeeni tipptaseme tsoonis olevad nimed on kordumatud. Registripidaja annab ka kontaktinfo iga domeeninime jaoks ja käivitab teenuse kes on, mis näitab domeeni omanikku. Hostinime loob domeeni omanik.

Domeeninimeserverid

Serverite komplekt nimega domeeninimeserverid(DNS) kaardistab inimloetavad nimed IP-aadressideks. Need serverid sisaldavad lihtsad alused nimesid ja IP-aadresse sisaldavad andmed ning neid levitatakse kogu Internetis. Enamik üksikuid ettevõtteid, Interneti-teenuse pakkujaid ja suuri ülikoole toetab väikest DNS-i. Samuti on olemas kesksed DNS-id, mis kasutavad domeeninimede registripidajate edastatud andmeid.

Kui sisestate URL-i http://www..site ja edastate selle domeeninimeserverisse, tagastab server saidile www.site õige IP-aadressi. Õige IP-aadressi hankimisel võivad olla seotud mitmed nimeserverid.

Niisiis, kordame loetut: Internet koosneb miljonitest masinatest, millest igaühel on kordumatu IP-aadress. Paljud neist autodest on serverid. See tähendab, et nad pakuvad teenuseid teistele Internetis olevatele arvutitele. Paljud neist serveritest on meiliserverid, veebiserverid, FTP-serverid ja pilveteenuse serverid.

Sadamad

Iga server teeb oma teenused Interneti kaudu kättesaadavaks, kasutades nummerdamist sadamad, üks iga serveris saadaoleva teenuse kohta. Näiteks on serverarvuti, milles töötab veebiserver ja FTP-server. Veebiserver on tavaliselt saadaval pordis 80 ja FTP-server on saadaval pordis 21. Kliendid loovad teenusega ühenduse kindla IP-aadressi ja kindla pordi kaudu.

Kõik populaarsemad teenused on saadaval eelnevalt teadaoleva pordinumbriga, kuid saate ka määrata enda number port mis tahes teenuse jaoks.

Kui server aktsepteerib ühendusi pordi kaudu välismaailm ja kui tulemüür porte ei kaitse, saate Internetis mis tahes arvutist ühenduse luua eelnevalt määratud pordiga ja kasutada teenust. Pange tähele, et miski ei sunni teid näiteks hoidma veebiserverit pordis 80. Kui installisite oma serveri ja laadisite sellele veebiserveri tarkvara, võite panna veebiserveri pordile 999 või mis tahes muule kasutamata pordile. . Kui teie masinat tuntakse näiteks kui xxx.yyy.com, saavad nad sellega URL-i kaudu ühenduse luua http://xxx.yyy.com:999 -":999" näitab selgelt pordi numbrit, mille kaudu teie veebiserveriga ühendust saab. Kui porti pole määratud, eeldab brauser lihtsalt, et veebiserver on juurdepääsetav tuntud pordi 80 kaudu.

Protokollid

Kui klient on antud pordis teenusega ühendatud, pääseb ta teenusele juurde spetsiaalselt protokolli. Protokoll on kokkulepete kogum loogika tase, mis võimaldab programmidel andmeid vahetada. Sest koostöö Internetis olevad arvutid kasutavad TCP/IP protokollide perekonda. Veebiserver kasutab HTTP protokoll.

Lisa: Turvalisus

Sellest kirjeldusest näete, et veebiserver on üsna lihtne tarkvara. See võtab koos saadetud faili nime HANGI käsud, võtab faili vastu ja saadab selle brauserisse. Isegi kui võtta arvesse kogu portide käitlemise koodi, ei koosne lihtne veebiserveri programm rohkem kui 500 koodireast. Täielikud veebiserverid on keerulisemad, kuid oma olemuselt ka väga lihtsad.

Enamik servereid seab teatud taseme turvalisus teenindusprotsessidele. Lihtsaim variant on serverile juurdepääsu saamiseks sisselogimise ja parooli küsimine. Lisanduvad täiustatud serverid täiendav turvalisus, luues krüpteeritud ühenduse serveri ja brauseri vahel, nii et konfidentsiaalne teave(näiteks numbrid krediitkaardid) saab saata Interneti kaudu.

See on tõesti kõik, mida on vaja veebiserveri jaoks, mis teenindab standardset, staatilised veebilehed. Staatilised lehed on lehed, mis ei muutu, kui veebihaldur ise neid ei muuda.

Lisaks: dünaamilised lehed

Mis on juhtunud dünaamiline veebilehed? Näiteks:

1. Ükskõik milline Külalisteraamat võimaldab sisestada sõnumi HTML-vormingus ning kuvab automaatselt uued ja vanad kirjed.

2. Iga otsingumootor võimaldab teil sisestada märksõnad HTML-i päringuvormil ja seejärel loob see dünaamiliselt lehe, mis põhineb nende märksõnade abil teabe otsimisel.

Kõigil neil juhtudel teeb veebiserver enamat kui lihtsalt faili otsimine. See töötleb teavet ja genereerib lehti sõltuvalt päringute spetsiifikast. Peaaegu kõigil juhtudel kasutab veebiserver nn skriptid- selle protsessi lõpuleviimiseks PHP, Perl, Java ja muudes programmeerimiskeeltes kirjutatud programmikood.

Ka meie veebisaidi lehed on dünaamilised, loodud PHP abi andmebaase kasutades MySQL-i andmed.

Kaasaegne veebisait ei ole lihtsalt HTML-dokumentide kogum, vaid sisaldab ka paljusid tehnoloogiaid, sealhulgas serverite oma, näiteks: SSI (serveripoolne kaasamine), PHP (PHP: hüperteksti eelprotsessor, PHP: eeltöötluse hüpertekst), andmebaase ja palju muud. . Nende tehnoloogiatega tutvumiseks ja uurimiseks oleks viga kasutada külastatud töösaiti Internetis, seega on mõttekas installida kohalikku arvutisse vajalik programmide komplekt ja testida kõike sellel.

Selliste programmide kõige populaarsem kombinatsioon on Apache veebiserver, keel PHP programmeerimine, MySQL andmebaasi haldussüsteem, kest andmebaasi haldamiseks PhpMyAdmini andmed, mallimootor Smarty.

Need programmid töötavad peamiselt Linuxi-laadsete süsteemide all, kuid on ka Windowsi jaoks mõeldud versioone. Selle programmide komplekti peamine eelis on selle mitmekülgsus. Veebisait loodud ja testitud kohalik arvuti Windowsi all, saab hõlpsasti üle kanda FreeBSD-d töötavasse serverisse. Lisaks toetab seda komplekti valdav enamus majutajatest.

Tulevikus kaalume programme koduarvuti jaoks operatsioonisüsteem Windows.

Kirjeldame lühidalt, millised on saidi loomisel kasutatavad tehnoloogiad.

veebiserver

Veebiserver on programm, mis analüüsib sissetulevaid päringuid ja genereerib kasutajale saadetavad valmisdokumendid. Apache'i kasutatakse sageli veebiserverina, kuna see on Internetis kõige väljakujunenud ja populaarseim. Selle osakaal on erinevatel hinnangutel ligi 50% kasutatavate veebiserverite koguarvust.

PHP

Populaarne programmeerimiskeel, mida kasutatakse veebisaitide arendamisel.

MySQL

Andmebaasi haldussüsteem.

PhpMyAdmin

Veebiliides MySQL andmebaaside loomiseks ja haldamiseks. Võimaldab vaadata tabeleid, muuta nende sisu, muuta struktuuri, valida andmeid ja sortida teavet. Kõik toimingud tehakse otse brauseris, spetsiaalselt selle jaoks loodud kasutajasõbralikus liideses.

Nutikas

Võimas mallisüsteem PHP jaoks. Kasutab oma keelt, mis ühendab HTML-i ja spetsiaalseid Smarty silte. Eraldamiseks on vaja malle programmi kood ja dokumendi esitusviisi või muul viisil, et eraldada loogika sisust.

Kõik määratud programmid ja tehnoloogiad on avatud lähtekoodiga, tasuta allalaaditavad ja tasuta kasutatavad.

Saab paigaldada vajalikud programmid, laadides need alla tootja veebisaidilt ja kohandades neid vastavalt teie vajadustele. See nõuab aga mõnikord programmi tundmist ja vajaliku kvalifikatsiooni omamist, mida algajatel ei ole. Kuna me räägime mitte täisväärtusliku töötava serveri kohta, vaid arvuti kohta testimiseks ja silumiseks, siis on mõttekas kasutada valmiskomplekte. See komplekt sisaldab kõiki veebiarendaja jaoks vajalikke programme ning seda on lihtne seadistada ja hallata. Järgmisena räägime mõnest populaarsest veebiarenduskomplektist.

Internet on tunginud meie ellu tohutu kiirusega. Ta on kõik enda juurde taltsutanud, oma võrku mässinud ega kavatse meid lahti lasta. Iga päev kümneid ja sadu veebisaitide lehekülgi sirvides mõtlevad vähesed, mis see ülemaailmne Interneti-võrk on, kuidas see töötab, mida need või muud terminid tähendavad. Täna räägime sellest, mis on veebiserver, milleks seda vaja on ja milliseid funktsioone see täidab.

Mida mõeldakse termini veebiserver all? Veebiserverite kogum on Interneti aluseks. Kui neid poleks, siis ei oleks veeb. Kasutajad lihtsalt ei suudaks omavahel suhelda, vajalikku teavet leida ega oma veebisaite ja ajaveebe luua ega hooldada. Veebiserveriteks võivad olla arvutid või spetsiaalsed programmid, mis toimivad serverina.

Veebiserveri funktsioonid

Veebiserveri põhiülesanne on vastu võtta kasutajatelt HTTP päringuid, neid töödelda ja digitaalseks teisendada arvuti kood. Seejärel väljastage HTTP vastused, teisendades need miljonitest nullidest ja ühtedest kujutisteks, meediumivoogudeks, kirjadeks ja HTML-lehtedeks.

Igal veebiserveril peab kasutajate hõlpsaks kasutamiseks olema mugav veebibrauser. See saadab päringuid veebiserverisse, mis teisendatakse Interneti-ressursside URL-ideks.

Koos standardfunktsioonid, mõnel veebiserveril on täiendavad serverid. Nii saab näiteks vastav tarkvara salvestada kasutaja päringute arvu konkreetsele ressursile ja salvestada need eraldi logisse. Nad võivad toetada ka HTTPS-i, mis on oluline saitide ja kasutajate vahelise turvalise ühenduse jaoks. Sageli installitakse veebiserver koos meiliserveriga. See võimaldab kasutajatel kiiresti otse saidilt e-posti lehele minna, klõpsates vaid ühel hüperlingil.

Milleks on veebiserver?

Nagu eelnevast juba selgub, vajavad veebiserverit kõik, kes infovahetuseks Internetti kasutavad. Kuid üldiselt ei pea sellele ligi pääsema inimene, vaid programmid ja seadmed. Näiteks, viirusetõrjeprogrammid Sageli paluvad nad leida võrgust serveri ja värskendada oma andmebaase. Tehke aktiivset koostööd veebiserveritega Mobiiltelefonid, telerid ja muud seadmed, millel on Interneti-juurdepääs. Sel juhul saab programme konfigureerida automaatne värskendus. Seejärel kasutaja osalemine seda protsessi on praktiliselt tarbetu. Kuid siiski on parem mõnda uuendatud andmebaasi ise juhtida.

Kõige kuulsamad veebiserverid

Kõige kuulsamad ja levinumad veebiserverid on Microsoft IIS ja Apache. Neist populaarseim on Apache. Selle tarkvara kasutab üle 60% kõigist olemasolevatest. See on suuresti võimalik tänu sellele, et Apache on tasuta. Arendajad analüüsivad pidevalt oma toote vigu ja kõrvaldavad need. Programmi puuduseks on see, et üldiselt on see mõeldud professionaalsetele programmeerijatele ja kasutajatele, mistõttu on selle hooldamine ja seadistamine üsna keeruline.

Microsoftil on vastupidi oma veeb IIS server püüab seda tavakasutajale arusaadavaks teha. Kõiki selle seadistusi saab teha ilma spetsialistideta. Täiesti võimalik, et see programm suudab kasutajate arvu poolest India nimega konkurendile järele jõuda.

Nii Apache kui ka IIS töötavad suurepäraselt paljude operatsioonisüsteemidega, näiteks Mac OS, Linux, erinevad modifikatsioonid Microsoft Windows ja paljud teised. Need kaks veebiserverit töötavad stabiilselt ja neil on hea kiirus, saate nendega ühendada täiendavaid mooduleid.

Loengu eesmärk: defineerida mõiste "veebiserver" ja kujundada ettekujutus selle mehhanismi toimimisest.

Eelmises loengus saime aru HTTP protokolli toimimisest. Nüüd vaatame, kuidas töötavad tööriistad, mis muudavad varem kirjeldatud interaktsioonid. Veebirakenduste toimimine põhineb sellisel kontseptsioonil nagu veebiserver. Veebiserver on programm, mis võtab vastu sissetulevad HTTP-päringud, töötleb neid päringuid, genereerib HTTP-vastuse ja saadab selle kliendile. Veebiserveri üldalgoritmi saab esitada järgmiselt (toimingud, mida veebiserver töötleb, on märgitud rohelisega).

Pärast kasutaja juurdepääsu konkreetne ressurss HTTP-protokolli kasutades saadab klient (tavaliselt brauser) veebiserverile HTTP päringu. Tavaliselt määratakse sümboolne serveri nimi (näiteks "http://www.microsoft.com") – sel juhul teisendab brauser selle nime esmalt IP-aadressiks, kasutades DNS-teenused. Pärast seda saadetakse genereeritud HTTP-sõnum HTTP-protokolli kaudu veebiserverisse. Selles sõnumis näitab brauser, milline ressurss tuleb alla laadida, ja kogu lisateavet. Veebiserveri ülesanne on kuulata kindlat TCP-porti (tavaliselt porti 80) ja aktsepteerida kõiki sissetulevaid HTTP-sõnumeid. Kui sissetulevad andmed ei vasta vormingule HTTP sõnumid, siis sellist päringut ignoreeritakse ja kliendile saadetakse veateade.

Lihtsamal juhul peab veebiserver HTTP päringu saabudes lugema küsitud faili sisu kõvaketas, pakkige selle sisu HTTP vastuseks ja saatke see kliendile. Kui vajalikku faili kõvakettalt ei leita, genereerib veebiserver veateate, mis näitab olekukoodi 404 ja saadab selle teate kliendile. Seda tüüpi veebiserveri toiminguid nimetatakse tavaliselt staatilisteks saitideks. Sel juhul ei käivitata serveri poolel ühtegi programmikoodi peale veebiserveri enda programmikoodi. Sellised tööstsenaariumid muutuvad aga üha ebasobivamaks ning need asenduvad täisväärtuslike veebirakendustega. Nende rakenduste erinevus seisneb selles, et HTML-dokumente ja muid ressursse ei salvestata serverisse muutumatute andmetena. Selle asemel salvestab server programmikoodi, mis on võimeline päringu töötlemise ajal neid andmeid genereerima. Muidugi, mõned ressursid (nt failid kaskaadstiilid, pilte jne) saab salvestada staatilise sisuna, kuid peamine HTML-lehed töötlemise käigus tekkinud. Sel juhul veebiserver töötlemisel HTTP taotlus peab pääsema juurde programmi koodile, mis peab sisu genereerima. Eelnevat arvesse võttes näeb veebiserveri tööalgoritm välja järgmine.


Üks kõige enam tähtsaid ülesandeid mis lahendatakse veebiserveri ehitamisel, on mastaapsuse (st teenindatavate kasutajate arvu suurendamise) ja väliste rünnakute turvalisuse tagamise ülesanne. Kuna veebiserver töötab avatud keskkonnas − ülemaailmne võrk Internetti pääseb sageli kõikjalt. See muudab veebiserveri vastuvõtlikuks rasked koormused ja võimalikud rünnakud. Levinumad rünnakud veebiserveri vastu on veebiserveriga ühenduse võtmine suure hulga päringute ja kõrgsagedus. Sel juhul ei suuda veebiserver kõiki päringuid kiiresti töödelda ja see võib tegelike kasutajate jaoks veebiserveri jõudlust mõjutada. Eriti vastuvõtlikud sellistele rünnakutele on veebiserverid, mis käitavad mõnda muud välist programmikoodi kui veebiserveri enda programmikood. Tavaliselt võetakse selliste rünnakute vastu võitlemiseks kõik päringud, mis pärinevad konkreetne IP-aadress. Lisaks tuleks sellistel juhtudel hoolitseda rakenduse koodi optimeerimise eest, näiteks kasutada vahemällu - sellisel juhul on iga päringu töötlemisel keskprotsessori koormus väiksem, mis võib ründajate ülesande oluliselt keerulisemaks muuta. .

Pole harvad juhud, kui palju sõltumatuid veebisaite majutatakse samas veebiserveris. Lisaks kasutavad kõik need veebisaidid sama IP-aadressi. Need. ainult ühe IP-aadressiga veebiserver võib enda sees majutada mitut veebisaiti ja iga selline veebisait on seotud enda aadress(näiteks võib üks veebiserver majutada järgmisi veebisaite: "microsoft.com", "gotdotnet.ru", "techdays.ru" jne). Kuidas see võimalikuks saab? Seda nähtust nimetatakse virtuaalne hostimine. Selle toimimise mõistmiseks vaatame uuesti kliendi ja serveri vahelise suhtluse protsessi. Brauser saadab HTTP päringu veebiserveri IP-aadressile, mis on seotud domeeninimega. IP-aadressi lahendamine toimub DNS-teenuste abil. Kuigi päring saadetakse saadud IP-aadressi kasutades, määrab klient täiendava HTTP "Host" päise, mis määrab algne nimi veebisait. Tänu sellele teabele suudab veebiserver eristada juurdepääsu mitmele veebisaidile ja kasutada siiski sama IP-aadressi. See on väga oluline punkt, sest kui igale domeeninimele tuleks registreerida eraldi IP-aadress, siis IP-protokolli (v.4) aadressiruum lõppeks väga kiiresti ning globaalses internetis veebilehe majutamise kulu oleks palju suurem. Et see oleks selgem, vaatame näite abil, kuidas virtuaalne hostimine töötab. Oletame, et teil on veebiserver IP-aadressiga 85.51.210.22. Sellel serveril on mitu veebisaiti: mysite1.com, mysite2.com, mysite3.com. DNS-serverid konfigureeritud nii, et kõik need domeeninimed osutavad ühele IP-aadressile 85.51.219.22. Vaatame, milliseid HTTP-päringuid brauser igale saidile sisenemisel genereerib. Saidile "mysite1.com" sisenedes võib HTTP-päring välja näha järgmine:


Saidile "mysite2.com" sisenedes näeb HTTP-päring teistsugune välja.


HTTP päringuid analüüsides on selgelt näha, et HTTP päis "Host" on iga päringu puhul erinev. Nii saab selgeks, et veebiserver parsib selle päise ja saadab vastava saidi sisu kliendile. Seda protsessi saab skemaatiliselt kujutada järgmiselt.


Sarnast virtuaalse hostimise skeemi kasutavad enamik ettevõtteid, mis hostivad veebisaite Internetis. Kuna antud juhul ühel füüsiline server saab majutada suurt hulka täiesti erinevaid saite, siis on see meetod üks odavamaid. Jagatud hostimises on selle käitamine aga tavaliselt keelatud erinevaid teenuseid ja teenuseid, samuti on piiratud kasutuse ulatus keskprotsessor. See tähendab, et juhul, kui veebisait kulutab liiga palju serveri ressursid, siis palutakse saidi omanikul minna üle kallimale plaanile (millel on rohkem eraldatud ressursse) või kui lubatud lävi ületatakse, blokeeritakse veebisait mõneks ajaks. Kuna mõnikord on serverilt vaja palju ressursse või serveris on vaja käivitada täiendavaid rakendusi või teenuseid, virtuaalne hostimine ei saa alati kasutada. Sel juhul rendivad nad tavaliselt spetsiaalse serveri – füüsilise või virtuaalse. See on aga kallim veebirakenduste hostimise tüüp Internetis, seetõttu kasutatakse sageli virtuaalset hostimist.

Nagu varem mainitud, on veebiserveri jaoks lihtsaim stsenaarium HTTP-päringu vastuvõtmine, selle töötlemine, lugemine soovitud faili kõvakettalt, genereerides HTTP vastuse ja saates selle kliendile. See stsenaarium on kõige lihtsam, kuid tegelikkuses on see üha harvem. Fakt on see, et selle lähenemisviisi korral on kliendile edastatav sisu staatiline (st see ei muutu päringu järgi). Kui aga on vaja ehitada veebirakendus, siis kliendile edastatava HTML-lehe sisu peab muutuma sõltuvalt erinevatest välistingimustest (päringu parameetrid, andmebaasi sisu, päringu töötlemise aeg, kasutaja tüüp jne). Sel juhul on vaja käivitada väline (veebiserveri suhtes) programmikood, mis realiseerib veebirakenduse loogikat. Seda koodi tuleb hoida veebiserverist eraldi, kuna rakenduse kood on erinevates rakendustes erinev, kuid veebiserver on sama. Seega saab HTTP-päringuid töötleva ja HTTP-vastuseid genereeriva programmikoodi jagada kaheks osaks:

  • programmikood, mis rakendab teenuse funktsioone suhtlemiseks HTTP-protokolli kaudu (veebiserveri enda programmikood);
  • programmikood, mis rakendab konkreetse veebirakenduse loogikat (äriloogika, juurdepääs DBMS-ile jne).

Kuna veebirakenduse kood on tavaliselt pakendatud eraldi moodulitesse ja tarnitakse iseseisvalt, on vaja nende kahe osa interaktsiooni mehhanisme, s.t. interaktsiooni liides. IN sel juhul Interaktsiooniliides viitab reeglistikule, mille järgi veebiserver ja rakendus omavahel suhtlevad. Tegelikult võib päringu töötlemise vooskeem välja näha järgmine:


Ajalooliselt on interaktsiooniliideseid olnud kahte peamist tüüpi: väline rakendus ja veebiserverid – CGI ja ISAPI.

CGI(Tavaline Gateway liides) on veebiserveri ja veebirakenduse vahelise suhtluse varaseim viis. CGI põhiidee seisneb selles, et järgmise HTTP päringu saabumisel algatab veebiserver uue protsessi ja edastab talle kõik vajalikud HTTP päringu andmed. Pärast selle protsessi käivitamist see lõpeb, edastades tulemuse tagasi veebiserverisse. Kuna veebiserver ja rakendus on erinevad protsessid operatsioonisüsteemi seisukohalt kasutatakse vahendeid nendevaheliseks infovahetuseks protsessidevaheline suhtlus(IPC) – sageli see keskkonnamuutujad, nimega torud jne. CGI peamine eelis on see, et veebiserveri protsess ja rakendus on teineteisest isoleeritud ning veebirakenduse probleemide korral ebaõnnestub rakendusprotsess, samas kui veebiserveri protsess ise töötab edasi.

Teisest küljest toob iga kord uue protsessi loomise vajadus kaasa täiendavaid üldkulusid protsesside loomisel (protsessi loomine on operatsioonisüsteemi seisukohalt kallis toiming) ja andmete üle protsessipiire. See asjaolu on tõsine puudus ja sellel on oluline mõju veebirakenduse skaleeritavusele (töötlusvõimele suur kogus sissetulevad päringud).

ISAPI(Interneti-serveri API) – alternatiivne viis interaktsioon veebiserveri ja veebirakenduse vahel. Erinevalt CGI-st käivitab veebiserver ISAPI liideses suheldes järgmise päringu saabumisel uue voolu põhiprotsessis, milles veebiserver töötab. Kuna lõime loomine on operatsioonisüsteemi seisukohast odavam kui protsessi loomine, kipuvad sellised rakendused olema praktikas skaleeritavamad. Samuti lihtsustab see veebiserveri ja veebirakenduse vahelist suhtlust, kuna see kasutab operatsioonisüsteemis ühte aadressiruumi (kuna kogu kood töötab samas protsessis). Siiski juhul tõsiseid probleeme veebirakenduses, mis suhtleb ISAPI-s oleva veebiserveriga, võib ka veebiserveri sulgemise oht. Kuna veebiserver ja veebirakendus töötavad samas protsessis, on see tõepoolest nii. Seetõttu peaksid ISAPI-d toetava veebiserveri koodi arendajad sellele probleemile erilist tähelepanu pöörama.

Tänapäeval on kõige levinum viis veebiserveri ja veebirakenduse vahel suhtlemiseks ISAPI liides, kuna see pakub kõige rohkem optimaalne jõudlusüldkulude ja mastaapsuse osas. Samas kui samas veebiserveris mitu veebirakendust käitatakse, võib üks rakendus teist mõjutada. Kui rääkida ettevõtetest, kes oma serverites veebirakendusi majutavad, siis võib tekkida olukord, kus konkureerivate ettevõtete veebilehed on samaaegselt samas veebiserveris. Sel juhul võib üks firmadest teoreetiliselt sihilikult üles laadida koodi, mis veaks veebiserveri tõrkega ja seega poleks kõik selles veebiserveris majutatud veebisaidid saadaval. Sellise olukorra vältimiseks kasutatakse kombineeritud lähenemist - iga rakenduse jaoks saab luua rakenduste kogumi, mis on eraldi protsess, milles lõimed töötlevad kasutajatelt sissetulevaid HTTP-päringuid. Sel juhul, kui mõni rakendus sisaldab koodi, mis lõpetab protsessi veaga, siis lõpetatakse ainult selle rakenduse protsess. Lisaks sisaldab iga rakenduste kogum eelnevalt loodud ja ettevalmistatud lõime. See on vajalik, et mitte raisata aega lõime loomisele sissetuleva päringu saabumisel. Seda eelnevalt loodud lõimede komplekti nimetatakse niidibassein. Tavaliselt jälgib veebiserver iga rakenduste kogumit ja kui see ebaõnnestub, taaskäivitab veebiserver oma protsessi.

Lisaks ülaltoodud veebiserveri funktsioonidele ja mehhanismidele hõlmavad selle funktsioonid sageli ka seotud lisaülesandeid. Nende ülesannete hulka kuuluvad kasutaja autentimine ja autoriseerimine, serverilogi pidamine (veebiserveri töö silumiseks), mitme veebisaidi toetamine ühes serveris (virtuaalne hostimine), tugi turvalised ühendused HTTPS-protokolli kaudu jne. Need funktsioonid sõltuvad igal konkreetsel juhul veebiserveri teostusest.

Tänapäeval on olemas suur hulk erinevaid veebiserverite rakendusi. Üks populaarsemaid ja mitmekülgsemaid veebiservereid on avatud lähtekoodiga veebiserver. lähtekood Apache. See loodi töötamiseks Linuxi keskkond, on olemas ka rakendus Windowsis töötamiseks. Selle peale ehitati näiteks mitmesuguseid muid variatsioone Apache Tomcat veebirakenduste käivitamiseks Java-põhine. Teine, kõige tõsisem toode selles valdkonnas on Microsofti veebiserver Internet Information Services (IIS), mis töötab operatsioonisüsteemis Windowsi süsteemid. Tavaliselt töötab see veebiserver ASP.NET-il (ja sellega seotud tehnoloogiatel) põhinevaid rakendusi PHP rakendused ja staatilised veebisaidid. ASP.NET-il põhinevate veebirakenduste loomisel kasutame IIS 7. Lõpuks on veebiserverite arendamiseks ka teisi, väiksemaid projekte, näiteks Nginx. Selle projekti töötas välja üks Rambleri arendajatest, et optimeerida selle otsingumootori jõudlust. Seejärel osutus projekt nii edukaks, et seda kasutati teistes rakendustes. Tavaliselt kasutatakse Nginxit siis, kui on vaja ehitada suure koormusega infrastruktuur.

Lühikokkuvõte

Veebiserver on programm, mis töötleb sissetulevaid HTTP päringuid ja genereerib HTTP vastuseid. Kõige lihtsamal juhul edastab veebiserver kliendile nende failide sisu, mis asuvad serveri kõvakettal. Kui mõne programmiloogika alusel on vaja genereerida HTTP vastuseid, ühendatakse väline programmikood. Välise programmikoodi ühendamiseks kasutatakse CGI ja ISAPI liideseid. IN praegu Kõige lootustandvam on ISAPI liidese kasutamine selle suurema skaleeritavuse tõttu. Veebiserveris luuakse rakenduste kogum (iga veebirakenduse jaoks on OS-i sees eraldi protsess, mis sisaldab päringute töötlemiseks mitut lõime). Veebiserverite rakendusi on palju, kusjuures ASP.NET-i rakendused kasutavad tavaliselt Microsoft Internet Information Servicesi (IIS) veebiserverit.

Kontrollküsimused

  • Mis on veebirakendus?
  • Mis on brauser?
  • Kirjeldage kliendi veebirakenduse päringu töötlemise tsüklit.
  • Miks on vaja veebirakenduste arendustehnoloogiaid (nagu ASP.NET, PHP, Ruby On Rails jne).
  • Kuidas HTTP-protokoll töötab ja milleks see on ette nähtud?
  • Mis on HTTP sõnumi päised ja milleks need on mõeldud?
  • Mis on HTTP-sõnumi sisu?
  • Kuidas eraldatakse HTTP-sõnumi päised sõnumi kehast?
  • Mis on HTTP päringu meetod?
  • Mis on HTTP vastuse olekukood?
  • Tooge näiteid HTTP päistest HTTP päringu ja HTTP vastuse jaoks.
  • Mis vahet sellel on sümmeetrilised algoritmid krüpteerimine asümmeetrilisest?
  • Kuidas turvaline HTTPS-protokoll töötab?
  • Mis on veebiserver?
  • Milliste liideste alusel saavad veebiserver ja veebirakendus omavahel suhelda?
  • Mille poolest CGI erineb ISAPI-st?
  • Mis on jagatud hostimine?
  • Mis on rakenduste kogum?
  • Nimetage veebiserverite populaarseimad teostused.
  • Millises veebiserveris töötavad ASP.NET-i rakendused?

Oleme välja andnud uue raamatu „Sisuturundus in sotsiaalvõrgustikes: kuidas pääseda oma tellijate pähe ja panna nad teie brändisse armuma.

Telli

Veebiserver on server, mis võtab vastu kasutaja päringuid ja annab neile vastused – dokumendi, lehe või saidi.


Rohkem videoid meie kanalil – õppige SEMANTICA abil internetiturundust

Iga arvuti saab muuta serveriks. Selleks peate installima spetsiaalse kesta.

Nõuded tehnilisele osale määratakse eraldatud ressursside arvu ja kiirusnõuetega. Mida suuremad need on, seda võimsam peaks arvuti olema.
Et see oleks selge, toome analoogia. Lähete raamatukokku ja palute neil teile raamat anda. Raamatukoguhoidja leiab teile vajaliku ja annab selle teile. Teek on server; kõik andmed talletatakse selles. Raamatukoguhoidja on kest, kes võttis päringu vastu ja saatis vastuse. Sina oled klient.
Saate saata raamatukoguhoidja Lisainformatsioon– sarnane lingil klõpsamisega. Erinevus seisneb selles, et sama ressurssi Internetis saab korraga lugeda piiramatu arv kasutajaid.
Klienditeenindus lähtub sarnasest põhimõttest: kui tuleme raamatule järele, saame raamatukoguhoidjale esitada küsimuse ( otsingusüsteem) või vaadake indeksit (Yandexi kataloog). See aitab teil leida vajalikku teavet.

Mida veebiserver teeb?

Tema peamine ülesanne- andmekogu. Lehed, failid, pildid, tekstisisu.
Ülesanded:

  • Taotluste vastuvõtmine.
  • Käivitage programme spetsiaalsetes programmeerimiskeeltes (server).
  • Loo veebilehti.
  • Saatke need kasutajale tagasi.
  • Kaitske teavet.
  • Tuvastage külastajad.
  • Pea taotluste logi.
  • Teist tüüpi taotluste teenindamine: mailto jne.

Veebiserveri toimimise mõistmiseks peate mõistma võrgus teabeedastuse põhimõtteid. See põhineb reeglitel, mida nimetatakse protokollideks: iga URL algab tüübitähisega (ftp, http://, https:// jne).
Hüpertekst Edastusprotokoll- edastusprotokoll. Saidi lehed näevad alati välja nagu hüperteksti dokument. See on mis tahes serveri või klientprogrammi lõpptulemus.

  • Kui kasutaja sisestab aadressi või klõpsab lingil, esitab brauser päringu, kodeerides teabe vastavalt nendele reeglitele.
  • Host, millega see aadress on seotud, käitab serveriprogramme. Igaüks neist täidab oma funktsioone.
  • Vastuvõetud andmed dekrüpteeritakse ja käsud täidetakse.
  • Hüpertekst genereeritakse, kodeeritakse ja saadetakse tagasi.
  • Brauser saab vastuse, teisendab koodi html-iks ja kuvab lehe ekraanil.

Mida on vaja veebiserveri jaoks

Vajame masinat, mis töötleb kõiki taotlusi. Hinnake koormust, mida server peab taluma. See sõltub külastajate arvust: mida rohkem taotlusi, seda rohkem energiat on vaja.

Majutusteenuseid pakkuvad spetsiaalsed ettevõtted. Rendid serverit. Teile antakse saidifailide majutamiseks kvoot.
Aga kui teil on lihtne veebisait, saate seda ise teha.

Kui probleem serveriga on lahendatud, peate sellega siduma staatilise IP-aadressi.

Sait muutub veebiserveris kättesaadavaks pärast selle registreerimist Domeeninimi, aadressi tõlge lõpetatud DNS-teenus- IP-aadressi (näiteks 111.111.111.111) ja domeeninime (www.site.com) linkimine.

Levinumad serverid

Apache

See on tasuta, vabalt levitatav toode, millel on palju eeliseid:

  • Pidev arendaja tugi.
  • Moodulid töötamiseks serveripoolsed keeled programmeerida PHP, Perl, Python, Ruby, ASP jne.
  • Avatud lähtekoodiga. Erinevad programmeerijad teevad oma vajadustele vastavaid modifikatsioone. Näiteks venekeelne kogukond kohandab selle vene kodeeringuga.
  • . Algselt loodud Unixi jaoks, kuid nüüd toetavad Windows, Mac OS, BSD, Linux, OS/2 ja Novell NetWare.
  • Ohutus.

Installimise ajal määrake oma hostinimi, näiteks localhost. Kopeerige mis tahes html-leht htdocsi kausta, mis asub kaustas Apachex.x (kus x.x on versiooninumber). Või looge see Notepadis, sisestades mis tahes teksti ja salvestades selle html-laiendiga.

Kui fail kuvatakse kaustas, avage brauser ja tippige aadress: localhost://LEHE NIMI.html. Teie tekst ilmub ekraanile – leht avatakse serverist. Kui näete tõrketeadet „Saidile ei pääse juurde”, tähendab see, et Apache ei tööta. Selle ikoon on salves.
Klõpsake seda ja valige "Esita". Pärast seda kõik toimib.

NGNIX

Sellel tegutsevate aktiivsete saitide osakaal on 21,13% (Netcrafti uuring). Seda kasutavad peamiselt suured ettevõtted ja professionaalsed arendajad: Yandex, Mail.ru, Rambler jne. NGNIX talub tohutut külastajate koormust, on usaldusväärne, turvaline ja läbimõeldud.
Levitatakse vabalt, kuid on ilmunud tasulisi Pluss versioonid, maksab alates 2500 dollarist.

IIS

Selle kuulsuse tagab arendaja kuulus nimi. See on veebiteenuste komplekt ja on integreeritud Windowsiga. Algne programmeerimisplatvorm on ASP.NET, kuid saab rakendada ka alternatiivi, näiteks PHP.

Täielikuks hostimiseks peate installima Microsofti serveri operatsioonisüsteemi - Windows Server. Versioon 6 ei olnud üldse hostimiseks mõeldud, täielikku toetust algas kell 7. See ostetakse automaatselt koos operatsioonisüsteemiga ja sõltub selle omadustest.

Paigalduspaketid

Algajatele programmeerijatele ja arendajatele luuakse tööriistu, mis võimaldavad mõne hiireklõpsuga arvutisse veebiserveri juurutada.

  • OpenServer. Kaasaskantav arenduskeskkond, mis sisaldab palju andmebaase, programmeerimiskeeli ja nende versioone, samuti lisateenused. Näiteks liides PhpMyAdmini andmebaasiga töötamiseks. Täna on see kõige populaarsem paigalduskomplekt. See töötab isegi mälupulgalt. Tasuta allalaadimine väikese kiirusega. 100 rubla eest suureneb kiirus oluliselt.
  • Xampp. Aktiivselt toetatud pakett: Apache, Php, Perl, MariaDB jne. Sellel on juhtpaneel. Laadige alla tasuta.
  • . Väga mugav komplekt kõigest õiged tööriistad, sealhulgas Apache, PHP, MySQL, PhpMyAdmin. Kahjuks Uusim versioon sisaldab pärandjaotusi. Üldiselt sobivad need ka treenimiseks. Foorumi põhjal otsustades projekti enam ei toetata.