Internet är fantastiskt, jag tror att vi alla kan hålla med om det. Men har du någonsin sett dig ner och funderat på hur en webbplats faktiskt går till din dator? Vilken teknik ligger bakom MakeUseOf, till exempel? Det är mycket mer än bara en enkel samling av HTML-filer och bilder.
Läs vidare för att ta reda på exakt vad som går att köra, hosting och servera en webbplats för din konsumtion, kära läsare.
Hårdvara
Låt oss börja med den mest grundläggande delen av att ha värd en webbplats - hårdvaran. I huvudsak är maskiner som används för att vara värd för en webbplats verkligen inte annorlunda för de stationära datorer du eller jag har hemma. De har mer minne, backup-enheter och ofta fiberoptiska nätverksanslutningar - men i princip är de samma. Faktum är att en gammal maskin kan vara värd för en webbplats - det är bara ett fall av hur snabbt det kommer att kunna skicka sidor till användare.
Du kan läsa mer här om de olika typerna av hosting De olika formerna för webbhotell förklaras [Teknologi förklaras] De olika formerna för webbhotell förklaras [Teknologi förklaras] Läs mer tillgänglig, från en enda maskin delad mellan tusentals webbplatser som betalar $ 5 / månad till en full dedikerad server som kan driva något som MakeUseOf - vilket kostar tusentals dollar i månaden .
Operativ system
De flesta webbservermaskiner kör en optimerad smak av Linux - även om det finns ett stort antal servrar där Windows körs, i allmänhet i företags miljöer där webbapplikationer är byggda på ASP eller dotNet. Från och med januari i år är den mest populära Linux-distroen till valmöjligheter för webbhotell Debian, följt av CentOS (baserat på RedHat), både fritt tillgängligt för dig att ladda ner och prova dig själv - och varje sa att vara värd för 30% av alla webbplatser. Google driver självklart sin egen Linux, såväl som sitt eget anpassade filsystem.
Webserver-programvara
Här börjar saker verkligen skilja sig. Webbserversprogramvaran är programmet som mottar inkommande förfrågningar, och serverar sidorna eller filerna. Webbserversprogramvaran är i stor utsträckning oberoende av språket på webbsidan som det serverar. En Apache-server kan helt enkelt servera Python, PHP, Ruby eller något antal olika språk. men det här är inte universellt. Aktuell marknadsandel anger att Apache löper runt 65% av de bästa webbplatserna, Microsoft IIS 15% och nginx 10%. nginx anses vara bättre att hantera webbplatser med hög överensstämmelse - det vill säga där tusentals användare kan vara på platsen på en gång - och används faktiskt här på MakeUseOf.
När du laddar upp en webbplats öppnar du ett uttag - en anslutning - mellan din dator och webbservern. En utarbetad och lång dans till HTTP-melodin börjar sedan med fram och tillbaka av förfrågningar, data och statuskoder. När du begärde den här sidan svarade vår server med en 200 - OK, vilket betyder "säker, här går du" ; om du har besökt det tidigare kan din webbläsare också fråga "hej, jag har en kopia av den här grafiken redan i min webbläsarens cache, behöver jag verkligen det igen?", som vår server svarade på 304 - Inte modifierad eller "nej, det är coolt, vi har inte ändrat det eller någonting, använd bara den där " .
Ibland hittar du den fruktade 404 - inte hittad, men jag behöver inte förklara den felkoden till dig. Om du någonsin har öppnat Firebug Amatörs Guide för att anpassa webbdesign med FireBug Amatörs Guide för att anpassa webbdesign med FireBug Läs mer eller utvecklarens läge på din webbläsare, kommer du bli förvånad över att se hur mycket fram och tillbaka går vidare - det är inte enkelt "ge mig den sidan" - "OK, här", men faktiskt hundratals mindre interaktioner.
Statiska filer och innehållsleveransnät
På alla webbplatser finns det några filer som knappast ändras. Saker som Javascripts, CSS, bilder, PDF-filer eller mp3-filer. Dessa kallas statiska filer, och för att tjäna dessa till dig behöver webserverprogramvaran bara ta tag i filen och skicka den. Lätt, eller hur? Inte så fort.
Tyvärr är det ganska svårt att skicka ut ett stort antal statiska filer på grund av filernas storlek. Om du någonsin har besökt en webbsida där du faktiskt kan sitta där och titta på bilderna laddas, beror det på att webbservern hämtar dessa filer för dig själv - de är helt enkelt inte optimerade för att göra den typen av arbete. Istället avlastar stora webbplatser alla dessa statiska filer på vad som kallas ett Content Delivery Network - separata servrar som är optimerade för att servera statiska filer löjligt snabbt i ögonkontakt.
De uppnår också detta genom att fysiskt hitta servrar på olika platser runt om i världen som speglar varandra, så att data har mindre avstånd att resa till dig. Just nu, även om MakeUseOf-artikeln du läser faktiskt är värd i USA, kommer bilderna och Javascript från någonstans mycket närmare dig via en lokal CDN.
Dynamiskt innehåll - Webprogrammeringsspråk
Nästan alla moderna webbplatser har dynamiskt innehåll av något slag, oavsett om det betyder att WordPress lägger till kommentarer till ett blogginlägg eller att Google visar upp sökresultat. För att göra en webbsida dynamisk, behövs webbprogrammeringsspråk. Jag skrev tidigare om de olika språken som finns tillgängliga för dig Vilket programmeringsspråk att lära dig - Webbprogrammering Vilket programmeringsspråk som ska läras - Webbprogrammering Idag ska vi titta på de olika webbprogrammeringsspråken som driver Internet. Detta är den fjärde delen i en nybörjare programmeringsserie. I del 1 lärde vi oss grunden till ... Läs mer (och kom in i några uppvärmda debatter för att föreslå PHP var bäst). Oavsett vilket språk du väljer, fungerar det i samverkan med webbserverprogramvarulagen för att dynamiskt generera sidinnehållet och sedan servera det för dig.
databaser
Bakom alla dynamiska webbplatser finns databaser - massiva butiker för rå data som gör det möjligt för oss att få tillgång till data på flera olika sätt. För detta krävs ett separat databasprogrammeringsspråk, den mest populära är SQL (Structured Query Language) och det finns många varianter. Databaser innehåller olika datatabeller för att representera olika datastrukturer - en kan vara en lista med artiklar; en annan för kommentarer till dessa artiklar. Med hjälp av SQL kan vi sortera, kombinera och presentera data på olika sätt.
I WordPress består till exempel ett "inlägg" av åtminstone en titel och ett datum, och förmodligen ett visst innehåll. Ett separat bord används för att lagra kommentarerna på den artikeln, med ytterligare en tabell för att lagra en lista med kategorier, och sedan ytterligare en för att lagra en lista över vilka kategorier som har tilldelats vilken artikel. Genom att korsreferera och dra data från alla dessa samlar WordPress tillsammans all information som behövs för en viss sida i din blogg innan du applicerar temat och presenterar det för dig via webbserverprogramvaran.
Caching Systems
Servering av statiska HTML-filer är ganska lätt när det gäller beräkning - servern behöver bara hämta filen - det dynamiska innehållet å andra sidan kräver mycket arbete för att sätta sidan tillsammans med databasen och behandlingen som uppstår på den data . Ett caching system ger oss hela cirkeln genom att skapa dessa dynamiska sidor, och sedan spara dem i grunden som statiska HTML-filer. När exakt samma sida begärs igen behöver den inte omberäknas och därigenom påskynda webbplatsen.
Caching är ett brett begrepp som kan betyda många saker - CDN är en typ av cache; Det finns också databasflikar för vanliga frågor (tänk på WordPress som frågar databasen för titeln på din blogg varje gång någon tittar på ditt inlägg - för det är faktiskt vad som händer). Jag skrev tidigare om hur man konfigurerar det populära W3 Total Cache-systemet för WordPress Så här konfigurerar du de olika W3 Total Cache Plugin-inställningarna för din Wordpress-blogg Så här konfigurerar du de olika W3 Total Cache Plugin-inställningarna för din Wordpress Blog För en tid sedan pratade jag om fördelar med att installera W3TC plugin på din Wordpress blogg för att påskynda det med olika caching, men vissa läsare var förståeligt lite försiktiga om ... Läs mer, använd också här på MakeUseOf. Din webbläsare har också en cache Allt du behöver veta om webbläsarens cache [MakeUseOf Explains] Allt du behöver veta om webbläsarens cache [MakeUseOf Explains] När du har ett problem med en webbplats, ett av de första förslag som du kommer att höra från IT-support är "försök att rensa webbläsarens cache" tillsammans med "och ta bort dina cookies". Så vad är ... Läs mer - ganska mycket kan allt cachas.
Såsom du kan se finns det faktiskt en enorm mängd arbete och många tekniker som är inblandade i att ta emot en webbplats. Men det är inte att säga att du inte kan få din egen blogg att starta på mindre än en timme. Skalning till tusentals användare är där problemen börjar.
Några frågor? Fråga bort, och jag gör mitt bästa för att svara. Är du förvånad över hur mycket arbete som kan gå in på en webbplats?
Bildkredit: Shutterstock, nätverksserverrum; Netcraft, diagram för webbserver dela Shutterstock, databas; Justin Pot / Technophilia, INTERNETZ