Vadovai

Kas yra serveris? Paprastas vadovas programų kūrėjams

Serveris – tai kompiuteris ar jame veikianti programa, kuri laukia užklausų ir į jas atsako. Kai atidarote svetainę, jūsų naršyklė (klientas) siunčia užklausą per internetą, o kažkur esantis serveris grąžina puslapį, paveikslėlius ar duomenis. Visos programos, kurias naudojate – nuo el. pašto iki internetinės bankininkystės – priklauso nuo serverių, kurie tai daro milijonus kartų per dieną.

Kodėl serveriai svarbūs kuriant su DI

Kai DI kūrimo įrankis sukuria jums programą, dalis kodo veikia lankytojo naršyklėje, o dalis paprastai – serveryje. Serverio dalis atlieka tai, kam naršyklei negalima patikėti arba ko ji pati negali padaryti:

  • Duomenų išsaugojimas ir įkėlimas iš duomenų bazės.
  • Paslapčių laikymas, pavyzdžiui mokėjimo ar DI teikėjų API raktų, kurie niekada neturi pasiekti naršyklės.
  • Leidimų tikrinimas – įsitikinimas, kad naudotojas mato ir keičia tik savo įrašus.
  • Bendravimas su kitomis paslaugomis: kortelės apmokestinimas, el. laiško siuntimas, DI modelio kvietimas.

Žinojimas, ką daro serveris, padeda suprasti, kur iš tiesų gyvena jūsų programos taisyklės, kodėl kai kuriems pakeitimams reikia publikuoti iš naujo ir ką mokate, kai hostinate programą. Dėl dviejų pusių skirstymo žr. frontend ir backend.

Kasdienis palyginimas

Serveris yra kaip pašto skyriaus kasos darbuotojas. Jis ne eina ieškoti klientų; jis laukia. Klientas (kliento pusė) prieina su prašymu – „išsiųsti šią siuntą“, „ar yra man laiškų?“ – o darbuotojas jį aptarnauja ir grąžina rezultatą. Vienas darbuotojas gali aptarnauti daug klientų vieną po kito, o užimtas paštas atidaro daugiau langelių.

Pašte taip pat yra taisyklių, kurių klientas negali apeiti: siuntą atsiimti reikia pateikti asmens dokumentą. Taip yra ir programoje – naršyklė gali prašyti bet ko, bet serveris nusprendžia, ką gauna.

Kaip užklausa pasiekia serverį

Kai kas nors apsilanko https://bookings.example.com/schedule:

  1. DNS paieška. Naršyklė klausia domenų vardų sistemos, į kurį IP adresą nukreipia bookings.example.com. Žr. kaip veikia domenai ir DNS.
  2. Ryšys. Naršyklė prisijungia prie to adreso per 443 prievadą HTTPS ir užmezga šifruotą ryšį. Žr. kas yra HTTPS.
  3. Užklausa. Ji siunčia HTTP užklausą: GET /schedule.
  4. Darbas. Serveris vykdo kodą, kuris tvarko /schedule – galbūt ieško šiandienos rezervacijų duomenų bazėje.
  5. Atsakas. Jis grąžina būsenos kodą (200 OK) ir turinį – HTML puslapį arba JSON duomenis, kuriuos puslapis parodo.

Visa tai paprastai užtrunka sekundės dalį.

Serverių tipai, apie kuriuos girdėsite

TerminasKą reiškia
Žiniatinklio serverisPrograminė įranga, atsakanti į HTTP užklausas – siunčianti failus arba perduodanti užklausas jūsų programos kodui.
Programos serveris / backendJūsų kodas, veikiantis serveryje: API, kuris tvarko rezervacijas, prisijungimus ir mokėjimus.
Duomenų bazės serverisServeris, kurio užduotis – saugoti ir užklausti duomenis, pavyzdžiui Postgres duomenų bazė, su kuria bendrauja jūsų programa.
Failų / statinis serverisSiunčia paruoštus failus (HTML, paveikslėlius, scenarijus) be pasirinktinio kodo vykdymo kiekvienai užklausai.
Fizinis serverisTikras įrenginys stovas duomenų centro spintoje.
Virtuali mašina (VM) / VPSFizinio įrenginio dalis, veikianti kaip atskiras kompiuteris.
KonteinerisLengvesnis paketas su programa ir visa jai reikalinga, veikiantis bendroje mašinoje. Daugelis platformų diegia programas taip.
ServerlessĮkeliate kodą, o teikėjas jį vykdo pagal poreikį – serveriuose, kurių nereikia valdyti. Žr. kas yra serverless.

Verta pažymėti, kad „serveris“ reiškia ir mašiną, ir programą. Sakinys „serveris nulūžo“ gali reikšti bet ką iš jų.

Darbo pavyzdys: kirpyklos rezervacijų programa

Štai ką daro serveris nedidelėje kirpyklos rezervacijų programoje:

  • Lankytojas atidaro svetainę. Serveris (ar prieš jį esantis CDN) siunčia puslapio failus.
  • Puslapis klausia serverio GET /api/slots?date=2026-10-03. Serveris užklausia duomenų bazę dėl laisvų laikų ir grąžina juos kaip JSON.
  • Lankytojas rezervuoja 14:00. Puslapis siunčia POST /api/bookings. Serveris patikrina, ar laikas vis dar laisvas – jis nepasitiki naršyklės žodžiu – išsaugo rezervaciją ir grąžina 201 Created.
  • Serveris kviečia el. pašto paslaugą su slaptu raktu, laikomu serveryje, kad išsiųstų patvirtinimą.

Jei išjungtumėte serverį, puslapis galbūt vis dar įsikrautų iš CDN, bet negalėtų rodyti laikų ar išsaugoti rezervacijų.

Ko reikia serveriui, kad gerai veiktų

  • Atmintis (RAM) ir CPU. Per mažai atminties – programa griūva esant apkrovai; per mažai CPU – ji lėtėja.
  • Veikimas. Išjungtas serveris negali atsakyti. Kai kurios platformos neaktyvias programas užmiega ir pažadina kitos užklausos metu, tai taupo pinigus, bet pirmoji užklausa gali būti lėtesnė.
  • Konfigūracija ir paslaptys, pateikiamos kaip aplinkos kintamieji.
  • Žurnalai (logs) – serverio įrašai apie tai, kas įvyko; ten pirmiausia žiūrite, kai kažkas nutinka.
  • Atnaujinimai ir saugumo pataisos, kurias valdomas hostingas atlieka už jus.

Dažniausi klaidingi įsitikinimai

  • „Debesis reiškia, kad serverių nėra.“ Debesis – tai kitų įmonių serveriai, nuomojami pagal valandą ar naudojimą.
  • „Serveris yra didelis specialus kompiuteris.“ Bet koks kompiuteris gali veikti kaip serveris. Jūsų nešiojamasis kompiuteris paleidžia vieną, kai atidarote localhost kūrimo metu.
  • „Jei mygtukas paslėptas, naudotojai negali to padaryti.“ Bet kas gali siųsti užklausas tiesiai į jūsų serverį. Leidimų patikrinimai turi vykti serveryje, ne tik puslapyje.
  • „Daugiau serverių išsprendžia lėtumą.“ Dažnai tikroji priežastis – lėta duomenų bazės užklausa ar išorinis API. Pirmiausia raskite kliūtį.
  • „Kad turėčiau programą, turiu valdyti serverį.“ Valdomos platformos serverius valdo už jus; jūs diegiate kodą, o mašinomis rūpinasi jie.

Ko prašyti savo DI kūrimo įrankio

  • „Kurios šios programos dalys veikia serveryje, o kurios – naršyklėje?“
  • „Laikyk visus API raktus serveryje ir nuskaityk juos iš aplinkos kintamųjų.“
  • „Tikrink leidimus serveryje kiekvienai užklausai, kuri skaito ar keičia duomenis.“
  • „Kur rasti serverio žurnalus ir ką jie sako apie šią klaidą?“
  • „Ar šiai programai iš viso reikia serverio, ar ji gali būti statinė svetainė?“
  • „Kas nutinka pirmai užklausai po to, kai programa buvo neaktyvi?“

Serveriai Mythex platformoje

Mythex platformoje savo serverių nesukuriate ir jų nevaldote. Kuriant jūsų programa veikia privačioje debesies smėliadėžėje tiesioginei peržiūrai. Kai publikuojate, Mythex ją įdiegia: statinius frontend'us kaip statines svetaines, o backend'us (Node, Python, C#, Java ir kiti) kaip konteinerius, sukurtus iš Dockerfile, – be jokio hostingo konfigūravimo. Diegimo metu Mythex parenka mašinos dydį: pagal nutylėjimą 1 CPU ir 512 MB atminties, o daugiau galima užsisakyti (iki 1 GB Free plane, ir iki 2 CPU, 4 GB ir 3 mašinų Pro plane). Publikuotos programos neaktyvios užmiega ir pabunda kitos apsilankymo metu, o užmigusi programa nieko nekainuoja skaičiavimams. Išsami informacija yra API backend'ų ir hostingo limitų dokumentacijoje, o mūsų vadovas apie web hostingą aprėpia platesnį vaizdą.

Klausimai

Kas yra serveris paprastais žodžiais?

Serveris – tai kompiuteris ar jame veikianti programa, kuri laukia kitų įrenginių užklausų ir į jas atsako. Kai atidarote svetainę, jūsų naršyklė paprašo puslapio iš serverio, o serveris jį grąžina.

Ar serveris yra fizinis įrenginys ar programinė įranga?

Vartojamos abi reikšmės. „Serveris“ gali reikšti fizinį ar virtualų kompiuterį arba programą jame, kuri tvarko užklausas, pavyzdžiui žiniatinklio serverį. Dauguma šiandienos programų veikia virtualiose mašinose ar konteineriuose debesų teikėjo duomenų centre, o ne jūsų nuosavoje įrangoje.

Ar kiekvienai svetainei reikia serverio?

Taip, kažkas visada turi siųsti failus lankytojui. Statinei svetainei pakanka paprasto failų serverio ar CDN. Programa, kuri saugo duomenis, tvarko prisijungimus ar laiko slaptus API raktus, taip pat reikalauja backend serverio, paleidžiančio jūsų kodą.

Ką reiškia localhost?

Localhost reiškia „šis pats kompiuteris“. Kūrėjas, paleidęs programą savo kompiuteryje, ją atidaro adresu, pavyzdžiui http://localhost:3000. Tik tas kompiuteris gali ją pasiekti; niekas kitas jos nemato, kol ji neįdiegiama viešame serveryje.

Mythex · Pricing · Kurkite bet ką su dirbtiniu intelektu · Svetainių ir programėlių šablonai · Mythex palyginimas · Programėlių kūrimo su dirbtiniu intelektu žodynėlis · Nemokami programėlių kūrimo su dirbtiniu intelektu įrankiai · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)