Serveri veebiprogrammeerimine. Probleemi lahendamise meetodi valimine. Ma tahan olla täielik arendaja

Kõige valusam valik neile, kes tahavad programmeerimismaailma sattuda, on valida oma eriala. See on valus, sest kui sa ühel päeval ärkad ja mõistad, et see pole sinu kutsumus ega ole lihtsalt liiga laisk, et jätkata, siis kaotad kuude ja aastate pikkuse treeningu ja praktika.

Konkreetsete keelte puhul on selles osas lihtsam - tavaliselt piisab hindamiseks juba algteadmistest, nii et saate tegevussuunda kiiresti ja ilma suurema ajakadudeta muuta. Siiski on just keelevalik see, mis noored meeled tuima ajab: neid on ju palju rohkem kui üldisi programmeerimise valdkondi, aga midagi on vaja kätte võtta.

Rahunege maha, nüüd teeb kollektiivne mõistus teie eest valiku.

Esimeses osas räägime veebikeeltest. Millist keeleeelset paigutust peate teadma ja milline on õppimise järjekord? Sellest lähemalt hiljem.

Eesmine, tagumine ja ilmselge valik

Esimene valik, mis tuleb teha, on vastutusvaldkond.

Esiosa arendajad
Mõnikord nimetatakse neid ka veebidisaineriteks, kuid see on vale. Esiotsa arendaja ülesanne on luua liides, ta vastutab selle eest, et veebileht laadiks kiiresti, ei aeglustuks ja sellel olev kood töötaks õigesti.

Taustaprogrammi arendajad
Varjatud funktsionaalsuse ja andmetöötluse eest vastutavad inimesed. Nende ülesanne on kirjutada serveri koodi.

Täielikud spetsialistid
Nende järele on suurim nõudlus juba ainuüksi seetõttu, et nad suudavad üksi täita kõik kliendi soovid.

Lihtsaim viis on muidugi seada endale ülesandeks kõik välja mõelda, kuid see tõmbab teie tähelepanu ainult varajases staadiumis kõrvale ja hilisemates etappides saate juba teada, et on vaja kõiki protsesse vähemalt pealiskaudselt uurida. Seetõttu läheme järjekorras ja alustame esiotsaga.

Nägu müüa

Kõige olulisem, mida esiotsa arendajaks saada soovija ei peaks tegema, on spetsialistile esitatavate nõuete miinimumloetelu otsimine. Sel juhul on suur oht komistada selliste artiklite otsa nagu artikkel "Esimesed arendajad peavad olema kõigega kursis". Kõik, mis seal kirjas on, on absoluutne tõde, kuid selle punktini tuleb jõuda alustades väikestest asjadest ning väikesed asjad on kasutajaliidese 3 põhisammast: HTML, CSS ja JavaScript. Edasiõppimise aluse saad aadressil.

Vaid paar aastat tagasi, olles õppinud HTML-i ja CSS-i mitme nutika raamatu vormingus ning JS-i jQuery tasemel, võis tõsiselt pürgida juuniorpositsioonile. Kuid tänapäeval on ajad muutunud ja nõudmised on oluliselt suurenenud. HTML-i ja CSS-i teadmised saab siiski kokku võtta paari hea raamatuga:

  • "HTML5 õppimine" Bruce Lawson, Remy Sharp,
  • "CSS. Programmeerimisretseptid » Christopher Schmitt.

Peate JavaScriptile palju aega kulutama. Siin ei piisa teooria õppimisest, näiteks raamatust “JavaScript: tugevused”. Käte treenimine ja aju treenimine praktikas, sealhulgas mainitud jQuery kasutamine, võtab mitu kuud.

Lisaks teoreetilistele ja praktilistele teadmistele peab esiotsa spetsialist väga hästi tundma uusimaid internetitrende ja oskama neid professionaalselt rakendada. Lõppude lõpuks on see vastutusvaldkond, mille järgi valdav enamus kliente hindab kogu projekti tarnimise ajal.

Töötle, kruvi ja loo

Iga taustaarendaja põhikeel on PHP. See on kindel alus, mille täiuslikuks tundmiseks ega ka peamiseks tööriistaks muutmiseks pole sugugi vajalik, kuid peate sellest aru saama algtasemel. Selleks saate vähemalt hoolikalt uurida raamatut "PHP: õige tee".

Mis puutub praegustesse keeltesse, siis suure tõenäosusega tuleb valida Ruby ja Pythoni vahel ning see valik on puhtalt maitse asi. Isegi siin ei lahvata perioodiliselt vaidlusi, kuid isegi vaidluses õppimise mugavuse üle on võimatu leida selget võitjat. Pythoni jaoks on kasulik lugeda raamatut lihtsa pealkirjaga "Pythoni õppimine", Ruby jaoks - "Rails 4. Veebirakenduste agiilne arendamine".

Teine kohustuslik keel on JavaScript koos selle tuletistega jQuery ja Ajax. Antud juhul huvitab sind just taustaarendus, seega pole mõtet üldkeeleõppele aega kulutada, kuid ressursside, näiteks Anton Ševtšuki ajaveebi külastamine võib olla väga kasulik.

Ja loomulikult on teil vaja teadmisi andmebaaside valdkonnas. See tähendab vähemalt SQL-i õppimist ja maksimaalselt populaarsete andmebaasidega töötamise kogemust.

Üks kõigi eest

Veebiarendaja elukutse tõde on see, et nn "sfäärilisi" spetsialiste siin praktiliselt pole ja tavakliendid ei saa alati nendest jaotustest aru, nii et ühel või teisel kujul peate üsna kiiresti täisstaki juurde jõudma. . Seetõttu lugege uuesti kaks eelmist osa, külastage uuesti ja hakake tarkvarateaduse graniiti närima.

Teadmised mitte keelte kohta

Lisaks keeltele endile on vaja uurida kõiki nendega kaasasolevaid spetsiaalseid lisandmooduleid. See kehtib eriti JavaScripti (AngularJS, Knockout, Backbone) ja CSS-i (Bootstrap, Foundation) kohta. Lisaks peate tutvuma versioonikontrollisüsteemidega Git ja SVN.

Veebiarenduses suure edu saavutamiseks ole kannatlik, liigu samm-sammult oma eesmärgi poole, valides endale kõige huvitavama tee. Ja see pole üldse oluline, kas see erineb ülalkirjeldatust või mõnes muus artiklis. Armasta seda, mida teed, pühenda sellele aega, pane sellesse oma hing ja edu ei lase sul oodata.

Mida? Mis serveri programmeerimine veel on? Mis häda see selline on? Ja miks me seda vajame?

Näib, et oleme õppinud Dreamweaveri keskkonnas veebilehti looma. Õppisime isegi seda kasutades terveid veebisaite looma ja neid veebiserveris avaldama. Uurisime kahte tüüpi lehekujundust: raamipõhist, kui saidid on üles ehitatud raamikomplektide põhjal, ja tabelipõhist, kui lehe sisu paigutatakse suurde keerukasse tabelisse. Õppisime stiililehtede, metasiltide ja serveripoolsete direktiivide kohta. Ja lõpuks õppisime tundma veebiprogrammeerimist ja veebiskripte, mis võimaldavad meil staatilistele lehtedele "elu" lisada. Mida veel õnneks vaja on?

Jah, sellest, mida me varem õppisime, piisab täiesti korralike veebisaitide loomiseks. Paljud veebidisainerid peatuvad sellega. Aga me tahame rohkem, kas pole?

Seega astume järgmise sammu – liigume serveris failidesse salvestatud lehtedelt spetsiaalsete programmide poolt genereeritud lehtedele. Just selliste programmide kirjutamisega tegeleb serveriprogrammeerimine.

Aga võtame asjad järjekorda. Ja me alustame sellest, miks neid serveriprogramme vaja on.

Mis on serveri programmeerimine

Tõesti, mis see on ja millega seda süüakse?

Miks me vajame serveriprogramme?

Kas olete kunagi veebipoodi külastanud? Näiteks kõige populaarsem "Osoon" (http://www.ozon.ru). Kas mäletate, kuidas sealt kaupa tellida?

Kui te ei mäleta või isegi ei tea, mis veebipood on, jätkem meelde (või uurigem välja).

Te lähete veebilehele, mis kirjeldab teile vajalikku toodet. Pärast paljusid südametunnistuse piinasid otsustate lõpuks osta ja klõpsate nuppu Osta. Pärast seda kuvatakse teile mitu veebilehte, kus saate määrata oma aadressi, makseviisid ja kauba kohaletoimetamise ning lõpuks ostu kinnitada. Seda kõike saate teha, klõpsates vastavaid nuppe ja sisestades andmed vastavatele sisestusväljadele, mis asuvad otse lehtedel.

Mis juhtub, kui see juhtub? Kuidas teie sisestatud andmeid töödeldakse? Kas see on tõesti veebibrauser ise?

Üldse mitte. Neid andmeid töödeldakse veebiserveris.

Veebipood on vaid üks näide, mis eelpool mainitud “Osooni” fännist ja püsikliendist autorile pähe tuli. Veebipõhised meiliserverid, otsingumootorid, elektroonilised teadetetahvlid, foorumid ja üldiselt kõik veebisaidid, mis saavad külastajalt andmeid ja töötlevad neid, töötavad täpselt samamoodi. Kõigil neil juhtudel saab veebibrauser külastajalt andmeid ja saadab need veebiserverisse, mis töötleb neid ja toodab töötlemise tulemuse automaatselt genereeritud veebilehe kujul.

Kuidas see tegelikult juhtub? Nüüd saame teada. Ja kõigepealt vastame küsimusele ...

Nagu veebiserver töötleb kasutajaandmeid

Kuidas töötleb veebiserveri programm kasutaja poolt talle saadetud andmeid?

Pole võimalik.

Veebiserver ei ole varustatud nende töötlemiseks. Selle ülesandeks on saada veebibrauserist failide päring (veebilehed, stiililehed, graafilised pildid, filmid, helid, arhiivid, käivitatavad failid jne), otsida neid samu faile serveri arvuti kõvaketastelt ja saatke leitud failid tagasi veebibrauserisse. See on tema peamine ülesanne. Muidugi võivad mõned eriti võimsad serverid teha saadetavate failidega enne nende tegelikku saatmist lisatoiminguid (eelkõige serverijuhiste täitmist). On ka "mitme hosti" programme, mis täidavad mitte ainult veebiserveri, vaid ka FTP-serveri, posti, UseNeti uudiste ja jumal teab mille muu funktsioone. Kuid põhifunktsioon: failide lihtne väljastamine vastavalt kliendi nõudmistele - ja ei midagi muud. Saladus on selles, et veebiserver ise ei töötle külastajate andmeid. Selleks kasutatakse spetsiaalseid programme, mis töötavad koos veebiserveriga samas serveriarvutis. Neid kutsutakse ei oma kasutajaliidest ja “suhtlevad” ainult veebiserveriga, võtavad sealt vastu kasutaja sisestatud andmed ja tagastavad talle tulemuse. Selle poolest erinevad need põhimõtteliselt kliendiprogrammidest, mis töötavad otse kasutajaga. (Kliendiprogrammide hulka kuulub, kuid mitte ainult, teie lemmikveebibrauser.)

Sellest järeldub, et veebiserver võib siiski kasutajalt andmeid vastu võtta. Jah, see on osa selle põhiülesandest: andmete vastuvõtmine ja serveriprogrammi suunamine. Serveriprogramm omakorda töötleb neid ja tagastab tulemuse veebiserverisse.

Siit saab alguse lõbus. Fakt on see, et serveriprogrammi poolt veebiserverisse tagastatud tulemus pole midagi muud kui tavaline HTML-kood! Tegelikult tagastab serveriprogramm valmis veebilehe, mis on genereeritud külastaja sisestatud andmete põhjal. Seda lehte nimetatakse dünaamiline, Erinevalt staatiline veebidisaineri kirjutatud ja serveriarvuti ketastel failidena salvestatud leheküljed. Ja veebiserver saadab selle dünaamilise lehe kliendile vastusena sisestatud andmetele.

Serveriprogrammid jagunevad nelja järgmisesse tüüpi.

  1. Liidese kaudu töötavad käivitatavad programmid CGI(Common Gateway Interface – ühine vahetusliides), nn CGI programmid. Seda tüüpi serveritarkvara on vanim, kuid sugugi mitte vananenud.
  2. Veebiserveri laiendused(ISAPI, NSAPI formaadi rakendused, Apache laiendusmoodulid jne). Uus meetod, mis võimaldab manustada serveriprogramme veebiserverisse endasse, muutes need selle lahutamatuks osaks. Selle pakkus esmakordselt välja Microsoft oma Microsofti Interneti-teabeserveri jaoks (ISAPI liides) ja populaarse tasuta Apache veebiserveri arendajad.
  3. Aktiivsed serverilehed(ASP, JSP jne). Tegelikult on need failidesse salvestatud tavalised staatilised veebilehed, mis sisaldavad lisaks tavapärasele HTML-koodile käske, mida töötleb kas veebiserver ise või selle laiendus. Samuti uus meetod, mille Microsoft pakkus esmakordselt välja sama Interneti-teabeserveri jaoks.
  4. serveri skriptid, kirjutatud tõlgendatud keeles (Perl, Python, VBScript, JavaScript jne). Levinud skriptid, mis töötavad CGI või ISAPI liidese kaudu serveri poolel.

Vaatame nüüd kogu seda mitmekesisust üksikasjalikumalt.

CGI-programmid on tavalised käivitatavad failid, mis on kirjutatud mis tahes programmeerimiskeeles ja mis on kompileeritud tarkvaraks.protsessori siini kood. Neil pole kasutajaliidest (nagu kõigil serveriprogrammidel), vaid nad töötavad veebiserveriga, saavad sealt sisendandmeid ja saadavad sinna oma töö tulemused. Need käivitab veebiserver ise, kui neid on vaja (kui on vaja töödelda kasutajalt saadud andmeid) ja need töötavad serveriarvuti operatsioonisüsteemi kontrolli all. Veelgi enam, kui veebiserver saab kasutajatelt korraga mitu andmetöötlustaotlust, käivitab see vastava arvu CGI-programmi koopiaid.

CGI-programmide eelised hõlmavad loomise lihtsust (selliste rakenduste loomist toetavad paljud programmiarenduskeskkonnad, eriti populaarne Borland Delphi, alates versioonist 3) ja silumise lihtsus. Kuna CGI-rakendused on sõltumatud programmid, töötavad need veebiserverist eraldi (nagu programmeerijad ja süsteemiadministraatorid ütlevad, töötavad nad erinevas aadressiruumis). See tähendab, et kui mõni CGI programm ebaõnnestub, lõpeb ainult see programm – veebiserver ise jääb pinnale. Kuid CGI-programmidel on ainult üks puudus: suur süsteemiressursside tarbimine, kuna iga andmekomplekti töötlemiseks käivitatakse serveriprogrammi eraldi koopia. Ja kui veebiserver saab andmete töötlemiseks liiga palju taotlusi, võib serveri arvuti külmuda.

Veebiserveri laiendused on uuemat tüüpi serveritarkvara. Need on tavalised DLL-id, mis rakendavad kogu serveriprogrammi loogikat. Sellised teegid on veebiserveri programmi sisse ehitatud ja töötavad selle lahutamatu osana. Kuna DLL-id töötavad ainult Windowsi keskkonnas, on teistes operatsioonisüsteemides laienduste loomiseks leiutatud ka teised vormingud. Eelkõige ei ole Apache serveri laiendusmoodulid DLL-id,

Microsofti veebiserveri Internet Information Server ja Netscape'i Netscape Web Serveri laiendused luuakse DLL-ide kujul. Esimesel juhul on laiendustel vorming ISAPI(Interneti-serveri rakendusliides - Interneti-serveri rakenduste programmeerimisliides) ja teises - NSAPI(Netscape Server Application Programming Interface – Netscape serveri rakenduste programmeerimisliides). Apache laiendusmoodulite vormingut nimetatakse Apache mooduliteks.

Veebiserveri laiendustel on üks eelis: süsteemiressursside hoolikas tarbimine. Fakt on see, et kõigi kasutajaandmete kogumite töötlemiseks käivitatakse ainult üks laienduse eksemplar, mis võtab oluliselt vähem ressursse kui paljud töötavad CGI-programmid. Laiendusi on aga keerulisem luua ja siluda ning need pole nii turvalised.

Nagu CGI programmid. Kuna need töötavad veebiserveri osana, põhjustab iga laienduse viga serveri hangumise.

Mõlemal ülalkirjeldatud serveriprogrammi tüübil on üks suur puudus. Enne kui need tööle hakkavad, tuleb need kirjutada programmeerimiskeeles ja kompileerida protsessoris masinkoodiks, mis on aeganõudev, eriti silumisel. Muidugi töötavad kompileeritud programmid kiiremini kui tõlgendatud ehk need, kus iga käsk loetakse, dekrüpteeritakse ja töödeldakse spetsiaalse tõlkprogrammiga. Kuid tõlgendatud programmidel on ka omad eelised, millest peamised on kirjutamise lihtsus ja kiirus. Tõlgendatakse kahte järgmist tüüpi serveriprogramme, mida kirjeldatakse.

Nagu juba mainitud, on aktiivsed serverilehed tavalised veebilehed, mis sisaldavad spetsiaalseid serveri skriptid, käivitab veebiserver ise või spetsiaalne serveriprogramm (CGI rakendus või veebiserveri laiendus). Eriti, A.S.P.(Active Server Pages), mida toetab Microsoft Internet Information Server ja JSP(Java serverilehed – JavaScriptis kirjutatud serverilehed), mida toetavad mitmed teised veebiserverid, töötavad sel viisil. ASP-serveri lehed on kirjutatud JavaScriptis ja VBScriptis, JSP-s aga ainult JavaScriptis.

Te teate juba aktiivsete serverilehtede eeliseid: kirjutamise lihtsus ja kiirus ning silumise lihtsus. Lisaks, kuna aktiivsed serverilehed on tavalised veebilehed, millele on lisatud kood, saavad need hõlpsasti kirjutada kõik, kes tunnevad HTML-i. Puudus: suhteline aeglus ja suurenenud nõudmised süsteemiressurssidele.

Serveripoolsed skriptid on selle poolest sarnased aktiivsete serverilehtedega, et neid tõlgendatakse, kuid need on "puhas" programmikood, ilma HTML-i lisanditeta Tõlk on peaaegu alati CGI programm, kuid miski ei takista teil seda veebina arendada serverilaiend Skriptid on tavaliselt kirjutatud Perli programmeerimiskeeles, mis on spetsiaalselt loodud teksti töötlemiseks, JavaScripti, VBScripti ja isegi (nagu öeldakse) MS-DOS-i käsufailide keelt skriptid mis tahes programmeerimiskeeles, mille jaoks on olemas tõlk.

Serveripoolsete skriptide eelised ja puudused on samad, mis aktiivsetel serverilehtedel. Skriptid tarbivad aga erakordselt palju süsteemiressursse, isegi rohkem kui CGI-rakendused. Lõppude lõpuks käivitatakse iga kasutajaandmete komplekti töötlemiseks oma tõlgi koopia ja tõlk kulutab omakorda skripti töötlemisele palju ressursse. Ja vaatamata sellele on skriptid kõige populaarsem viis serveriprogrammide loomiseks.

Tabelis 15.1 näitab serveriprogrammide faililaiendeid.

Tabel 15.1. Serveriprogrammi faililaiendid

Serveriprogrammide tüüp

Alamliik

Laiendus

CGI programmid

-

exe

Veebiserveri laiendused

ISAPI ja NSAPI Apache moodulid

dll Laiendus puudub

Aktiivsed serverilehed

Serveri skriptid

ASP JSP

asp jsp

Keel Perl JavaScript VBScript Muud keeled

pl, cgi js, cgi vbs, cgi cgi

Seega vaatasime, kuidas veebiserver töötleb (või õigemini, ei töötle) kasutajaandmeid. Liigume nüüd ahela algusesse ja vaatame, kuidas veebibrauser saadab serveriprogrammi kasutajaandmeid.

Kuidas veebibrauser sisestatud andmed saadab

Selle peatüki alguses rääkisime veebilehtedele endile pandud juhtelementide kasutamisest külastajaandmete kogumiseks. Need on tavalised juhtelemendid, mis on teile tuttavad Windowsi rakendustest: sisestusväljad, nupud, loendid, märkeruudud jne. Saidi külastaja sisestab neisse andmed ja vajutab spetsiaalset nuppu, mis alustab andmete saatmist veebiserverisse ja seega ka serveriprogrammi. .

Vormile asetatakse külastajaandmete sisestamise juhtnupud. Vorm - See on lehe spetsiaalne element, mis tegelikult kodeerib andmed ja saadab need veebiserverisse. (Võime öelda, et vorm on juhtelementide vanem.) Juhtelemendid ise saavad külastajalt andmeid ainult, kuid ei kodeeri ega edasta neid.

Igal vormi juhtelemendil peab olema kordumatu nimi. Neid nimesid kasutab veebibrauser vormile sisestatud andmete esitamiseks serverile loetaval viisil.

Näiteks:

Siin oleme kaalunud ideaalset juhtumit, kus iga juhtelemendi väärtused sisaldavad ainult kehtib koos HTTP-protokolli seisukohalt sümbolid: ladina tähestiku tähed, numbrid, sidekriipsud, allkriipsud ja mõned muud märgid. (Pidage meeles, HTTP on failiedastusprotokoll, mida kasutab veebiserver.) Kui edastate andmeid, mis sisaldavad lubamatuid märke, nagu vene tähestiku tühikud või tähed, esitatakse iga selline märk kuueteistkümnendkoodina, millele eelneb protsent. märk näiteks nii (kodeeritud tühikumärgid on paksus kirjas):

Tänu sellele andmevormingule muutub seda töötlevate serveriprogrammide kirjutamine väga lihtsaks. Eelkõige on Perlil selle vormingu jaoks sisseehitatud dekrüpteerimisvõimalused.

Ülaltoodud vormil esitatud andmed kodeeritakse seejärel, kasutades ühte eelmääratletud andmetest kodeerimismeetodid ja saadetakse Interneti kaudu serveriprogrammi. Seda kõike teeb tegelikult vorm (kuid mitte juhtnupud).

Andmete saatmise protsess algab pärast seda, kui kasutaja vajutab spetsiaalset nuppu. Seda nuppu nimetatakse Saada(Esita – ingliskeelsetes programmides) ja peab olema vormis olemas. Vorm võib sisaldada ka nuppu Lähtesta(Reset), mis lähtestab kasutaja sisestatud andmed. Tavaliselt asuvad need nupud vormi allosas.

Võite mõelda vormile kui tavalisele Windowsi rakenduse dialoogiboksile, mis võtab vastu kasutaja sisendi, kodeerib selle kindlal viisil ja saadab selle peaaknasse. (Ka Windowsi rakenduste dialoogiakendel on tingimata kaks nuppu: Okei Ja Tühista(Tühista). Kui aga tavalise Windowsi rakenduse puhul peab programmeerija selgelt määrama, kuidas andmed krüpteeritakse ja saadetakse, siis veebivormi puhul pole see vajalik. Peate määrama ainult kolm nõutavat parameetrit:

  • vormiandmeid töötleva serveriprogrammi Interneti-aadress;
  • saadetud andmete kodeerimismeetod;
  • üks kahest andmete saatmise meetodist.

Andmete saatmise meetoditest räägime veidi hiljem. Nüüd uurime kõike ülejäänud kahe nõutava vormiparameetri kohta.

Serveriprogrammi Interneti-aadress on väga sarnane mis tahes muu faili, näiteks veebilehe Interneti-aadressiga. Vaadake ise - CGI programmi aadress näeb välja selline:

http://www. mõni sait. ru/bin/program.exe See on veebiserveri laienduse aadress: http: //www.somesite.ru/bin/extension.dll See on aktiivse serveri lehe aadress:

http://www. mõni sait. ru/asps/active_page . asp

Ja see on Perlis kirjutatud skriptiprogrammi aadress:

http://www. mõni sait. ru/scripts/perl_script.pl

Nagu näete, pole selles midagi keerulist. Serveriprogramm on tavaline fail, mis on paigutatud serverarvuti kõvaketastele ja ka link sellele ei kujuta endast midagi erilist.

Interneti kaudu edastatavate andmete kodeerimiseks kasutatakse tavaliselt kolme kõige populaarsemat meetodit: application/x-www-form-urlencoded,multipart/form-data ja (palju harvem) tekst/plain. Võimalik on kasutada ka teisi kodeerimismeetodeid, kuid enamikul juhtudel kasutatakse kolme loetletud kodeeringut. Lisaks toetab enamik veebibrauseri programme neid kolme kodeerimismeetodit.

Märge

Kui mäletate veel, mis on MIME andmetüüp, siis ülaltoodud andmete kodeerimismeetodite nimetusi vaadates näete kohe, et need on lihtsalt MIME-tüübid. Nende abiga määratakse kodeerimismeetodid.

Enamikul juhtudel kasutatakse kodeerimismeetodit application/x-www-form-uriencoded. Muide, see on see, mida kasutatakse vaikimisi, kui kodeerimismeetodit pole määratud. Kui kavatsete saata faile veebiserverisse, kasutatakse mitmeosalise/vormiandmete kodeerimismeetodit; see pakub selle juhtumi jaoks sobivat binaarandmete teisendamist. Viimane meetod - text/plain - esitab andmed lihttekstina, mis võib olla kasulik, kui vormi andmed saadetakse meili teel (mõnikord kasutatakse ka seda andmeedastusviisi).

Niisiis, oleme andmete kodeeringu välja selgitanud. Jääb üle vaadata, kuidas neid andmeid võrgukanalite kaudu edastatakse.

Kuidas andmeid Interneti kaudu edastatakse

Nagu te juba teate, kasutatakse andmete saatmiseks Interneti kaudu ja isegi kohaliku või globaalse arvutivõrgu kaudu spetsiaalset reeglistikku, nn. protokolli. Protokoll määrab, kuidas andmeid krüpteeritakse ja pakitakse, et neid edasi võrgu kaudu edastada. Loomulikult peavad nii saatvad kui ka vastuvõtvad programmid toetama sama protokolli, et üksteist "arusaadavaks" saaks. (Muidu tekib nn. sobimatus andmeedastusprotokolliga, väga ebameeldiv asi.) Tegelikult oleme internetiprotokollidest juba rääkinud ja neid pole mõtet nüüd korrata.

Samuti teate, et HTTP-protokolli kasutatakse veebilehtede ja nendega seotud failide (graafika, helid, arhiivid jne) Interneti kaudu saatmiseks. Seda kasutatakse ka andmeedastuseks ja selleks on kaks ülekande meetod andmeid. Mõlemat meetodit kasutatakse Interneti-programmeerimises laialdaselt ning neil on oma eelised ja puudused. Vaatame neid.

Esimest meetodit nimetatakse SAA vastava vormiparameetri väärtuse järgi. Kasutamisel edastatakse andmed HTTP-päringu Interneti-aadressi osana.

Nagu mäletate, saadab veebibrauser selleks, et saada veebiserverist vajalik fail, sellele serverile nn HTTP päringu, mis sisaldab vajaliku faili Interneti-aadressi. Seega saab andmeid selle aadressi osana edastada.

Võtke näiteks ülaltoodud andmekogum:

nimi1 = Ivani perekonnanimi = Ivanovitši nimi2 = Ivanovi vanus = 30

Nüüd valmistame selle ette saatmiseks GET-meetodil (andmed ise on paksus kirjas):

http://www.somesite.ru/bin/program.exe? nimi1=Ivan&perekonnanimi2=Ivanovitš&nimi2=Ivanov&age=30

Nagu näete, paigutatakse GET-meetodil saadetud andmed Interneti-aadressi päris lõppu ja eraldatakse sellest küsimärgiga. Sel juhul eraldatakse paarid “nimi” = “väärtus” üksteisest märgiga “commercial and” (“&”). Kõik on väga lihtne ja selge.

See andmete esituse lihtsus ja selgus on GET-meetodi peamine eelis. Nagu öeldakse, on kõik silme ees. Ka veebilehtede silumine on oluliselt lihtsustatud: kuna veebiserverile edastatud aadressi kuvatakse veebibrauseri aadressiribal, on alati näha, mis täpselt edastati. (Kuid nagu te aru saate, ei saa selle meetodi abil konfidentsiaalseid andmeid edastada - kõik, kes teie taga seisavad, näevad seda.)

http://www.mysite.ru/bin/choose.exe?chapter=3

Nagu näete, on need tegelikult lingid serveriprogrammile, mis sisaldavad ühte peatüki parameetrit ja selle väärtust. See tähendab, et kõik muud sellise saidi lehed moodustab serveriprogramm vastuvõetud parameetrite alusel dünaamiliselt. Seda põhimõtet kasutades luuakse sageli kataloogisaite, programmikataloogide saite, elektroonilisi kauplusi ja muid saite, mis sisaldavad suurt hulka salastatud teavet.

Kahjuks on GET-meetodil tohutu puudus: see ei suuda edastada suuri andmemahtusid. Selle põhjuseks on standardite poolt Interneti-aadressi pikkusele kehtestatud piirang: mitte rohkem kui 256 tähemärki. Lahutage siit serveriprogrammi tegeliku aadressi pikkus - ja saate oma andmete maksimaalse lubatud suuruse. GET-meetodi teine ​​puudus on selle eeliste tagakülg. Selle saadetud andmed on avalikult nähtavad ja neid saab hõlpsasti lugeda veebibrauseri aadressiribal.

GET-meetodit tuleks kasutada juhul, kui serveriprogrammi saadetavad andmed on ilmselgelt väikesed ega ole salajased. Eelkõige kasutatakse seda serveriprogrammi alusel ehitatud saitide otsingumootoritele märksõnade saatmiseks (vt eespool) jne. Kui teil on vaja saata mahukaid või konfidentsiaalseid andmeid, kasutage teist edastusmeetodit, mida nimetatakse POST-iks.

meetod POSTITA edastab andmeid serveriprogrammi samas HTTP päringus, kuid mitte Interneti-aadressi osana, vaid nn lisaandmetena. Kuna lisaandmete maht ei ole piiratud (vähemalt võib see olla väga suur), saate üle kanda kõike, mida soovite, mis tahes koguses. Eelkõige saab sel viisil veebiserverisse edastada isegi faile.

POST-meetodi eelised: ülekantavate andmete maht ja selle nähtamatus pole piiratud. Puudused: raskused andmete dekrüpteerimisel ja raskused silumisel. POST-meetodit kasutatakse näiteks isikuandmete, elektrooniliste kaupluste klientide aadresside, kirjandusteoste edastamiseksjuurdepääs saitidele http://www.stihi.ru ja http://www.proza.ru jne. Üldiselt midagi, millel on suured mahud.

Nagu öeldakse, kavatseb WWWC komitee lõpuks GET-meetodist üldse loobuda ja edastada kõik andmed POST-meetodil. Seni on GET-meetodit vastloodud saitidel lihtsalt mittesoovitatav kasutada, kuid tegelikkuses toetavad seda siiski veebibrauserid.

Nii saime serveriprogrammide kohta kõik teada. Noh, võib-olla mitte kõik, kuid praegu piisab meile sellest. Nüüd räägime sellest, kui täielikult seda kõike Dreamweaver MX toetab.

Serveripoolne programmeerimine – Dreamweaveri lähenemine

Kas serveriprogramme on raske kirjutada? Jah, see on raske. Ilmselt isegi keerulisem kui veebilehed.

Kuid mäletate, kui sageli pidime HTML-koodi käsitsi kirjutama? Üsna haruldane, kas pole? Ja kõik sellepärast, et Dreamweaver kaitses meid selle eest hoolikalt, pakkudes mugavat liidest lehtede visuaalseks loomiseks. Kirjutasime lihtsalt teksti, vormistasime selle, paigutasime lehele pilte, tabeleid, rakendasime käitumist leheelementidele jne. Ühesõnaga tundsime end mugavalt.

Ja kas me tõesti peame nüüd serveriprogramme käsitsi kirjutama?! Ei, pole üldse vajalik.

Juba sai mainitud, et Dreamweaver pakub nn käitumisviise kogenematutele kasutajatele ja üldiselt neile, kes JavaScripti koodiga tegeleda ei soovi. Käitumine- see on valmis skript, mille kirjutasid professionaalsed programmeerijad ja mille Dreamweaver ise lisab veebilehe koodi pärast seda, kui kasutaja valib selle käitumise paneeli käitumismenüüs Käitumised. Kasutaja ei pea muretsema selle või selle toimingu sooritava skripti paigutamise pärast lehe koodi teatud kohta, ta ei pea seda skripti vigade suhtes kontrollima ja teiste skriptidega kooskõlastama. Dreamweaver teeb seda kõike tema eest.

Tegelikult on serveri programmeerimisel kasutatav toimingute hulk väga väike. Ava andmebaas, hangi sealt mõned andmed, kuva lehele, kirjuta uued andmed - mida veel vaja on!

Muidugi, kui soovite teha mõnda uhket asja, peate kirjutama serveri lehti käsitsi. Aga näete, seda ei juhtu sageli.

Nii saime teada kaks asja. Esiteks toetab Dreamweaver MX serveripoolsete veebilehtede loomist. Teiseks kasutab see skriptide sisestamiseks teile tuttavaid käitumisviise. Dreamweaver pakub serveripoolsete stsenaariumide jaoks suurt hulka käitumisviise, millest peaks alustamiseks piisama.

Jääb üle vaadata, milliseid serverilehti Dreamweaver võimaldab luua. Täpsemalt, milliseid tehnoloogiaid serverilehtede loomiseks see kasutada võimaldab. Selliseid tehnoloogiaid on neli ja need loetletakse nüüd.

  1. ASP. See tehnoloogia on teile juba tuttav.
  2. ASP.NET. ASP edasiarendus.
  3. PHP. Tasuta tehnoloogia, mida levitatakse avatud lähtekoodiga tekstidega. Üsna populaarne ja sageli kasutatav tasuta veebiserveritega, nagu Apache.
  4. Macromedia ColdFusion. Macromedia enda arendus.

Millise peaksite valima? Lõppude lõpuks peame looma veebilehtede näiteid.

Valime ASP. Ja sellepärast.

Serveripoolsete lehtedega töötamiseks vajame veebiserverit. Ilma selleta serverilehed lihtsalt ei tööta. Ja võib-olla teate, et kõik Windowsi enam-vähem uued versioonid on varustatud väikese veebiserveriga. Windows 95/98/ME süsteemides on see isiklik veebiserver ja Windows NT/2000/XP puhul Interneti teabeserver. Selle võimalustest piisab, et saaksime serveri programmeerimisega katsetada.

Niisiis, see veebiserver toetab täielikult ASP-tehnoloogiat. Saate kirjutada aktiivseid serveri lehti ja neid selle all käivitada. Ja te ei pea lisakomponente alla laadima – kõik vajalik on juba Windowsi levitamiskomplektis. Seetõttu valitigi ASP.

Peaaegu ükski veebiserver ei toeta praegu ASP.NET-tehnoloogiat; Microsoft pole veel välja andnud ühtegi toodet, mis seda tehnoloogiat toetaks. PHP-lehtedega töötamiseks peate Internetist otsima ja alla laadima üsna suure jaotuskomplekti, mis sisaldab PHP-käsitlejat, ning seejärel kulutama palju aega selle seadistamisele. Mis puutub ColdFusioni tehnoloogiasse, siis tõenäoliselt ei saa te selle eest mitu tuhat dollarit välja maksta. Nii et valikuvõimalusi meil praktiliselt pole.

Sissejuhatus andmebaasidesse

Viimane asi, mida selles peatükis käsitleme, on andmebaasid ja nendega töötamine. Kuna lõviosa serveriprogrammidest töötab andmebaasidega, on need teadmised meile väga kasulikud. Loomulikult ei käsitle me kõiki andmebaasitehnoloogiaid üksikasjalikult, kuid nagu varemgi, piirdume lühikese haridusprogrammiga. Vajalikud raamatud ja tekstid saate ise Internetist otsida, kui olete selle vastu huvi tundnud.

Mis on juhtunud andmebaasi? Ei midagi erilist, lihtsalt tavaline fail või failide rühm, mis sisaldab erilisel viisil korraldatud andmeid. Kui andmebaas koosneb paljudest failidest, jääb see ikkagi üheks üksuseks. Andmebaasis sisalduvaid andmeid töödeldakse spetsiaalse programmiga nimega andmebaasi protsessor. Andmebaasiprotsessor võib olla kas täiesti eraldiseisev programm, mis töötab andmeid kasutava programmiga samas arvutis või olla selle osa.

Andmebaase saab korraldada erineval viisil. Kuid valdav enamus tänapäeval kasutatavatest andmebaasidest on sellised suhteline. Andmed sellistes andmebaasides on organiseeritud tabelite kujul. Iga selline andmebaas võib sisaldada ühte või mitut tabelit; keerulistes andmebaasides on tavaliselt palju omavahel ühendatud tabeleid.

Iga tabel koosneb omakorda lahtriteks jagatud ridade komplektist ja igas lahtris on teatud tüüpi andmed: tekst, numbrid, loogilised väärtused, kuupäevad jne. Andmebaasi tabelite ridu nimetatakse nn. rekordid, ja lahtrid, millesse iga kirje on jagatud, on väljad. Nagu juba mainitud, on igal väljal teatud tüüp ja see on tingimata varustatud nimi, mille kaudu andmetega töötav programm sellele väljale ligi pääseb.

Joonisel fig. 15.1 on sellise tabeli näide. Nagu näete, on selles tabelis kolm välja:

  • NAME - serveri lehtede loomise tehnoloogia nimi, tekst;
  • HIND - Handlerprogrammi hind, numbriline;
  • KASUTAMINE – kas see tehnoloogia on hetkel toetatud, loogiline ("jah-ei").

Lisaks on selles tabelis neli kirjet, mis vastavad Dreamweaver MX-i toetatud tehnoloogiatele: ASP, ASP.NET, PHP ja ColdFusion.

Väga sageli tehakse üks tabeliväljadest võti. Võtmevälja väärtust kasutatakse kirje unikaalseks tuvastamiseks. Loomulikult peavad kõigi tabelikirjete võtmeväljad sel juhul sisaldama unikaalseid väärtusi. Mõnikord nimetatakse võtmevälja loenduri väli.

Näide andmebaasis sisalduvast tabelist

Teate juba, kuidas konkreetsele väljale juurde pääseda – selle nime järgi. Kuidas pääsen juurde nõutavale kirjele?

Fakt on see, et korraga saab andmebaasiandmeid kasutav programm töötada ainult ühe kirjega, nn praegune. See võib selle kirje väljadelt andmeid hankida ja neid vajadusel muuta. Kuid teise kirje andmete saamiseks peab programm väljastama liigutuskäsu. Sellisel juhul liigub andmebaasiprotsessor spetsiaalset praeguse rekordi osuti soovitud kirjele ja programm suudab sellega töötada.

Programm võib kasutada ka otsing soovitud kirje vastavalt mis tahes kriteeriumile. Väga sageli tehakse selline otsing võtmevälja väärtust kasutades.

Programmil on ka võimalus lisada uusi ja kustutada mittevajalikke tabelikirjeid. Uue kirje lisamiseks täidab programm kirje lisamise käsu ja sisestab vajalikud andmed oma väljadele. Kirje kustutamiseks peab programm selle esmalt ajakohaseks muutma ja seejärel andma kustutamiskäsu.

Üldiselt näeb andmebaasis sisalduvate andmetega töötamise järjestus välja järgmine:

  1. Programm avaneb andmebaasi, tehes avatud toimingu. See on vajalik toiming, ilma milleta on andmebaasi juurdepääs võimatu.
  2. Programm avab soovitud andmebaasitabeli. Pärast seda tagastab protsessor talle nn rekordikomplekt(inglise keeles -- recordset), millega programm töötab.
  3. Programm teeb tegelikku tööd andmetega.
  4. Programm sulgub tabel, mille järel protsessor eemaldab mälust sellele programmile vastava kirjete komplekti.
  5. Programm sulgeb andmebaasi, katkestades sellega kõik ühendused.

Pange tähele, et kaks viimast toimingut - tabeli ja andmebaasi sulgemine - on sama vajalikud kui nende avamine. Fakt on see, et protsessori poolt andmetega töötava programmi jaoks mälus genereeritud kirjete ja muude andmestruktuuride kogum võtab palju süsteemiressursse. Seega, kui olete tabeli või andmebaasiga töötamise lõpetanud, sulgege see kohe, et vabastada ressursse teistele kasutajatele.

Viimasel ajal on nad saavutanud suure populaarsuse andmebaasiserverid. Need on tavalised andmetöötlejad, kuid need on realiseeritud serveriprogrammide kujul ja töötavad serveriarvutites. Nende eelised tavapäraste andmetöötlejate ees:

  • need töötavad serverarvutis, mis on tavaliselt võimsam kui klientarvuti, seega on nende jõudlus suurem;
  • need tagavad suurema andmeturbe juurdepääsukontrolli ja mõne muu mehhanismi kaudu;
  • need on lihtsalt võimsamad, selles mõttes, et toetavad rohkem erinevaid viimasel ajal ilmunud uuendusi.

Andmebaasiserverile ja andmetele endale juurdepääsu saamiseks saadab klientprogramm sellele spetsiaalsed käsud. Selliste käskude koostamiseks töötati välja päringu kirjelduskeel SQL(Struktureeritud päringu keel – struktureeritud päringu keel). Selles keeles kirjutatud käskude abil saab klientprogramm avada soovitud tabeli, lugeda andmeid, lisada, muuta, kustutada kirjet ja lõpuks sulgeda andmebaasi, kui seda enam ei vajata.

Andmebaasiservereid kasutatakse nüüd väga sageli ja veebiprogrammeerimises peaaegu kõikjal. Populaarsemad on Oracle, Microsoft SQL Server, Sybase, võimas IBM DB2, Borland InterBase (Venemaal müüakse seda IBase nime all), üha populaarsemaks muutuv PostgressSQL ja avatud lähtekoodina levitatav tasuta MySQL server. Viimast serverit, muide, kasutatakse väga sageli koos Apache veebiserveri ja PHP serveri lehetehnoloogiaga.

Sellega on andmebaaside ja serverite programmeerimise lugu lõpetatud.

On juba öeldud, et veebilehtede erielemendid - vormid - saadavad andmeid serveriprogrammi. Vormidest ja nendega töötamisest Dreamweaveris räägime järgmises peatükis. Ja alles siis liigume edasi serveri programmeerimise enda juurde.

Olen juba ette tänulik kommentaaride, hinnangute ja paranduste eest (arvestades, et sihtrühmaks on mannekeenid).

Kui kõikidele kasutajatele on mingil juhul vaja näidata sama asja, siis saab vastava faili lihtsalt serverisse panna, kuid tavaliselt sellest ei piisa ja soovitakse vaheldust. Sel juhul peate serveris käivitama programmi, mis loob antud juhul vajaliku HTML-teksti. Nende "serveri" programmide (skriptide) kirjutamine on üldiselt veebiarenduse põhitegevus, mis on tavaliselt peidetud 90% iga projekti keerukusest ja maksumusest. Kuna programm töötab meie serveris, mitte kasutaja arvutis, on tööriistade valik täielikult meie enda teha ja pole ühtegi keelt, milles selliseid programme kirjutada.

Esimene ja kõige olulisem otsus, mis tuleb teha, on meie serveri operatsioonisüsteem. Teoreetiliselt võib see olla ükskõik milline, praktikas kasutavad nad Venemaal 93% juhtudest Unixit, 6,99% - Windowsi, 0,01% - midagi muud. Ma ei ole täiesti objektiivne, kuid ma ei näe ühtegi argumenti Windowsi ja kahte Unixi kasuks, seega soovitan teil see alati valida. Argument üks: mis on tavalisem, on alati mugavam, lihtsam on leida hostimist, lihtsam on leida spetsialisti, lihtsam on mõnele alamülesandele valmislahendust leida. Teine argument: Windowsi/MS SQL/... litsentside maksumus; Raha seal ei ole üüratu, aga nullist siiski erinev. Kui oleme OS-iks valinud Unixi, siis järgmine loomulik küsimus – millist teostust kasutada – on täiesti tähtsusetu ja selle saab otsustada lähtuvalt süsteemiadministraatori isiklikest eelistustest.

Teine oluline otsus on programmeerimiskeel. Siin on valik üsna suur. Esiteks on olemas terve klass keeli, mis sobivad ideaalselt tüüpiliste veebiprogrammeerimisülesannete jaoks (ja üks neist leiutati spetsiaalselt selle jaoks) - "skriptikeeled". Nüüd on see vähemalt PHP, Perl, Ruby ja Python. Just neile kirjutatakse valdav enamus saite, alates lihtsaimatest veebipoodidest kuni näiteks vkontakte.ru-ni. Võimaluste, mugavuse, tootlikkuse, arendustööriistade ja mõnede muude teoreetiliste näitajate poolest on need üksteisega ligikaudu võrdsed, peamine erinevus on programmeerijate kättesaadavus. Praegu on mõõdetud turunäitajad järgmised: Venemaal tuleb iga 100 PHP programmeerija CV kohta 10 Perli ning 2-3 Ruby ja Pythoni CV. Teisest küljest ei tohiks 80% end PHP programmeerijateks nimetavatest inimestest lubada koodi kahuripauku puudutada. Selge on see, et esimesed numbrid on objektiivsed ja võetud töökohtadelt ning teised on tingimuslik subjektiivne hinnang ja neid ei saa otseselt korrutada, kuid igal juhul on nii programmeerijate kui ka heade programmeerijate arv järjestatud sellises järjekorras: PHP, Perl, Ruby või Python ning nende keskmine tase on täpselt vastupidine. Seega, kui meil on suure hulga arendajate ja töötajate voolavusega tööstusprojekt, siis peame veebikeelte hulgast valima PHP (mõnel väga olulisel kohalikul põhjusel on Perli kasutamine vastuvõetav). Kui projekt on lühike, on programmeerija kindlasti üksi ega muutu kunagi, siis võib valiku usaldada tema õlule ning Ruby/Pythoni valik võib osutuda isegi optimistlikuks teguriks.

Lisaks arvestatavatele skriptikeelte kaksikvendadele (mille valik on puhtalt sotsiaalne) on ka teisi, millel on erinevad tehnilised omadused ja vastavalt ka muud kasutusnišid.

C-keel Keel, mis nõuab programmeerija maksimaalset täpsust, on kõige raskemini leitavad vead, saadaval on kõige vähem valmislahendusi ja kõige aeglasema arenduskiirusega. See kompenseerib kõik need puudused ainult ühe eelisega: jõudlus, mis on mitu suurusjärku parem kui PHP ja selle analoogide jõudlus. Põhimõtteliselt on raud nüüd odav, kuid tööjõud on kallis, lisaks on see oluline üsna harva. Tavapäraselt on nii, et kui projekt eeldab alla miljoni näitamise päevas, siis võid C julgelt unustada, aga kui muljeid on rohkem, siis tuleks ainult sellele mõelda ja mitte tingimusteta vastu võtta. Näiteks liveinternet.ru loendur on kirjutatud C-ga.

C++ keel. Sellel on samad puudused kui C-l, kuid vastutasuks pakub see võrreldavat, kuid madalamat tootlikkust. Tavaliselt kasutatakse seal, kus jõudlus on endiselt vajalik ning äriloogika on väga keeruline ja piirneb teaduslikuga. Klassikaline näide on otsinguteenused. Oluline puudus, mis takistab C-d oma nišis täielikult asendamast, on suurem vabadus toetamata koodi jaoks. Nagu tabelipaigutuse puhul, kirjutavad kõik C-s ligikaudu ühtemoodi ja kui kood vastab formaalsetele ja kontrollitavatele kvaliteedinõuetele (ei luba mälulekkeid, käsitleb vigu õigesti jne), siis on see suure tõenäosusega täiesti tasemel. vastuvõetaval tasemel ja mitteametlike, kuid oluliste tunnuste, näiteks „arusaadavuse” ja „sidususe” osas. Kuid C++-s saate kõiki vorminõudeid järgides kirjutada midagi, mis on kas suurepärane või vastik. Ja loomulikult on teine ​​levinum.

Java keel. Tehnilisest vaatenurgast erineb see C++-st ligikaudu samamoodi nagu C++ erineb C-st. See tähendab, et üleminek C++-lt Java-le tähendab veel poole võrra tootlikkuse kaotust, kuid arenduskiiruse uut kasvu ja valmislahenduste raamatukogu on juba võrreldav skriptikeeltega. Sotsiaalsest vaatenurgast on Java programmeerijaid vähem kui C++ programmeerijaid ja PHP programmeerijaid, samas kui keskmiselt on need kallimad ja minu subjektiivse hinnangu kohaselt ka keskmiselt kehvemad kui mõlemad. Selle kummalise olukorra põhjuseks on üsna suur korporatiivsüsteemide Java arenduse turg, mis ühelt poolt tõstab palku, teisalt aga sisendab oma kultuuri ja lähenemist programmeerimisele, mis on veebis ainult kahjulik. Sellest tulenevalt ei näe ma ühtegi olukorda, kus Java kasutamine veebiarenduses oleks õigustatud. (Sellegipoolest on odnoklassniki.ru kirjutatud Java keeles ja töötab edukalt.)

Kui meil õnnestus teha viga ja valisime operatsioonisüsteemiks Windowsi, siis lisaks loetletud keeltele (kõik need on põhimõtteliselt rohkem Unixile orienteeritud, kuid neid saab kasutada kõikjal) ilmub veel kaks võimalust: VBScript (mingi PHP analoog) ja C# (Java analoog). Kuna ma ei näe Windowsist mingit kasu, ei saa ma neid soovitada.

Serverite programmeerimiskeelte mitmekesisus ei piirdu loetletud valikutega, vaid kõige muu populaarsus on nullilähedane ja ma ei tea ühtegi ratsionaalset põhjust eksootiliste keelte valimiseks.

Kõik olemasolevad (vähemalt kõik populaarsed) tööriistad on universaalsed. Igaühel neist saate rakendada absoluutselt kõike, küsimus on ainult selles, et mõne tööriistaga on see kiirem ja odavam, teistega aga kallim ja aeglasem. Põhimõtteliselt ei keela keegi kasutada ühes projektis kahte erinevat serverikeelt, kuid see toob tavaliselt kaasa projekti juhitavuse halvenemise – sõltume ühe spetsialisti asemel kahest spetsialistist (või kahest spetsialistide rühmast), kes lisaks tegelik projektitöö, peab kulutama jõupingutusi koordineerimisele kui puhtalt sotsiaalsele (omavaheline suhtlemine) ja tehnilisele. Ainus õigustatud erand on ühe skriptikeele ja ühe C/C++ paari kombinatsioon. Liidese eest vastutav koodi “pealiskaudne” osa on kirjutatud skriptis ja jõudluse seisukohalt kõige olulisem sisemine osa C või C++ keeles. Pealegi võivad osade suhted erinevates projektides olla täiesti erinevad. Näiteks ulov-umov.ru on algoritmiliselt väga keeruline C++ projekt, mis sisuliselt rakendab oma otsingumootorit ja väikest Perli ümbrist, mis joonistab sõna otseses mõttes 10 lehekülje pikkuse kasutajaliidese. Ja täielikult PHP-põhise readme.ru sees on üks väike C-moodul, mis valmisandmete põhjal tõmbab kiiresti informaatorid. On oluline, et produktiivne keel oleks alati “sees” ja see, kui suure osa mahust see hõivab, sõltub kohalikest teguritest.

Mille poolest erinevad kliendipoolsed veebiprogrammeerimiskeeled serveripoolsetest.

Kuupäev: 2012-10-04

Kõik veebiprogrammeerimiskeeled võib jagada kahte suurde rühma: klient Ja server. Et mõista ja mõista, mis need keeled on, kuidas need töötavad ja kuidas need üksteisest erinevad, peate mõistma veel kahte määratlust: Server Ja Klient.

Server– see on arvuti, milles sait Internetis töötab (saidi failid ja kaustad on salvestatud). Rohkem termini all Server mõista arvutisse installitud eriprogrammi, mis töötleb kasutaja brauserist mis tahes veebidokumenti (näiteks) päringuid.

Klient- see on kasutaja ise või pigem teie arvutisse installitud brauser. Kui Interneti-kasutaja esitab serverile päringu, on ta klient.

Kliendi keeled.

Kliendikeeled töötavad kasutaja (kliendi) arvutis. Täpsemalt teostab neid brauser ise. Tavaliselt on kliendikeeled manustatud veebilehe html-koodi. Seega peate koodi nägemiseks avama veebilehe mis tahes tekstiredaktoriga või brauseriga.

Kuna kasutaja arvutis töötavad kliendikeeled, otsustab ainult kasutaja, kas tal on neid vaja või mitte. Ta saab need lihtsalt keelata ja brauser ei tee midagi.

Kliendipoolsete keelte üks peamisi puudusi on see, et nad ei saa suhelda serveriga, kus sait asub. Sealt ei saa kuidagi teavet salvestada ja laadida. See piirab oluliselt kliendikeelte kasutamist. Näiteks programmide kohta, mis peavad salvestama ja serverist/serverisse laadima teatud infot: külalisteraamatud, kommentaaride plokid, hinnangud, hääletamine jne. Võite selle täielikult unustada.

Lisaks, kuna iga kasutaja saab väga lihtsalt programmi koodi vaadata, siis võib ka turvalisuse unustada. Kui soovite blokeerida juurdepääsu mõnele selliseid keeli kasutavatele failidele, ei õnnestu see tõenäoliselt. Kogu kaitstud teabe ja paroolide väljaselgitamiseks on väga lihtne vaadata veebilehe HTML-koodi.

Kuna aga kliendikeeled on saavutanud sellise populaarsuse, peavad neil olema ka eelised. Jah, on eeliseid ja palju muud!

1) Nad ei saada serverisse andmeid, mis muudab nende töö palju kiiremaks.

2) Lisatarkvara pole vaja, kõik vajalik on kliendi brauseris.

3) Majutusettevõte nõuab raha serverikeelte kasutamise eest (tasuline hostimine), kuid mitte kliendikeelte eest.

Levinuimad kliendikeeled on: JavaScript Ja VisualBasicScript (VBS). Selleks, et brauser neist aru saaks ja neid täidaks, on sellesse sisse ehitatud spetsiaalne tööriist - tõlk.

JavaScript, mille on välja töötanud ettevõte Netscape ja seda kasutati algselt ainult brauseri jaoks Netscape Navigator. Praegu on see keel muutunud väga populaarseks. VisualBasicScript (VBS) see on ettevõtte kliendikeele analoog Microsoft.

Nagu varem mainitud, töötavad kõik need keeled tavalistes brauserites ilma täiendavate moodulite või pistikprogrammideta. Levinumad brauserid on: Internet Explorer, Opera, Mozilla jne.

Serveri keeled.

Serveripoolsed keeled käivitatakse spetsiaalse programmi abil otse serveris endas. See tähendab, et nende toimimiseks pole vahet, millist brauserit kasutaja kasutab, kõik arvutused toimuvad ikkagi kaugarvutis (serveris).

Saidi külastajal on üldiselt võimatu näha serverikeeles programmi koodi, ta näeb ainult töö tulemusi, mis esitatakse juba HTML-lehena.

Serveripoolsed keeled pakuvad veebiprogrammeerijale palju rohkem võimalusi kui kliendipoolsed keeled. Neid kasutades saab serveriga andmeid vahetada, millest jäime kliendikeelte kasutamisel ilma.

Serverikeelte seas on kõige populaarsemad: ja Perl.

Sest serverikeeled suhtlevad kaugarvutiga (serveriga), on vaja selle suhtluse tulemused kuskil salvestada. Tekib küsimus: kuidas ja kus neid andmeid säilitada?

Näiteks hõlmab külalisteraamat serverisse teabe salvestamist kasutaja nime ja tema jäetud sõnumi andmete kohta. Kui teil pole liiga palju andmeid, saate need salvestada tavalisse tekstifaili. Kuid iga saidi kasvades peab see talletama tohutul hulgal teavet. Selleks on olemas Andmebaas (DB).

See on omamoodi raamatukogu, kus kogu teave on kenasti riiulitel paigutatud. Aga ainult üksi DB ei piisa veel. Kui teavet on palju, on väga raske leida seda, mida vajame, rääkimata kogu teabe töötlemisest või ainult vajalike andmete hankimisest. Miks siis mitte lasta arvutil seda teha? Seda nad tegidki. Praegu töötlevad andmebaase edukalt arvutid. Süsteemid, mis selle kõige eest vastutavad, on nn Andmebaasihaldussüsteemid (DBMS).

  • Tõlge
  • Õpetus

Tee on pikk ja raske, kuid huvitav ja kasulik!

Artikkel oli mõeldud praktiliseks juhendiks neile, kes soovivad saada professionaalseks veebiarendajaks. Olen veebikoodi kirjutanud üle 20 aasta. Töötan veebiarendajatega ja aitan neid iga päev. Selles artiklis kirjeldan, mida peate õppima, millal peate seda õppima ja kust teavet hankida (enamasti isegi tasuta). Seejärel annan nõu reaalse kogemuse saamiseks ja mis kõige tähtsam, koodi kirjutamise eest tasu saamiseks.

Artiklis on palju linke tasuta ja oluliste ressursside juurde. Lihtsuse huvides kogusin need PDF-vormingusse ja jagasin kategooriatesse. Mulle ei maksta nende saitide mainimise eest, millele lingin – tahan lihtsalt soovitada parimaid ressursse, mis aitavad teil oma eesmärki saavutada.

Asjad, mida meeles pidada:

1. Teil on lubatud artiklit sirvida

Juhend võib teid aidata olenemata sellest, kus olete teel ametialase arengu poole. Kerige pealkirjani, mis teie praegust olukorda kõige paremini kirjeldab, ja lugege sealt edasi. Kui olete seda teed alles alustanud või alles mõtlete sellele, järgige kuninga nõuandeid filmist "Alice Imedemaal":

Alusta algusest ja jätka kuni jõuad lõpuni; ja peatu juba seal.

2. Proovige natuke kõike ja seejärel valige eriala.

Raha pole kõige tähtsam. Sa pead ARMASTAMA seda, mida teed! Kuid te ei tea, mis teile meeldib, kuni olete seda proovinud.


Leidke oma kirg ja teenige see rahaks

Juhend aitab teil võimalikult kiiresti tutvuda võimalikult paljude veebiarenduse valdkondadega. Ja siis aitab ta teil valida eriala, mis teile meeldib. Sa ei saa algul milleski täiuslikuks – õpid põhitõed selgeks ja siis jätkad õppimist. Leidke oma kirg ja ma näitan teile, kuidas edasi liikuda.

Otsustasin koodi kirjutada. Mulle meeldib veeb. Ma ei tea, kust alustada


Sul õnnestub!

Palju õnne! See on suur esimene samm ja millegi väga põneva algus. Kuid see võib olla ka väga raske. Ära muretse, ma aitan.

Esiteks peate kiiresti tutvuma veebiarenduse kõigi valdkondade põhitõdedega (“täistsükkel”). Koolitus saab olema vaheldusrikas, kuid pinnapealne. Seda selleks, et leida endale meelepärane valdkond ja omandada ka põhioskused erinevates valdkondades. Siis saate aru paljudest probleemidest ja nendega töötada, olenemata sellest, mille valite.

Õppige HTML-i põhitõdesid

Hüperteksti märgistuskeel (HTML) juhib brauseris kuvatava sisu ja paigutust. Kui alustate seal, on teil kasutajaliides, millega saate suhelda ja oma koodi tulemusi näha. Keerulisemate keelte õppimisel suureneb selle tähtsus. Sa ei pea pimesi kodeerima.

Siin on, mida peate HTML-i kohta õppima:

Ma tean juba HTML-i põhitõdesid

Lahe! See on väga oluline samm. Nüüd õppige JavaScripti põhitõdesid.

Õppige JavaScripti põhitõdesid

JavaScript on veebikeel ja kõik suuremad brauserid (Chrome, Firefox, Safari, IE, paljud teised) toetavad seda. Iga sait, iga veebirakendus, mida olete kasutanud, sisaldab suure tõenäosusega tohutul hulgal JS-koodi. Rääkimata sellest, et keel kogub populaarsust ka teistel platvormidel – serverites, lauaarvutites ja muudes seadmetes.

Praegu vajate põhitõdesid ja selleks sobivad järgmised ressursid:

Tunnen JavaScripti ja HTML-i põhitõdesid

Hämmastav! Nüüd lisame teie oskustele CSS-i

Õppige CSS-i

CSS ehk Cascading Style Sheets (kaskaadlaadilehed). Kasutatakse HTML-i elementide välimuse kohandamiseks lehel. Vaadake Mozilla tasuta õpetust, seejärel vaadake CSS-i trikke oma raskeimate probleemide lahendamiseks (otsing paremas ülanurgas).

Liigume edasi taustaprogrammi juurde

Siiani oleme vaadanud seda, mida nimetatakse veebiarenduse esiotsa. Olete tutvunud peamiste brauseris töötavate keeltega. On aeg liikuda edasi taustaprogrammi – serveris töötava koodi juurde. Ärge muretsege, te ei vaja serverit – teie arvuti saab sellega hakkama.

Taustakeeli on palju, kuid kuna olete JavaScriptiga tuttav, soovitaksin õppida kasutama Node.js-i. See võimaldab teil käivitada JS-koodi pigem serveris kui brauseris.

Lisaks peate õppima Express ja MongoDB.

Ekspress
See on teek, millega Node.JS saab töötada veebiserverina (kuulata lehtede päringuid ja saata neile vastuseid).
MongoDB
See on andmebaas, mis võimaldab teil teavet salvestada ja hankida.

Neid kolme teemat saate uurida tänu järgmisele suurepärasele ja tasuta õppematerjalile ning selle jätkule.

Pean valima esi-, tausta- ja täistsükli arenduse vahel

Kui olete mõlemat arendusvõimalust proovinud, on aeg teha valik. Kui teil pole olnud aega neid proovida, vaadake artikli eelmist jaotist, et täita oma teadmistes lüngad.

Siinkohal olete kirjutanud kahte tüüpi koodi. Üks on mõeldud kasutaja suhtlemiseks, teine ​​​​andmete jaoks. Mida te eelistate?

Kasutaja interaktsioon? Õnnitleme, olete esiotsa arendaja!

Andmetega suhtlemine? Õnnitleme, olete taustaprogrammi arendaja!

Mõlemad? Õnnitleme, olete täies mahus arendaja!

Ei meeldinud midagi? Õnnitleme, veebiarendus pole teie jaoks. Rõõmustage, et nüüd aru saite ega raisanud palju aega ja raha. Kas pole valmis alla andma? Võib-olla te ei kohanud keelt, mis teile meeldiks? Proovige õppida teisi keeli jaotises "Tahan olla taustaarendaja".

Ma tahan olla täielik arendaja

Lahe. Peate läbi lugema kogu jaotiste „Tahan olla taustaarendaja” ja „Ma tahan olla kasutajaliidese arendaja” sisu.

Ma tahan olla esiotsa arendaja ja tean JavaScripti, HTML-i ja CSS-i põhitõdesid

Et töötada tõhusalt esiotsa arendajana, peate valdama HTML-i, CSS-i ja kliendipoolset JavaScripti. Samuti peate hästi mõistma mitut olulist raamistikku. Saate oskused, mida tööandjad ja kliendid ootavad esiotsa arendajatelt.

Nüüdseks peaksite juba teadma HTML-i põhitõdesid. Muul juhul minge tagasi jaotisse HTML-i põhitõdede õppimine.

Õppige kesk- ja kõrgtaseme HTML-i
Vaadake HTML-i vaheõpetust ja seejärel täiustatud HTML-i õpetust.
Õppige täpsemat kliendipoolset JavaScripti


Suurepärane raamatusari JS-i kohta ja see on tasuta

JavaScripti oskuse parandamiseks soovitan Kyle Simpsoni raamatusarja You Don't Know JS. Autor on postitanud kogu sarja tasuta veebis:

Lisaks peaks MDN JavaScript olema ka teie parim sõber.

[Samuti on teile täiesti tasuta saadaval suurepärase raamatu "Expressive JavaScript" suurepärane tõlge.]

Teades esiotsa kolmainsust, HTML, CSS ja JavaScript on muidugi suurepärane. Kuid raha teenimiseks peate tutvuma mõne raamistikuga.

Õppige jQueryt
See on kõigi aegade populaarseim JS-teek. Kuigi mõned uued raamistikud on muutnud jQuery vähem tähtsaks, on jQuery tööotsingutel hea võimalus olla ametijuhendis (ja seda mainitakse intervjuudes) veel palju aastaid.

Soovitan õppida jQueryt kasutades FreeCodeCamp materjale – see on kiire ja tõhus meetod. Pärast seda minge ametlikule koolitussaidile - sealt leiate täiendavaid juhiseid.

Õppige populaarset JS-i raamistikku
Raamistikud muudavad konkreetse keele või tehnoloogiaga töötamise lihtsamaks, kuna lahendavad valitud tehnoloogia suurimad probleemid. JavaScriptil on olnud väga kasulik mõju raamistike arendamisele ja populariseerimisele.

Peaaegu kord nädalas ilmub uus raamistik, mis peaks asendama uue arendusstandardi. Peate töökohad läbi otsima ja korralikult guugeldama, et välja selgitada, milline raamistik on teie turul populaarne. Soovitan ka Hacker Newsi tööriista tööturu trendide hindamiseks.

Selle artikli kirjutamise ajal olid populaarsed järgmised raamistikud:

Olles valinud välja sobivaima raamistiku ja end sellega põhjalikult kurssi viinud, tasub uurida sellega kaasnevat CSS raamistikku. Tänasel turul on kaks suurimat tegijat Bootstrap ja Material Design.

Bootstrap
Bootstrapi tegid Twitteri arendajad ning see on juba üsna küps ja populaarne. Bootstrapi versioonid on olemas Angulari, Angular 2 ja Reacti jaoks.
Materjal
Materjal on Google'is välja töötatud disainireeglite kogum. See kogub populaarsust ning Angulari ja Reacti jaoks on olemas versioonid. Kuna Angular on ka Google'i vaimusünnitus, sobib Material sellega suurepäraselt.

Siin on teile mõned lingid:

Palju õnne! Teil on peamised esiotsa arendajaoskused!


Lihtsalt vaadake teda!

Ma tahan saada taustaprogrammi arendajaks

Imeline! Esimene samm on keele valimine. Taustaprogrammiga töötamiseks on saadaval palju keeli ning igal neist on oma eelised ja puudused. Vaadake populaarsuse järgi sorteeritud programmeerimiskeelte tabelit. Kõik nad on kümme aastat olnud esikümnes. Rohelisega tähistatud on veebikeeled, mis on aastate jooksul populaarsust kogunud.


TIOBE programmeerimiskeelte register, www.tiobe.com/tiobe_index?page=index

Keskenduge keeltele, mille nimed olen rohelisega ringitanud. Kui te neid ei tunne, alustage tabeli ülaosast ja liikuge allapoole. Lõpetage, kui leiate midagi, mis teile meeldib, ja kaevake sügavale!

Kui olete tuttav mõne rohelisega märgitud keeltega ja see teile meeldib, keskenduge sellele.

Parandage oma intervjuuoskusi
Peate valmistuma enamaks kui lihtsalt koodi kirjutamiseks. Hea artikkel Life Hackerilt kirjeldab palju kasulikku ja väärtuslikku teavet.
Peaasi on turul kanda kinnitada
Ärge muretsege liiga palju selle pärast, et saate oma unistuste palgaga unistuste töökoha oma unistuste tööandja juures. Esiteks leidke lihtsalt töökoht, kus kirjutate raha eest koodi. Kui olete omandanud rohkem kogemusi, saate kavandada oma järgmist sammu.
Ma tahan olla vabakutseline
Enda ülemus on hea asi, kuid sellega kaasneb ka tohutu surve ja suured raskused. Parim vabakutselise teabe allikas, mida olen näinud, on DoubleYourFreelancing.com. Tal on rida artikleid, mis aitavad teil saada paremaks vabakutseliseks kui mina kunagi võiksin. Lugege.

Teine võimalus, kui olete endas kindel, on Toptali teenus. Nad võtavad vastu vaid 3% kõigist taotlejatest ja protsess on väga keeruline, kuid kui sisse pääsete, on teil juurdepääs hästitasustatud töökohtadele, millega saate kaugtööd teha.

Alustasin tööd, kuid tunnen, et olen ummikus
Saage aru. See pole lihtne ja kui keegi ütles sulle teisiti, siis ta kas ei teinud seda või üritab sult raha välja petta. Kui tunnete end ummikus, proovige järgmisi valikuid.
Värskendage oma algset kavatsust
Küsige endalt, kirjutage paberile, miks otsustasite seda teed minna. Kas teie vastus on endiselt kehtiv? Kui jah, siis miks peatuda? Edasi!