SIARADWR: Nawr gadewch i ni plymio i mewn i'r cod dosbarthu
ac edrychwch ar y cyd-destun y mae'r cod ydych yn ysgrifennu
yn mynd i fod yn gweithredu.
Ar ddiwedd y dydd, ydych yn mynd i weithredu
y cyfan y gweinydd gwe.
Ond rydym wedi darparu chi gyda'r sgerbwd
cod sy'n cael rhywfaint o ymarferoldeb, yn arbennig yn ymwneud â rhwydweithio.
Gadewch i gymryd golwg.
>> Felly, hyd yma tuag at y top o'r ffeil yn griw
o nodwedd profi gofynion macro.
Nawr mae hyn yn unig yn nodwedd o c, lle yn ôl griw o dudalennau dyn
rhaid i chi ddiffinio rhai o'r cysonion hyn i fod yn wir
neu y gellir ei eilrifau penodol fel y eich bod yn cael mynediad i swyddogaethau penodol.
Fel arall byddant yn cael eu heb ei ddatgan ac ni fyddwch yn cael mynediad.
Felly, yr wyf wedi gwneud hyn trwy o ddarllen y tudalennau dyn.
Yn awr i lawr isod, yn llinellau 15 drwy 17, rydym yn
cael criw cyfan o derfynau datgan.
>> Ac rydym wedi benthyg y rhain gan gweinydd gwe poblogaidd o'r enw Apache.
Ac mae'r rhain yn unig niferoedd sy'n mynd
i gapio cyfanswm nifer o bytes a ganiateir
mewn gwahanol gyd-destunau ar gyfer y cais HTTP bod porwr chaniateir i anfon 'm.
Nesaf, rydym yn diffinio octets.
Nawr mae wythawd yn unig yw ffordd ffansi o ddweud beit, neu wyth ddarnau.
Troi allan mewn a fu yn beit oedd nid o reidrwydd wyth did,
felly wythawd yn wyth darnau bob amser.
Felly, yn yr achos hwn rydym wedi ei fabwysiadu beth sy'n gyffredin yn y rhwydweithio
byd ffonio wyth bytes mae wythawd.
>> Yma rwyf wedi nodi y bydd octets fod yn 512, fel bod yn debyg mewn gwaith fforensig
pan fyddwn yn darllen griw o bytes ar y tro, yma hefyd,
rydym yn mynd i ddarllen criw o octets ar y tro.
Nesaf criw cyfan o ffeiliau pennawd.
Sut oedd yr wyf yn gwybod i gynnwys y rhain?
Wel wyf yn syml yn darllen y dyn Tudalennau ar gyfer nifer o swyddogaethau
y byddwn yn ei ddefnyddio yn y dosbarthiad hwn cod ac yn cynnwys yn y rhai
Cefais fy cyfarwyddyd i.
>> Ac yn awr mae gennym y math data.
Rydym wedi datgan wythawd i fod yn torgoch.
A byddwn yn gweld yn nes ymlaen mai dyna a ddefnyddir drwy gydol y cod.
Ac rydym wedi datgan criw cyfan o prototeipiau,
a byddwn yn cerdded yn gyflym drwy pob un o'r swyddogaethau hynny.
Yn olaf, ac efallai y rhan fwyaf o bwysig i gadw mewn
meddwl ar hyn o y stori, yw bod
, mewn gwirionedd yn ei gyfanrwydd criw o newidynnau byd-eang
ar frig y ffeil, gwraidd, Plant and, SFD, cais, ffeiliau a chorff.
>> Yn awr yn gyffredinol, gan ddefnyddio cymaint o fyd-eang newidynnau, neu newidynnau byd-eang o gwbl,
Nid yw'r arfer ôl.
Ond mae'n troi allan ein bod hefyd yn defnyddio techneg a elwir yn trin signal yn ddiweddarach
yn y cod, sy'n ein galluogi i canfod pan fydd y defnyddiwr yn taro rhywbeth
fel CTRL C a caea i lawr y gweinydd osgeiddig.
Ac er mwyn gwneud hynny osgeiddig ac mewn gwirionedd yn rhad ac am ddim i fyny cof,
mae angen i ni gael mynediad at newidynnau byd-eang hyn.
>> Ac yn awr gadewch i ni edrych ar brif, a oedd yn gyrru y cyfan o'r rhaglen hon.
Yn gyntaf, ar y brig dyma ni cael newidyn rhif gwall
sy'n ymddangos i beidio â fod â math, ond mae hynny'n
am ei fod mewn gwirionedd a ddiffinnir yn ffeil o'r enw
errno.h gwall sy'n yn cael ei gynnwys i fyny uwch.
Os byddwch yn ddyn errno i mewn gwirionedd gweler y diffiniad ar gyfer y peth hyn,
byddwch yn gweld bod hyn yn newidyn byd-eang arbennig sy'n
yn cael ei osod gan criw cyfan o swyddogaethau nad ysgrifenedig
gennym ni, ond gan yr awduron o Linux a systemau eraill i osod mewn gwirionedd
mae nifer i'r newidyn pan fydd rhywbeth yn mynd o'i le fel y gallwch yn fyd-eang
chyfrif i maes yr hyn a wnaeth fynd o'i le.
>> Nawr lawr isod fe welwch newydd techneg efallai drwy ddefnyddio getopt,
swyddogaeth sy'n helpu gorchymyn dosrannu dadleuon llinell fel nad ydym yn ei wneud
rhaid i drafferthu amser gwastraffu figuring gwybod sut i gramadegu rhywbeth fel 8080,
neu dash p, neu dash h i gael help.
getopt ei hanfod yn gwneud hynny i ni.
Gweler y dudalen dyn am fwy.
>> Nesaf, rydym yn gwneud ychydig o gamgymeriadau gwirio i wneud yn siŵr
bod y rhif porth o fewn yr ystod a nodir yn y fanyleb.
Nesaf, rydym yn gweld galwad i'r swyddogaeth cychwyn, y mae ei diffiniad yr ydym fe
yn edrych ar yn y man, ac fel ei enw yn awgrymu, mae hyn yn cychwyn y gweinydd gwe.
Yma mae gennym alwad i swyddogaeth Gelwir signal sy'n dweud,
os a phan fyddwch yn clywed Rheoli C o bysellfwrdd y defnyddiwr, mynd yn ei flaen a galw
yn trin swyddogaeth o'r enw sy'n mynd pethau i'w glanhau yn y pen draw i fyny ac yn rhoi'r gorau i
y gweinydd.
>> Isod dyna yr hyn sy'n ymddangos i fod yn dolen ddiddiwedd, y llinell gyntaf o'r rhain
effeithiol yn galw i swyddogaeth o'r enw
ailosod, yr ydym ni ein hunain gweithredu yn nes ymlaen er mwyn
i ryddhau rhai o'n wladwriaethau byd-eang.
Ar ôl hynny yn llinell o cod sy'n amodol
yn gwirio'r ffurflen gwerth cysylltiedig.
Edrych Nawr cysylltu fel predicate, rhywbeth sy'n dychwelyd wir neu'n anwir.
Ac mae'n ei wneud, ond mae rhywbeth arbennig yn gysylltiedig
yn ei fod yn alwad blocio.
Bydd yn eistedd yno ac aros hyd nes y porwr y defnyddiwr
yn ceisio cysylltu â'r we hon gweinyddwr a dim ond wedyn bydd yn
dychwelyd wir neu'n anwir fel ein bod yn symud ymlaen i du mewn hyn os y datganiad.
>> Unwaith yno, yn sylwi ar y swyddogaeth hon i swyddogaeth a elwir yn dosrannu, yr ydym yn ysgrifennu,
sy'n parses pob un o'r octets, pob o'r bytes dod o borwr
at 'r gweinyddwr, fel y gallwn llaw chi yn ôl yn y pen draw mae gwerth at un
o newidynnau byd-eang hynny y storfeydd pob un o'r bytes mewn dim ond
y penawdau o hynny cais, nid oedd y corff
os oedd mewn gwirionedd corff iddo.
>> Nawr lawr islaw i ni ddechrau gramadegu penawdau hynny i dynnu
is-set o'r wybodaeth ein bod yn poeni am.
Yn benodol, fesul y fanyleb, rydym yn gyntaf
yn awyddus i ofyn am linell, sef dim ond bod llinell gyntaf iawn bod
gobeithio, yn dweud rhywbeth fel get slaes neu ryw llwybr ac yna HTTP 1.1.
Rydym yn defnyddio trosiad hwn o nodwydd mewn tas wair
i chwilio am neilltuol chars neu gyfeiriadau.
Ac yn wir, mae yna nifer o swyddogaethau yn ein cod dosbarthu
eich bod chi, hefyd, efallai yn ddefnyddiol wrth chwilio am werthoedd penodol.
>> Yn y pen draw, rydym yn copïo'r bytes hyn mewn llinell amrywiol o'r enw,
caiff yr hysbysiad, hefyd, rydym wedi dyrannu ar y pentwr
drwy gyfrwng amrywiaeth maint ddynamig.
Ac rydym yn ceisio fwriadol i osgoi galw malloc
oherwydd eto, oherwydd Rheoli C yn cael
un o nodweddion posibl y rhaglen hon, rydym yn nad ydych am i gael y cod hwn yn sydyn
torri ar draws y taro defnyddiwr Rheoli C, y canlyniad o'r rhain
yw y gallai nad wyf yn cael y cyfle am rywbeth am ddim Rwyf wedi malloced.
Felly rwy'n ceisio defnyddio cymaint o'r pentwr yw gallaf yma.
>> Nesaf i fyny, criw cyfan o i'r dos.
Bydd y fanyleb yn draethu'n ar yn union beth sy'n ddisgwyliedig yma,
ond mae'r sylwadau yn rhoi i chi awgrym o hyn sydd o'n blaenau.
Rydych angen yn gyntaf i ddilysu'r llinell cais
a gwneud yn siŵr ei fod yn edrych fel y manylebau gramadeg, fel petai,
Dywed y dylai.
Yna, mae angen i chi dynnu rhywbeth Gelwir yr ymholiad, mae'r pethau allan
ar ôl marc cwestiwn, fel gwelsom gyda'n enghraifft Google
wrth fynd heibio mewn paramedr HD.
Yna byddwn yn concatenate gyda'n gilydd gwraidd y gweinydd gwe
gyda'r llwybr dyna mewn y llinell gyntaf cais
ac yn ffurfio llwybr llawn y ffeil yr ydym am edrych am.
>> Wedi hynny, rydym yn mynd i wneud yn siŵr bod y ffeil yn bodoli ac yn ddarllenadwy.
Ac yna rydym yn mynd i dynnu ei estyniad ffeil, gall y .html neu'r .php,
neu ryw estyniad o'r fath dyna yn y ddiwedd y llinyn y gofynnwyd amdani.
Nesaf i fyny yn ei gyfanrwydd criw o cod ysgrifenasom
i mewn gwirionedd yn cynhyrchu PHP cynnwys ar gyfer chi a gynhyrchir.
Yn gryno, mae hwn cod cymryd yn yr enw
o'r ffeil rydych am PHP i ddehongli.
Rydym yn ei throsglwyddo gan rywbeth o'r enw pibell i mewn i cyfieithydd PHP yn.
Cael yn ôl yr ymateb fel pe Roedd yr ymateb ffeil ei hun.
Ac yna rydym yn ailadrodd dros y ffeil yn bytes, i gyd tynnu i mewn i un byffer
fel y gallwn yn y pen draw argraffwch nhw allan.
>> Yn wir, pob un o'r rhain yn galw yma i dprintf
yn ein galluogi i argraffu rhywbeth a elwir yn disgrifydd ffeil, a oedd yn
yn unig yw gyfanrif sy'n cynrychioli ffeil.
Debyg iawn o ran ysbryd, ond sylfaenol wahanol o ffeil
pwyntydd seren.
Sylwch sut y gallwch ddefnyddio cystrawen yn hoffi printf yma fel y gallaf ddeinamig
mewnosod rhywbeth fel hyd am y gwerth o pennawd HTTP
Gelwir Cynnwys-Hyd.
Ac yn y pen draw Defnyddiais y hawl i ysgrifennu mewn gwirionedd yn swyddogaeth
y corff i'r cais.
>> Yn anffodus, dim ond rhoi ar waith cymorth ar gyfer ddynamig
ffeiliau PHP a gynhyrchir.
Doedden ni ddim yn gweithredu cymorth ar gyfer ffeiliau statig fel gifs, a jpegs,
a CSS a HTML ffeiliau.
Mae hynny, yn anffodus, yn cael ei adael i chi i ymateb i'r pwrpas cleient
hyn i'w wneud.
Felly, i mewn 'na fe welwch fod yna Nid yw llawer o ysbrydoliaeth o fewn y bloc,
ond os ydych ychydig yn uwch i fyny ar sut aethom am ddehongli cod PHP,
swyddogaethau y byddwch yn ei ddefnyddio ychydig yn wahanol.
>> Yn wir, y gallwch ei fenthyg rhai o'r swyddogaethau
efallai o'r fforensig set problem, oherwydd
ar ddiwedd y dydd i gyd angen i chi wneud yma yw unwaith y byddwch yn gwybod pa ffeil agored
ac ar ôl i chi ei wybod ei fod yn hyn a elwir yn Math MIME neu fath gynnwys,
mae angen i chi ddarllen yn y bytes y rhai ac yn poeri rhywsut yn ôl allan.
>> Ac yn awr ar daith o gwmpas hyn swyddogaethau eraill ffeil yn.
Up gyntaf yn gysylltiedig, sydd yn syml yn dychwelyd gwir
pan fydd yn clywed yn olaf cysylltiad gan ddefnyddiwr.
Nesaf i fyny yw gwall.
Gwall, yn y cyfamser, fel swyddogaeth yr ydym Ysgrifennodd i ymdrin â phob un o'r gwahanol 400
a statws HTTP 500 Codau efallai y byddwch am
i'w hanfon yn ôl at y defnyddiwr, ynghyd â neges safonol.
>> Nesaf i fyny yn llwyth, sef arbennig swyddogaeth swmpus, y mae eu pwrpas mewn bywyd
yw darllen o ffeil seren pwyntydd y cynnwys ffeil i mewn i byffer byd-eang
ein bod yn datgan yn fyd-eang uchod [? prif. ?]
Mae hwn yn dipyn o gymhleth oherwydd ein rhaid i ddarllen y bytes o'r ffeil
ond edrychwch ar bob iteriad a ydym i wedi eisoes
taro diwedd y ffeil neu rhywbeth arall wedi mynd o'i le.
Ac rydym yn defnyddio realloc i wneud yn siŵr bod beth bynnag byffer rydym yn ei ddefnyddio yn tyfu
ac yn tyfu ac yn tyfu a bob amser yn aros o flaen y nifer o bytes
bod angen i ni ffitio i mewn 'na.
Triniwr, yn y cyfamser, mae y swyddogaeth sy'n cael
Gelwir drwy gael cofrestru Rheoli C fel arwydd
ein bod am i ryng-gipio.
Hysbysiad yma yn trafodwr ei fod yn y pen draw
galwadau stopio, sydd wrth gwrs yn atal y gweinydd gwe.
Ac yn anffodus, am-edrych Nid yw yn cael ei weithredu.
Yn yr ysbryd, mae hwn yn swyddogaeth yn weddol syml.
O ystyried estyniad ffeil, mae angen i ddychwelyd ei fod yn MIME hyn a elwir yn
math neu fath gynnwys.
Ac rydym yn nodi yn y fanyleb hyn y mae'n rhaid mapio hwnnw fod.
Ond mae angen i chi ei gyfieithu yn y pen draw i c cod.
>> Nesaf i fyny yw ein swyddogaeth yn yr un modd swmpus Gelwir dosrannu, y mae eu pwrpas mewn bywyd
yw darllen, nid o ffeil, ond o gysylltiad rhwydwaith.
Yn benodol, darllen ac dosrannu y Cais HTTP sydd wedi dod o borwr
at y gweinydd fel bod yn y pen draw, gallwn dosrannu
sef dim ond y penawdau yn y cais llinell a dychwelyd y rhai i chi
drwy gyfrwng byffer byd-eang sy'n rydym yn datgan uchod [? prif. ?]
>> Ailosod, yn y cyfamser, yn swyddogaeth yr ydym yn diffinio
sy'n cael elwir ailadroddol y tu mewn o brif bob tro y byddwch chi ar fin
yn barod i ddechrau gwrando am gysylltiad newydd
fel ein bod bob amser yn gwybod cyflwr ein newidynnau
ac er mwyn i ni i wedi hefyd rhyddhau unrhyw cof bod
gellid bod wedi dyrannu ar gyfer gysylltiad rhwydwaith blaenorol.
Nesaf i fyny yw cychwyn, mae'r swyddogaeth yr ydym yn ysgrifennu
sy'n cynnwys cyfan llawer o cod rhwydweithio
yn y pen draw yn dechrau y gweinydd gwe.
>> I fyny olaf yw swyddogaeth Gelwir stop, sy'n
gwneud yn union hynny, mae'n yn atal y gweinydd gwe.
Ond yn gyntaf mae'n rhyddhau unrhyw cof sy'n parhau wedi'i ddyrannu.
Ond yn y pen draw yn galw allanfa heb hyd yn oed yn dychwelyd rheolaeth
at ein prif swyddogaeth.
Yn y pen draw, un o'r y rhan fwyaf o dechnegau pwysig
wrth weithredu hyn weinydd y we yn yn mynd i fod yn dipyn o brofi a methu,
cael un porwr ar agor ffenestr ar y dde ac terfynell ffenestr ar
i'r chwith, y consol gweinyddwyr ffenestr, er mwyn i chi
yn gallu gweld y negeseuon sy'n cael eu cael ei arddangos ar y sgrin.
>> Ond byddai yn well yn dal i fod un rhan o dair ffenestri, ail ffenestr terfynell,
lle y byddwch yn eu defnyddio Telnet, mae'r defnydd y mae ei ragnodi yn y fanyleb.
Ac Telnet yn unig yw iawn rhaglen rhwydwaith syml
sy'n gadael i chi esgus i fod yn porwr mewn un ffenestr
tra'n siarad â'r ffenestr arall.
Fel hyn, gallwch weld union yr gorchmynion testunol
sydd yn dod yn ôl o'r gweinydd i gleient
heb orfod procio o gwmpas datblygwr crôm yn
offer mewn fel arall rhyngwyneb clunkier.