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.