Lokale webserver. Webserver: waar is het voor, hoe het werkt en hoe het werkt

De webhostingindustrie vereist op zijn minst enige basiskennis om het op gang te krijgen. Er zijn verschillende webhostingtermen waarvan elke webmaster op de hoogte moet zijn. Een van de meest elementaire is: web Server In feite is webhosting gebouwd met webservers die ruimte bieden voor uw website. De HP Micro AMD N40L-server is een veelzijdige server die een platform kan bieden voor het organiseren en beschermen van bedrijfsinformatie, het leveren van efficiënte klantcommunicatie en het optimaal benutten van uw bestaande kantoorapparatuur en -bronnen. HP MicroServer is een voordelige startersserver voor ondernemingen met minder dan 10 clients en kan uw bedrijf naar een hoger niveau van productiviteit en efficiëntie brengen.Klik hier voor meer informatie over de HP Micro AMD N40L-server http://vint.com.ua/product/computers/dir_3010558/dir_3010559 .

web Server kan twee dingen betekenen - computer het hosten van de website en programma die op zo'n computer draait. Daarom verwijst de term naar de webserver zowel hardware als software ... We zullen deze twee weergaven één voor één bekijken.

Webserver-hardware

Website is een verzameling webpagina's Dit zijn digitale bestanden die meestal zijn geschreven met de hypertext-opmaaktaal HTML. De website zal altijd beschikbaar zijn voor de hele wereld, hiervoor moet deze 24/7/365 worden opgeslagen op een hosting of op een computer die met internet is verbonden. Zo'n computer heet Web Server (let op de eerste hoofdletters).

U kunt mogelijk een website op uw thuiscomputer hosten, maar het vereist veel werk en constante controle. Het is gemakkelijker om een ​​webhosting van een bedrijf te kopen omdat er duizenden zijn die deze service tegen redelijke prijzen aanbieden. Kort over een van de beste bedrijven aan het einde van het artikel, je kunt niet alleen een webhost krijgen, maar ook een domeinnaam en een website en het is echt goedkoop!

Er zijn een aantal vereisten voor een computerserver - deze moet snel genoeg zijn, veel RAM-geheugen en een grote harde schijf hebben - maar het belangrijkste is om een ​​permanent internetadres te hebben, ook wel bekend als een Internet Protocol IP (IP ) adres. Als het IP-adres van de website niet wordt gevonden en het werkt offline- de browser geeft een fout weer kan website niet vinden.

Webserverprogramma's en software

Programma's web Server het is software die een website draait op een hostingservercomputer. Het belangrijkste doel: uitdelen webpagina's; dit betekent dat het luistert naar verzoeken van webbrowsers (ook bekend als klanten ) en reageert door de vereiste gegevens terug te sturen. Deze client-server-interactie is een onderscheidend onderdeel van hoe een webserver werkt..

Er zijn veel webserverprogramma's. De meest bekende en populaire daarvan is Apache ontwikkeld door de Apache Foundation Apache is niet alleen gratis, maar is ook beschikbaar voor verschillende besturingssystemen, waaronder Windows, Macintosh en Linux / Unix.

In het eerste artikel wil ik dit onderwerp een beetje aansnijden, omdat het erg belangrijk is om de werkingsmechanismen van de tool (in ons geval de webserver) te kennen die de werking van onze site implementeert. We idealiseren de webserver een beetje, waarbij we enkele subtiele technische nuances weglaten om het gemakkelijker te maken de essentie te vatten. Ik zal proberen het zo eenvoudig en toegankelijk mogelijk te omschrijven :)

Ik herinner me een lange tijd geleden dat ik dacht dat internet geconcentreerd op één plek, vertegenwoordigde zoiets als een laboratorium, waar een groot aantal apparatuur staat, die het werk van dit alles ondersteunt. Toen kon ik de omvang van het Global Network en de complexiteit van zijn structuur niet inschatten. In werkelijkheid is internet een abstract begrip; internetbronnen zijn verspreid over apparatuur over de hele wereld. Om deze apparatuur op grote afstanden met elkaar te laten communiceren, werden speciale algoritmen en standaarden uitgevonden, met name TCP / IP-protocol waarop ons internet momenteel werkt. Volgens deze standaard heeft elke computer in het wereldwijde netwerk zijn eigen unieke adres - IP adres... Een IP-adres is een reeks van vier cijfers, variërend van 0 tot 255, gescheiden door punten (bijvoorbeeld 92.166.31.18). Een computer kan communiceren met een andere computer op het netwerk, wetende zijn IP-adres. Maar om te zeggen "de computer communiceerde met de computer" is niet helemaal correct, aangezien het niet de computers zelf zijn die communiceren, maar de netwerkdiensten (programma's, zo u wilt) die erop draaien. Stel dat u e-mail naar uw grootvader stuurt en dat uw mailer contact opneemt met de mailserver om de brief te verzenden.

Er kunnen meerdere netwerkprogramma's tegelijkertijd op een computer worden uitgevoerd, daarom wordt naast het IP-adres voor communicatie met het TCP / IP-protocol een extra concept gegeven als haven... Poort is een getal in het bereik van 1 tot 65536. De minimale voorwaarde voor het ene netwerkprogramma om met het andere te communiceren, is dus dat het eerste een IP-adres heeft en het tweede poortnummer. Het is gebruikelijk om de combinatie van IP-adres en poort gescheiden door een dubbele punt te schrijven (bijvoorbeeld 192.168.35.2:443).

Om een ​​verbinding tot stand te brengen, krijgt het eerste programma een poortnummer en begint het te "wachten" tot het tweede verbinding maakt. Het tweede programma krijgt hetzelfde poortnummer en IP-adres van de computer waarop het eerste programma draait. De verbinding tussen de twee programma's lijkt op een mobiel telefoongesprek: Vasya belt Petya, Petya neemt de telefoon op en het gesprek begint. In dit geval is het telefoonnummer in ons geval een combinatie van het IP-adres en poortnummer.

Het programma dat wacht om verbinding te maken heet server... Het poortnummer wordt bij het opstarten aan de server aangegeven, er wordt vaak gezegd: "de server luistert op de poort". Er kan niet meer dan één server met hetzelfde poortnummer op een computer draaien (anders is het onmogelijk om te bepalen met welke van de servers verbinding moet worden gemaakt). Het programma dat verbinding maakt met de server heet cliënt... Clients zijn niet onderworpen aan deze beperking (u kunt bijvoorbeeld twee Jabber-clients gebruiken). Ook kunnen meerdere clients van verschillende computers verbinding maken met de server als de server dit zelf ondersteunt.

Laten we nu, op basis van deze oppervlakkige kennis, definiëren wat is web Server... Ten eerste, zoals de naam al doet vermoeden, is het een netwerkprogramma dat wacht en verbindingen accepteert (server). Standaard "luistert" de webserver op poort 80. De webserver ondersteunt gelijktijdig werken met meerdere clients (meerdere mensen kunnen de site tegelijkertijd bekijken). De client voor de webserver is: webbrowser(Internet Explorer, Opera enzovoort).

De site werkt dus ten koste van de webserver, die de pagina's van deze site naar klanten stuurt die ze bij hem opvragen. Om een ​​pagina op te vragen, moet u het IP-adres weten van de computer waarop de webserver draait met de site die we nodig hebben. Maar het onthouden van IP-adressen is onhandig, dus kwamen ze met domeinnamen die een soort tekstentiteit zijn (bijvoorbeeld yandex.ru). Het is duidelijk dat domeinnamen gemakkelijker te begrijpen en gemakkelijker te onthouden zijn. TCP / IP kan de vereiste computer echter niet vinden op zijn domeinnaam, dus moet deze worden omgezet in een IP-adres. Hiervoor worden DNS-servers gebruikt, waarop de correspondentietabellen tussen domeinnamen en IP-adressen staan. Stel, wanneer we het domein yandex.ru in de adresbalk van de browser invoeren, wordt er allereerst een verzoek gestuurd naar de DNS-server om het IP-adres van dit domein te bepalen. Wanneer het adres is bepaald, probeert de browser contact te maken met de webserver op dit adres en op het standaardpoortnummer 80. Als de verbinding met de webserver tot stand is gebracht, vraagt ​​de browser de webserver om de gewenste pagina van de site.

In principe kan een webserver worden geconfigureerd om op een andere poort te werken, in welk geval u in de browser, bij het opvragen van een pagina, deze moet specificeren met een dubbele punt achter de domeinnaam (bijvoorbeeld site.ru:3182) .

Hoe vraagt ​​een browser een webpagina op bij een webserver? Het is duidelijk dat interactie tussen een webserver en een browser een "gemeenschappelijke taal" vereist, dat wil zeggen een bepaalde standaard waarmee verzoeken en antwoorden worden gevormd. Deze standaard is HTTP-protocol(HyperText Transfer Protocol). Dit protocol is vrij eenvoudig omdat het een verzoek-antwoordschema volgt. Met andere woorden, voor elk HTTP-verzoek van een webbrowser reageert de webserver met een HTTP-antwoord. Op eigen initiatief verstuurt de webserver geen HTTP-pakketten (bovendien verbreekt de server vaak de verbinding met de client nadat de request-response-operatie is voltooid).

Laten we eens kijken naar de structuur van een HTTP-pakket. Een HTTP-verzoek en een HTTP-antwoord bestaan ​​uit twee blokken: een headerblok en een pakketbodyblok. Deze blokken worden van elkaar gescheiden door twee nieuwe regeltekens (dat wil zeggen, er is een lege regel tussen de kopteksten en de hoofdtekst). Het header-blok bevat verschillende pakketparameters, het body-blok bevat enkele gegevens. Het tweede blok kan afwezig zijn, dat wil zeggen dat het HTTP-pakket alleen uit een headerblok kan bestaan. Laten we bijvoorbeeld een verzoek uitvoeren voor de hoofdpagina van de ya.ru-website en de HTTP-pakketten bekijken die eraan hebben deelgenomen. Bij het opvragen van de startpagina stuurde de Firefox-browser het volgende HTTP-verzoek naar de webserver:

GET / HTTP / 1.1 Host: ya.ru User-Agent: Mozilla / 5.0 (Windows; U; Windows NT 5.1; ru; rv: 1.9.2) Gecko / 20100115 Firefox / 3.6 Accepteren: tekst / html, applicatie / xhtml + xml, application / xml; q = 0.9, * / *; q = 0.8 Accept-Taal: ru, en-us; q = 0.7, en; q = 0.3 Accept-Encoding: gzip, deflate Accept-Charset: windows-1251 , utf-8; q = 0.7, *; q = 0.7 Keep-Alive: 115 Aansluiting: keep-alive

Er is geen datablok in het HTTP-verzoek (omdat er geen lege regel is om de headers van de data te scheiden). Laten we eens kijken naar de regels van deze vraag die op dit moment voor ons van belang zijn. Eerst de allereerste regel:

GET / HTTP / 1.1

"GET" is het type verzoek. De twee meest voorkomende soorten verzoeken zijn GET en POST. We zullen erover praten in een van de volgende artikelen of lessen. "/" geeft aan dat de startpagina van de site wordt opgevraagd. Anders wordt hier het pad en de naam van de opgevraagde pagina of het opgevraagde bestand gespecificeerd. "HTTP / 1.1" is de versie van het HTTP-protocol.

Gastheer: ya.ru

De Host-parameter bevat het domein van de site die wordt geopend.

User-Agent: Mozilla / 5.0 (Windows; U; Windows NT 5.1; ru; rv: 1.9.2) Gecko / 20100115 Firefox / 3.6

User-Agent bevat informatie over de client: browsertype, besturingssysteem, enzovoort. De overige parameters zijn op dit moment niet van bijzonder belang voor ons.

De webserver heeft op dit HTTP-verzoek gereageerd met het volgende HTTP-antwoord:

HTTP / 1.1 200 OK Server: nginx Datum: do 25 feb 2010 12:31:25 GMT Inhoudstype: tekst / html; charset = utf-8 Laatst gewijzigd: di 12 jan 2010 15:29:06 GMT Transfer-codering: chunked Verbinding: keep-alive Content-codering: gzip Yandex. ...

Een lege string geeft de aanwezigheid van een datablok (packet body) aan. Laten we, net als in het geval van het HTTP-verzoek, kijken naar de belangrijkste regels van het ontvangen antwoord. De eerste regel bevat de versie van het HTTP-protocol (HTTP / 1.1) en de resultaatcode. Een resultaatcode van 200 betekent dat de aanvraag succesvol was. Alle resultaatcodes staan ​​vermeld in de beschrijving van het HTTP-protocol. Enkele daarvan zullen we in de toekomst leren kennen, bijvoorbeeld 403 en 404.

Server: nginx

De parameter Server bevat de naam van de webserver. In ons geval hebben we te maken met de nginx-webserver. Deze parameter kan afwezig zijn in het HTTP-antwoord als de beheerder van deze server om de een of andere reden deze informatie niet wil vrijgeven.

Inhoudstype: tekst / html; tekenset = utf-8

Content-Type bevat het type van de verzonden gegevens en, indien nodig, hun codering (charset). Ook bevatten de headers vaak een Content-Length-parameter die de grootte van de door de server verzonden gegevens in bytes bevat. Het body-blok van het pakket bevat de code van de opgevraagde pagina.

Zo maakten we kennis met de basisprincipes van het functioneren van een webserver, onderzochten we het "request-response" -schema. Het is voor de webmaster erg handig om het HTTP-protocol zo goed mogelijk te kennen, omdat dit de basis is van het functioneren van de website. In volgende artikelen en tutorials zullen we kennis maken met de verschillende functies van de webserver, die niet in dit artikel worden behandeld, en bekijken hoe ze worden geïmplementeerd door het HTTP-protocol. En in de eerste les leren we hoe we zelf een webserver kunnen installeren en configureren.

Gespecialiseerde HTTP-applicaties vullen Apache en andere toonaangevende webservers aan

De voordelen van het gebruik van "lichtgewicht" webservers zoals lighttpd, litespeed en bastaard in projecten zijn indrukwekkend. In dit artikel geven we een overzicht van de mogelijkheden en laten we zien hoe deze kunnen worden toegepast.

Wat moet een webserver doen?

Allereerst moet u begrijpen wat we onderzoeken (zie de sectie voor details). De primaire actie van een eindgebruiker op internet is "naar een webpagina gaan". Op het meest algemene niveau gaat het om een ​​paar toepassingen die samenwerken:

  • Een webbrowser zoals Firefox of Internet Explorer die in een voor mensen leesbare vorm de gevraagde pagina weergeeft die het ontvangt van ...
  • Een webserver, meestal op een externe machine, die reageert op een verzoek om een ​​pagina met een gegevensstroom in HTML of vergelijkbaar formaat.

Browsers worden beheerd door internetgebruikers die ze met de nodige zorg kiezen en analyseren. De servers zijn daarentegen alleen zichtbaar voor de technische staf van de site. En hoewel er veel verschillende webservers zijn, draait volgens recent onderzoek van Netcraft ongeveer 90% van alle sites op slechts twee ervan: Apache en Internet Information Server (IIS). Beide servers zijn uitgebreide producten met niet alleen een zeer lange lijst van ingebouwde mogelijkheden, maar ook een bloeiende "aftermarket" voor boeken, add-ons, consultaties, providers en meer. Moeten we het gewone wiel opnieuw uitvinden?

Ja. Een webserver wordt beoordeeld op een aantal kritische parameters:

  • efficiëntie: hoe snel reageert het op een verzoek?
  • schaalbaarheid: Blijft de server betrouwbaar werken wanneer veel gebruikers er tegelijkertijd toegang toe hebben?
  • Veiligheid: Voert de server alleen de bewerkingen uit die nodig zijn? Welke mogelijkheden biedt het voor gebruikersauthenticatie en encryptie van de communicatiestroom? Maakt het gebruik ervan aangrenzende applicaties of hosts kwetsbaarder?
  • bedienbaarheid: wat zijn de serverstoringsmodi en noodsituaties?
  • Nakoming: Ondersteunt de server de bijbehorende RFC's?
  • Flexibiliteit: kan de server worden geconfigureerd om een ​​groot aantal verzoeken of dynamische pagina's te accepteren die aanzienlijke berekeningen of complexe authenticatie vereisen, of ...?
  • Platformvereisten: op welke platformen kan de server worden gebruikt? Heeft het specifieke hardwareplatformvereisten?
  • Beheersbaarheid: Is de server eenvoudig te installeren en te onderhouden? Is het consistent met de organisatorische normen voor journaling, auditing, kostprijsberekening, enz.?

Apache en IIS kunnen niet zoveel criteria tegelijk optimaliseren. In principe is het duidelijk dat nicheproducten op minstens één of twee van deze kenmerken beter kunnen presteren dan marktleiders.

Het meest interessante aan lichtgewicht webservers, waarom ze een recensie als deze verdienen, is dat ze verre van theoretisch concurrentievermogen zijn. Zorgvuldig onderzoek toont aan dat ze veel te bieden hebben en dus zelfs in veel voorkomende situaties succesvol concurreren met Apache en IIS. Hoewel het redelijk is om aan te nemen dat marktleiders zorgvuldig zijn geoptimaliseerd om (bijvoorbeeld) onverslaanbaar te zijn in prestaties, doen veel kleinere concurrenten dat wel. sneller bij het eenvoudig weergeven van statische webpagina's. Als je je eigen tests doet met deze webservers, krijg je het gevoel dat je per ongeluk op een racebaan op een kart bent gestrand en op een of andere manier onbegrijpelijk Porsches en Vipers inhaalt. En dat is niet alles: soms lichtgewicht webservers aanvulling hun grote broers, niet alleen met hen concurreren. Zelfs als je weet dat je Apache gaat gebruiken, kun je er soms veel meer uit halen door het te bundelen met een lichtgewicht partner. De beste oplossing is vaak een samenwerking tussen twee of meer webservers.

De lichtheid van een webserver

De "lichtheid" waarop deze recensie zich richt, is meer een subjectief kenmerk, zoals "kunst" of "geur". Doorgaans betekent "lichtgewicht" eenvoudig, gemakkelijk te installeren, goed afgesteld, niet veeleisend en robuust - kleiner en minder complex dan Apache en IIS, die nogal omslachtig zijn geworden in een poging om hun grote markt tevreden te stellen. Vanwege hun complexiteit en omvang sluiten we Java Web Server, AOLserver en Zeus uit van overweging, ondanks hun intrigerende draagbaarheid en prestaties.

Voldoende lichtgewicht servers bieden kansen die niet beschikbaar zijn voor marktleiders en andere "zware" alternatieven. De hele server kan bijvoorbeeld in één bestand passen. Dit is handig voor de ontwikkelaar, omdat je dan alle tools bij je kunt hebben die hij nodig heeft voor productief werk; zelfs als je Apache op je productieserver gebruikt, kun je in een hotelkamer zitten en experimenteren met nieuwe ideeën, en ze uitvoeren op een lichtgewicht server die binnen enkele seconden geïnstalleerd is. Omdat ze niet veeleisend zijn, functioneren lichtgewicht servers ook goed op machines die het gewicht van IIS gewoonweg niet kunnen weerstaan.

Verpakken in één bestand

Verpakken in één bestand

Apache vereist een zorgvuldige installatie van veel bestanden verspreid over meerdere mappen. Het contrast met de hieronder beschreven webservers, waarvan sommige in één enkel uitvoerbaar bestand passen, is opvallend. Een van de specialiteiten van mijn werkgever, Phaseit, is het implementeren en bouwen van installatiepakketten, en we weten hoe we de installatie van Apache eenvoudiger dan normaal kunnen laten lijken. Maar zelfs als we onze beste aanpak gebruiken, is er nog steeds een enorm verschil in de "voetafdrukken" van Apache of IIS of light servers: de eerste nemen gewoon veel ruimte in beslag.

Kleine, lichtgewicht webservers presteren ook goed op low-end machines. In ons eigen bedrijf (Phaseit - zie) gebruiken we gespecialiseerde apparatuur die draait op industriële computers in afgelegen systemen, in ruwe omgevingen of in omstandigheden met onvoldoende stroomvoorziening. In deze situaties is het een groot voordeel om webpagina's te kunnen renderen in een applicatie die niet veel prestatie of schijfruimte vereist; dit betekent dat onze machines embedded webgebaseerde beheerconsoles kunnen hebben, zonder de ontwikkelingscomplexiteit en overhead van Apache.

Bijna alle lichtgewicht webservers zijn tot op zekere hoogte open source. Als we specifiek gedrag nodig hebben voor een webserver, dan zijn de hieronder beschreven servers zo klein dat ze gemakkelijk te begrijpen en dus gemakkelijk te verbeteren zijn (er zijn slechts een paar uitzonderingen). Deze webservers zijn uitstekend startmateriaal voor projecten waarin webservers zijn ingebed in speciale hardware of in specifieke toepassingen die zijn ontworpen om op computers voor algemene doeleinden te draaien. Ze worden ook veel gebruikt op veelvoorkomende websites:

Hier is een voorbeeld van het gemak van lichtgewicht servers voor ontwikkelaars: in ons bedrijf hebben we te maken met speciale apparatuur voor kantoortelefonie. Het maakt gebruik van gespecialiseerde software die werkt als een gewone Linux®-toepassing. Met slechts één extra bestand en een kleine init.d-tweak, is het gemakkelijk om een ​​zeer efficiënte "webconsole" toe te voegen die een besturingsinterface biedt voor de hardware en software. Eindgebruikers kunnen hun hardware vanuit elke browser controleren en configureren zonder dat ze speciale hardware en andere complexiteiten nodig hebben die typerend zijn voor "verticale" hardware.

Service-georiënteerde architecturen (SOA) hebben de reputatie moeilijk en grillig te zijn. In onze ervaring kunnen in ieder geval een deel van de problemen worden opgelost door een juiste implementatie van een webservice. We gebruiken lichtgewicht webservers om snelle SOA-installaties voor demonstraties te bieden.

Lichtgewicht servers spelen zelfs een rol in echte computercentra, inclusief de hierboven genoemde solide sites en niet alleen hen. Goed presterende sites segmenteren hun activiteiten om het meeste uit caching, proxy's en meer te halen. Een op Apache gebaseerde site kan bijvoorbeeld een architectuur hebben waarin langzaam veranderende afbeeldingen worden geleverd via een "minimalistische" webserver vanaf een speciaal bestandssysteem. Wat de eindgebruiker daadwerkelijk ziet, is het resultaat van het Apache-teamwerk en een of meer extra webservers, die elk een rol spelen waarin hij uitblinkt. Zo'n constructie kan geven heel snelle resultaten met minimale rekenkosten.

Doelen en middelen

Hoewel lichtgewicht webservers veel gemeen hebben, zijn er binnen deze categorie verschillen. De meeste servers zijn geschreven in C, maar de servers die ik heb getest, hebben een aantal succesvolle implementaties in andere talen, waaronder Erlang, Java, Lisp, Lua, Perl, Python en Tcl. Als u de voorkeur geeft aan een taal, zult u waarschijnlijk een webserver vinden die erin is geschreven.

Er kunnen veel specifieke redenen zijn om een ​​"zeldzame" taal te kiezen:

  • Onderwijs: Werken met een lichtgewicht webserver is een serieuze, maar niet buitensporige taak. Dit is een goede manier om ervaring op te doen met de taal.
  • Samenwerking: terwijl een lichtgewicht webserver geschreven in C meestal 10-50 kilobytes past, en uitvoerbare bestanden van hogere talen van 100 kilobytes tot enkele megabytes in beslag nemen, bron voor een complete webserver op hoog niveau kan zo klein zijn als een paar duizend bytes. Deze kleine code is veel gemakkelijker te delen met collega's dan om Apache aan te passen.
  • Onderzoek: Talen op hoog niveau maken het gemakkelijk om te experimenteren - bijvoorbeeld het toevoegen van nieuwe HTTP / 1.1-functies vereist mogelijk slechts een paar extra regels code. Deze lichtgewicht servers zijn handige experimentele dingen.
  • Aanpassing: om een ​​HTTP-server toe te voegen aan een bestaande applicatie die al is geschreven in taal op hoog niveau, kan het nodig zijn de broncode met slechts een paar regels te verhogen.

Atana is daar een goed voorbeeld van. Het is een webserver geschreven in Python. Het ondersteunt HTTP multipart (uploaden), sessies, cookies en meer. Momenteel, in versie 0.2.1, is Athana tot nu toe gehuisvest in één prachtig georganiseerd bronbestand.

Zoals vermeld, variëren de mogelijkheden van verschillende lichtgewicht webservers ook, min of meer ongeacht de gebruikte taal. Alle lichtgewicht webservers zijn kleiner en gemakkelijker te configureren dan Apache. Sommige zijn sneller dan Apache, andere veel sneller; andere richten zich op beveiliging, ononderbroken werking bij zware downloads, uitbreidbaarheid of geheugenbesparing. In ieder geval kunnen ze hoogstwaarschijnlijk volledig worden begrepen, wat al onrealistisch is voor Apache.

Welke specifieke producten zitten achter deze mogelijkheden? Zelfs als we ons beperken tot "lichte" servers, krijgen we een enorm grote keuze. Laten we deze servers per subcategorie bekijken: ultralicht, zeer veilig, met een speciale taal, enzovoort.

Van deze categorieën ben ik vooral dol op ultralichtgewicht webservers - degenen die: veel minder dan Apache. Toepassingen van dit formaat passen in het hoofd van een gemiddeld persoon; hun werk kan systematisch en rigoureus worden voorgesteld om hun veiligheid of schaalbaarheid rigoureus te bewijzen. Zeer kleine webservers zijn onder meer:

  • Cheetah Server met minder dan duizend regels in C.
  • StofMote, heel een kleine webserver geïmplementeerd in een enkele Tcl-bron, ongeveer 3000 bytes groot.
  • fnord is minder dan 20K, afhankelijk van platform en configuratie. Ondanks zijn kleine formaat ondersteunt het shared hosting, CGI en keep-alive.
  • ihttpd, met minder dan 800 regels C, kan pagina's, inclusief CGI's, bedienen via inetd.
  • ondersteunt CGI, terwijl het slechts 600 regels in C is.
  • Scrinchy ondersteunt, ondanks zijn kleine formaat - ongeveer 30 KB - opmerkelijk veel scripttalen, waaronder een gespecialiseerde stapeltaal genaamd Sy.
  • ZWS laat zien hoe je een zinvolle applicatie kunt schrijven - in dit geval een HTTP 0.9+ server - met iets meer dan 500 regels goed becommentarieerde zsh (!).

Het kleine formaat sluit serieus gebruik van deze servers niet uit; fnor verwerkt bijvoorbeeld duizenden gelijktijdige verbindingen.

  • cghttpd is een minimale webserver die kan worden gezien als een experiment in het gebruik van de asynchrone faciliteiten die beschikbaar zijn in de 2.6-serie Linux-kernels.
  • darkhttpd is een snelle single-threaded HTTP / 1.1-server.
  • De Gatling is speciaal ontworpen voor hoge prestaties. Ondersteunt FTP, IPv6, shared hosting, CGI, etc.
  • Is een Linux-kernelmodule die zorgt voor de uitvoering van de HTTP-daemon.
  • lighttpd is de vijfde meest populaire webserver ter wereld (en het aandeel groeit!). Het is geoptimaliseerd voor een groot aantal gelijktijdige verbindingen: "Een typisch scenario is het gebruik van lighttpd als een server die de hoofdserver ontlast om statische inhoud te serveren ..."
  • LiteSpeed ​​​​Web Server is een commerciële lichtgewicht webserver met een focus op prestaties en beveiliging. LiteSpeed ​​​​Technologies Inc. claimt 6x sneller voor statische inhoud en iets bescheidener prestaties voor geïnterpreteerde pagina's.
  • Ook bekend als tjws, een Java-webserver die servlets, JSP's en duizenden gelijktijdige verbindingen in 77 kilobytes afhandelt. De auteur beschrijft het als "10% sneller dan Apache 2.x."
  • Yaws is een krachtige HTTP / 1.1-server geschreven in Erlang.

Veel webservers zijn geïmplementeerd als klassen of bibliotheken die zijn ontworpen voor: inbedden in grote toepassingen. Onder hen zijn vooral interessant:

  • EHS is een "embedded HTTP-server", een C++-klasse die is ontworpen om te worden ingebed in grote C++-toepassingen; en
  • Embedded TCL Web Server, de eenvoudigste webserver die SSL en Basic Authentication ondersteunt en fantastisch snel is - volgens de metingen van de auteur, niet minder snel dan lighttpd en AOLserver. Bevat minder dan honderd regels Tcl.

Er zijn verschillende webservers geïmplementeerd in Python die ongebruikelijke niches vullen, waaronder.

Het internet is met grote snelheid ons leven binnengedrongen. Hij temde iedereen voor zichzelf, verstrikte zijn web en laat ons niet meer gaan. Elke dag bladerend door tientallen, honderden pagina's met sites, denken maar weinig mensen na over wat dit wereldwijde internetnetwerk is, hoe het werkt, wat deze of die termen betekenen. Vandaag zullen we het hebben over wat een webserver is, waar het voor is, welke functies het uitvoert.

Wat wordt bedoeld met het concept van een webserver? De verzameling webservers is de ruggengraat van het internet. Zonder hen zou er geen world wide web zijn. Gebruikers zouden simpelweg niet in staat zijn om met elkaar te communiceren, de informatie te vinden die ze nodig hebben, hun sites en blogs te starten en te onderhouden. Webservers kunnen computers of speciale programma's zijn die de rol van server spelen.

Webserverfuncties

De belangrijkste taak van een webserver is om HTTP-verzoeken van gebruikers te ontvangen, te verwerken en te vertalen in digitale computercode. Geef vervolgens HTTP-antwoorden uit en converteer ze van miljoenen nullen en enen naar afbeeldingen, mediastreams, brieven, HTML-pagina's.

Elke webserver moet voor het gemak van zijn gebruikers een handige webbrowser hebben. Het stuurt verzoeken naar de webserver, geconverteerd naar URL's van internetbronnen.

Naast de standaardfuncties hebben sommige webservers extra functies. Zo kan de bijbehorende software bijvoorbeeld het aantal gebruikersverzoeken aan een bepaalde bron vastleggen en in een apart logboek vastleggen. Ze kunnen ook HTTPS ondersteunen, wat belangrijk is voor een veilige verbinding tussen sites en gebruikers. Vaak wordt de webserver samen met de mailserver geïnstalleerd. Hierdoor kunnen gebruikers snel rechtstreeks vanaf de site naar de e-mailpagina gaan door op slechts één hyperlink te klikken.

Waar is een webserver voor?

Zoals uit het bovenstaande blijkt, heeft iedereen die internet gebruikt om informatie uit te wisselen een webserver nodig. Over het algemeen is het echter niet een persoon die het moet aanpakken, maar programma's en apparaten. Antivirusprogramma's vragen de server bijvoorbeeld vaak om het netwerk te doorzoeken en hun databases bij te werken. Mobiele telefoons, tv's en andere apparaten die toegang hebben tot internet werken actief samen met webservers. In dit geval kunnen programma's worden geconfigureerd om automatisch te updaten. Dan is de deelname van de gebruiker aan dit proces praktisch niet nodig. Sommige bijgewerkte databases kunnen echter nog steeds beter door uzelf worden beheerd.

De meest bekende webservers

De meest bekende en wijdverbreide webservers zijn Microsoft IIS en Apache. De meest populaire hiervan is Apache. De software wordt gebruikt door meer dan 60% van alle bestaande. Dit wordt grotendeels mogelijk gemaakt door het feit dat Apache gratis is. Ontwikkelaars analyseren voortdurend hun productbugs en repareren ze. Het nadeel van het programma is dat het over het algemeen bedoeld is voor professionele programmeurs en gebruikers, dus het is vrij moeilijk om het te onderhouden en te configureren.

Microsoft daarentegen probeert zijn IIS-webserver toegankelijk te maken voor de gemiddelde gebruiker. Alle instellingen kunnen worden gedaan zonder specialisten. Het is heel goed mogelijk dat dit programma zijn concurrent met een Indiase naam kan inhalen wat betreft het aantal gebruikers.

Zowel Apache als IIS werken uitstekend met veel besturingssystemen, zoals Mac OS, Linux, verschillende aanpassingen van Microsoft Windows en vele andere. Deze twee webservers zijn stabiel in gebruik, hebben een goede snelheid, er kunnen extra modules op worden aangesloten.

We hebben een nieuw boek uitgebracht, "Contentmarketing op sociale media: hoe kom je in de hoofden van abonnees en word verliefd op je merk".

Abboneer op

Een webserver is een server die verzoeken van een gebruiker accepteert en deze antwoorden geeft - een document, pagina of site.


Meer video's op ons kanaal - leer internetmarketing met SEMANTICA

Elke computer kan een server worden. Om dit te doen, moet u een speciale shell installeren.

De eisen voor het technische gedeelte worden bepaald door de hoeveelheid toegewezen middelen en de snelheidseisen. Hoe groter ze zijn, hoe krachtiger de computer zou moeten zijn.
Laten we, om het duidelijk te maken, een analogie geven. Je gaat naar de bibliotheek en vraagt ​​om een ​​boek. De bibliothecaris vindt degene die u nodig heeft en geeft deze aan u. Een bibliotheek is een server, alle gegevens worden erin opgeslagen. De bibliothecaris is de shell die het verzoek heeft geaccepteerd en het antwoord heeft doorgestuurd. U bent een klant.
U kunt een bibliothecaris sturen voor meer informatie - vergelijkbaar met het klikken op een link. Het verschil is dat een onbeperkt aantal gebruikers tegelijkertijd dezelfde bron op internet kan lezen.
De klantenservice verloopt volgens een soortgelijk principe: als we een boek komen halen, kunnen we een vraag stellen aan de bibliothecaris (zoekmachine) of in de index kijken (YandexCatalogue). Dit helpt u de informatie te vinden die u zoekt.

Wat doet een webserver?

De belangrijkste taak is het opslaan van informatie. Pagina's, bestanden, afbeeldingen, tekstinhoud.
Taken:

  • Ontvang verzoeken.
  • Voer programma's uit in speciale programmeertalen (server-side).
  • Webpagina's vormen.
  • Stuur ze terug naar de gebruiker.
  • Bescherm informatie.
  • Identificeer bezoekers.
  • Houd een logboek bij van verzoeken.
  • Bedien andere soorten verzoeken: mailto, enz.

Om te begrijpen hoe een webserver werkt, moet u de principes kennen van het overbrengen van informatie op het netwerk. Het is gebaseerd op regels die protocollen worden genoemd: elke URL begint met een typeaanduiding (ftp, http: //, https: //, enz.).
Hyper Text Transfer Protocol - overdrachtsprotocol. Sitepagina's zien er altijd uit als een hypertextdocument. Dit is het eindresultaat van elk server- of clientprogramma.

  • Wanneer een gebruiker een adres invoert of op een link klikt, verzendt de browser het verzoek en codeert de informatie volgens deze regels.
  • De host waaraan dit adres is gekoppeld, start de serverprogramma's. Elk van hen voert zijn eigen functies uit.
  • De ontvangen gegevens worden gedecodeerd, de opdrachten worden uitgevoerd.
  • Hypertext wordt gevormd, gecodeerd en teruggestuurd.
  • De browser ontvangt het antwoord, converteert de code naar html en toont de pagina op het scherm.

Wat is nodig voor een webserver

U hebt een machine nodig die alle verzoeken afhandelt. Schat de belasting die de server moet weerstaan. Het hangt af van het aantal bezoekers: hoe meer aanvragen, hoe meer stroom er nodig is.

Er zijn speciale bedrijven die hostingdiensten aanbieden. Je huurt een server. U krijgt een quotum voor het hosten van sitebestanden.
Maar als u een eenvoudige site heeft, kunt u deze zelf doen.

Wanneer het probleem met de server is opgelost, moet u er een statisch IP-adres aan koppelen.

De site komt beschikbaar op de webserver nadat de domeinnaam is geregistreerd, adresvertaling wordt uitgevoerd door de DNS-service - binding van het IP-adres (bijvoorbeeld 111.111.111.111) en de domeinnaam (www.site.com).

Meest voorkomende servers

Apache

Het is een gratis, vrij herdistribueerbaar product dat veel voordelen heeft:

  • Continue ondersteuning voor ontwikkelaars.
  • Modules voor het werken met server-side programmeertalen PHP, Perl, Python, Ruby, ASP, etc.
  • Open source. Verschillende programmeurs zijn bezig met de aanpassing aan hun behoeften. De Russisch sprekende gemeenschap past het bijvoorbeeld aan de Russische codering aan.
  • ... Het is oorspronkelijk gemaakt voor Unix, maar wordt nu ondersteund door Windows, Mac OS, BSD, Linux, OS/2 en Novell NetWare.
  • Veiligheid.

Geef bij de installatie uw hostnaam op, bijvoorbeeld localhost. Kopieer een willekeurige html-pagina naar de map htdocs in de map Apachex.x (waarbij x.x het versienummer is). Of maak het in Kladblok door tekst in te voeren en op te slaan met de html-extensie.

Wanneer het bestand in de map verschijnt, opent u uw browser en typt u het adres: localhost: // PAGINANAAM.html. Uw tekst verschijnt op het scherm - de pagina wordt geopend vanaf de server. Als u de foutmelding "Kan geen toegang tot de site" ziet, is Apache niet actief. Het pictogram bevindt zich in de lade.
Klik erop en selecteer "Afspelen". Daarna zal alles werken.

NGNIX

Het aandeel actieve sites dat eraan werkt is 21,13% (Netcraft-onderzoek). Het wordt voornamelijk gebruikt door grote bedrijven en professionele ontwikkelaars: Yandex, Mail.ru, Rambler, enz. NGNIX is bestand tegen een enorme hoeveelheid bezoekers, is betrouwbaar, veilig en goed doordacht.
Het wordt gratis verspreid, maar er zijn betaalde versies van Plus verschenen, die vanaf $ 2.500 kosten.

IIS

Zijn bekendheid wordt geleverd door de grote naam van de ontwikkelaar. Het is een set webservices en is geïntegreerd met Windows. Het native programmeerplatform is ASP.NET, maar u kunt een alternatief implementeren, zoals PHP.

Volledige hosting vereist de installatie van een serverbesturingssysteem van Microsoft - Windows Server. De 6e versie was helemaal niet bedoeld voor hosting, de volledige ondersteuning begon in de 7e. Het wordt automatisch samen met het besturingssysteem aangeschaft en is afhankelijk van de kenmerken ervan.

Installatiepakketten

Voor beginnende programmeurs en ontwikkelaars zijn er tools gemaakt waarmee u met een paar klikken een webserver op uw computer kunt implementeren.

  • OpenServer. Een draagbare ontwikkelomgeving met veel databases, programmeertalen en hun versies, evenals aanvullende services. Bijvoorbeeld de interface voor het werken met de PhpMyAdmin-database. Dit is tegenwoordig de meest populaire installatiekit. Werkt zelfs vanaf een USB-stick. Gratis downloads op lage snelheid. Voor 100 roebel neemt de snelheid aanzienlijk toe.
  • Xamp. Actief ondersteund pakket: Apache, Php, Perl, MariaDB, etc. Heeft een controlepaneel. Gratis te downloaden.
  • ... Een zeer handige set van alle benodigde tools, waaronder Apache, PHP, MySQL, PhpMyAdmin. Helaas bevat de nieuwste versie verouderde distributies. Over het algemeen zijn ze geschikt voor training. Afgaande op het forum wordt het project niet langer ondersteund.