Ræðumaður: Nú skulum kafa í dreifingu kóða og taka a líta á samhengi þar sem númerið sem þú skrifar er að fara að starfa. Í lok dags, þú ert að fara að innleiða heild á vefþjóni. En við höfum veitt þú með beinagrindina númer sem hafa einhverja virkni, sérstaklega í tengslum við net. Við skulum taka a útlit. Svo hér í átt að efst skrárinnar er fullt álitum prófa fjölvi kröfur. Nú er þetta bara eiginleiki c, þar samkvæmt til fullt af síðum þú þarft að skilgreina sum þessi fastar til að vera satt eða til að vera jafnvel sérstakar tölur svo að þú hefur aðgang að tilteknum aðgerðum. Annars þeir 'vera óskilgreinda og þú munt ekki hafa aðgang að. Þannig að ég hef gert þetta með því að lesa síðum. Nú niður hér, í línur 15 gegnum 17, við hafa a heild búnt af mörkum lýst. Og við höfum fengið að láni þetta frá vinsæll vefur framreiðslumaður kallast Apache. Og þetta eru bara tölur sem eru að fara Cap heildarfjölda bæti sem eru leyfðar í mismunandi samhengi fyrir HTTP beiðni að vafra er leyft að senda mér. Next, skilgreinum við áttundir. Nú er octet bara fínt leið segja bæti, eða átta bita. Skrúfjárn út í fyrra bæti var ekki endilega átta bitar, svo octet er alltaf átta bita. Svo í þessu tilviki sem við höfum samþykkt hvað er algengt í net heimur hringja átta bytes sem áttundargildi. Hér ég hef skilgreint að áttundir mun vera 512, svo að mikið eins og í réttar þegar við lesum fullt af bæti í einu, hér líka, við erum að fara að lesa a fullt af áttundir í senn. Next a heild búnt af haus skrá. Hvernig ég vissi að fela þetta? Jæja ég las einfaldlega manninn síður fjölda aðgerða að við munum nota í þessari dreifingu númer og fela í sjálfur Ég var sagt að. Og nú erum við með gögn tegund. Við höfum lýst yfir áttund að vera bleikju. Og við munum sjá síðar að það er notað um kóða. Og við höfum lýst a allt fullt af frumútgáfur, og við munum ganga hratt í gegnum hvert af þessum aðgerðum. Loksins, og kannski mest mikilvægt að hafa í huga á þessum tímapunkti í sagan, er að það eru í raun í heild fullt af alþjóðlegum breytur efst á the skrá, rót, CFD, SFD, beiðni, skrá og líkama. Nú almennt, nota svo margir heimsvísu breytur, eða Alþjóðlegar breytur á öllum, er ekki aftur æfa. En það kemur í ljós að við erum líka að nota a tækni sem kallast merki meðhöndlun síðar í kóðanum, sem gerir okkur kleift að nema þegar notandi smellir eitthvað eins CTRL C og leggja niður þjóninum þokkafullur. Og í því skyni að gera það þokkafullur og í raun frjáls upp minni, við þurfum að hafa aðgang að þessi Alþjóðlegar breytur. Og nú skulum taka a líta á helstu, sem rekur heild af þessu forriti. First, efst hér við hafa villu númer breytu sem virðist ekki hafa gerð, en það er vegna þess að það er í raun og skilgreint er í skrá sem kallast villa errno.h sem er innifalinn ofar. Ef þú maður errno að raunverulega sjá skilgreiningu fyrir þetta, þú munt sjá að þetta er sérstakt alþjóðlegt breytu sem er sett með a heild búnt aðgerðir ekki skrifað með okkur, en af ​​höfundum Linux og önnur kerfi til að raunverulega setja a tala við þá breytu þegar eitthvað fer úrskeiðis þannig að þú getur heimsvísu reikna út hvað var að fara úrskeiðis. Nú niður fyrir þú munt sjá a nýr tækni kannski að nota getopt, fall sem hjálpar Þáttunarvilla stjórn lína rök þannig að við gerum ekki að standa að sóa tíma vangaveltur út hvernig á að flokka eitthvað eins 8080, eða þjóta p, eða þjóta klst til að fá hjálp. getopt gerir í raun að fyrir okkur. Sjá manninn síðunni fyrir fleiri. Næst gerum við smá villa stöðva til að tryggja að gáttarnúmer er innan tilgreint svið í sérstakur. Næst sjáum við símtal að virka byrja, sem skilgreining munum líta á í smá stund, og eins og nafn hennar gefur til kynna, þetta byrjar vefþjón. Hér höfum við kalla til aðgerð kallast merki sem segir, ef og þegar þú heyrir Control C frá hljómborð notandans, fara á undan og kalla fall sem heitir stjórnandinn sem er að gerast að lokum hreint það upp og hætta þjóninum. Hér fyrir neðan er það sem virðist vera óendanlegur lykkja, fyrsta línan sem í raun er að hringja að aðgerð sem kallast endurstilla, sem við okkur innleiða síðar í röð til að losa upp smá af alþjóðlegum ríkja okkar. Eftir það er lína af kóða sem skilyrðum er að haka aftur gildi tengdur. Nú tengd Útlit eins og a umsagnarinnar, eitthvað sem skilar satt eða ósatt. Og það virkar, en það er eitthvað sérstakt í sambandi af því að það er sljór kalla. Það mun sitja þarna og bíða þar vafranum notanda reynir að tengjast þessum vef miðlara og aðeins þá mun það return true eða ósönn svo að við getum haldið áfram til inni í þetta ef yfirlýsingu. Þegar þarna, eftir þessa aðgerð til a virka kallast þátta, sem við skrifuðum, sem flokka allar áttundir, allt af bytes koma úr vafranum til the framreiðslumaður, svo að við getum afhenda þú aftur á endanum gildi til einn af þeim alþjóðlegum breytur sem geymir allar af bæti í bara hausa sem beiðni, ekki líkaminn ef það voru í raun líkami til þess. Nú niður undir við förum að flokka þær hausum að draga hlutmengi í upplýsingum að okkur er annt um. Nánar tiltekið, á að forskrift, við fyrst vildi óska ​​línu, sem er bara að fyrsta lína sem vonandi segir eitthvað eins fá rista eða einhver leið og þá HTTP 1.1. Við erum að nota þetta samlíking af nál í Heysátan að leita að lagi stafir eða heimilisföng. Og reyndar, það er a tala af aðgerðir í dreifingu kóða okkar að þú, of, gæti fundið gagnlegt þegar að leita að tilteknum gildum. Á endanum, afrita við þessar bæti í breytu sem heitir línu, sem taka líka, höfum við úthlutað á mánudaginn með leið á breytilega stærð fylkisins. Og við erum viljandi að reyna að forðast að kalla malloc því aftur, því af Control C vera hugsanlega lögun af this program, við vil ekki að hafa þennan kóða skyndilega rofin af notanda hitting Control C, afleiðing sem er að ég gæti ekki hafa tækifæri ókeypis eitthvað sem ég hef malloced. Þannig að ég er að reyna að nota eins mikið af stafla er ég get hér. Næst upp, a heild búnt af að DOS. Forskriftin verður að útskýra á nákvæmlega hvað er gert ráð fyrir hér, en athugasemdir gefa þér vísbending um það sem framundan er. Þú þarft fyrst að sannreyna beiðni línu og ganga úr skugga um að það lítur út eins og upplýsingar málfræði, svo að segja, segir það ætti. Þú þarft þá að vinna úr eitthvað kallað fyrirspurn, er efni út eftir spurningarmerki, eins við sáum með Google dæmi okkar í framhjáhlaupi í HD breytu. Við concatenate þá saman rót vefþjóni með leið sem er í að beiðni Fyrsta lína og mynda fulla slóð skrá við viljum leita. Eftir það ætlum við að fara að ganga úr skugga um að skráin er til og er læsileg. Og þá erum við að fara að vinna úr sínum skrá eftirnafn, sem .html eða .php, eða einhver svo eftirnafn sem er á að mjög endir af the band óskað. Næsta upp er allt fullt af kóða við skrifuðum að í raun að búa PHP mynda efni fyrir þig. Í hnotskurn, þessi númer tekur í nafni skrárinnar sem þú vilt PHP til að túlka. Við gefa það með eitthvað sem kallast pípa í túlkur php. Fá aftur svar sem þó svar væri skrá sig. Og þá erum við kunnugt um að skrá er bytes, draga þá alla í einu buffer svo að við getum að lokum prenta þær út. Reyndar allir þessir kallar hér til dprintf gerir okkur kleift að prenta eitthvað kallað skráarlýsir, sem er bara heiltala sem táknar skrá. Mjög svipuð í anda, en grundvallaratriðum frábrugðin skrá stjörnu músina. Taktu eftir hvernig hægt er að nota setningafræði eins printf hér svo að ég get virk setja eitthvað eins og lengd fyrir gildi HTTP haus heitir Content-Length. Og að lokum ég notaði virka rétt til raunverulega skrifa líkamanum að beiðni. Því miður höfum við útfært aðeins stuðningur virk mynda PHP skrá. Við vildum ekki koma stuðning truflanir skrár eins gif og JPEG, og CSS og HTML skrár. Það, því miður, er eftir að þér til að bregðast við viðskiptavini tilgangi þetta að gera. Svo þar sem þú munt komast að því að það er ekki mikið innblástur innan þess blokk, en ef þér smá ofar á hvernig fórum um túlkun PHP kóða, aðgerðir sem þú munt nota eru svolítið öðruvísi. Í raun er hægt að láni Hluti af aðgerðum kannski frá réttar Heimadæmi, því í lok dags allt sem þú þarft að gera hér er þegar þú veist hvaða skrá opinn og þegar þú veist að það er svokölluð MIME tegund eða efni gerð, þú þarft að lesa í þeim bæti og einhvern veginn spýta þeim út aftur. Og nú ferð þetta aðrar aðgerðir skrárinnar. Allt fyrst er tengdur, sem einfaldlega skilar satt þegar það heyrir loksins a tenging er frá notanda. Næst er villa. Villa, á meðan, eins og fall við skrifaði að sinna öllum mismunandi 400 og 500 HTTP stöðu númer sem þú vilt kannski að senda til baka til notenda, ásamt venjulegu skilaboð. Næsta upp er álag, sérstaklega kjötmikill virka, tilgangur í lífinu er að lesa úr skrá star músina á Innihald skrá í alþjóðlegu dúa að við lýst heimsvísu ofan [? Helstu. ?] Þetta er svolítið flókið vegna þess að við verða að lesa bæti úr skrá en athuga á hverjum endurtekning hvort við höfum nú þegar högg enda skrá eða eitthvað annað hefur farið úrskeiðis. Og við notum realloc til að tryggja að hvað biðminni við erum að nota er að vaxa og vaxandi og vaxandi og alltaf að dvelja áfram í fjölda bytes að við þurfum að passa það. Handler, á meðan er fallið sem fær kallað eftir því að hafa skráð Control C sem merki að við viljum að stöðva. Tilkynning hér í dýraþjálfari að það að lokum símtöl hætta, sem að sjálfsögðu stoppar vefþjón. Og því miður, útlit er ekki útfærð. Í anda, þetta er nokkuð einföld aðgerð. Í ljósi þess að skrá eftirnafn, það þarf til að fara aftur það er svokölluð MIME tegund eða efnisgerð. Og við tilgreina í lýsingunni hvað það kortlagning verður. En þú þarft að þýða hún á endanum til c kóða. Næsta upp er álíka kjötmikill virka okkar kallað þátta, en tilgangur í lífinu er að lesa, ekki úr skrá, en frá nettengingu. Sérstaklega, lestur og þáttun HTTP beiðni sem er kominn úr vafranum til miðlara þannig að lokum getum við flokka á bara haus í beiðni lína og aftur þá til þín með því að alþjóðlegu stuðpúða sem við hættusetninga [? Helstu. ?] Endurstilla, á meðan, er fall sem við skilgreinum sem fær kallað iteratively inni helstu hvert skipti sem þú ert að tilbúinn til að byrja að hlusta fyrir nýja tengingu svo að við vitum alltaf ástand breytum okkar og svo að við höfum líka leysti allir minni sem gæti hafa verið úthlutað til fyrri nettengingu. Næstur er að byrja að fall sem við skrifuðum sem inniheldur í heild mikið af net kóða að lokum byrjar vefþjón. Síðasta upp er fall kallast stöðva, sem gerir nákvæmlega það, það stoppar vefþjón. En fyrst það frjáls upp allir minni sem enn hefur verið úthlutað. En það kallar á endanum hætta án þess þó að skila stjórn til meginvirkni okkar. Á endanum, einn af Mikilvægustu tækni við framkvæmd þessa vefur framreiðslumaður er fara til vera a hluti af réttarhald og villa, með einn vafra glugga opinn á hægri og endastöðvar á vinstri, netþjónum hugga glugga, þannig að þú Hægt er að sjá skilaboð sem eru sem birtast á skjánum. En betri enn væri þriðja glugga, annað endastöðvar, þar sem þú nota Telnet, notkun sem er gefið í sérstakur. Og Telnet er bara mjög einfalt net program sem leyfir þér að þykjast vera vafra í einum glugga á meðan að tala við aðra glugga. This vegur þú geta sjá nákvæmlega Texta skipanir sem eru að koma til baka frá miðlara á viðskiptavinur án þess að þurfa að poking um verktaki Króm verkfæri í annars clunkier tengi.