>> SPEAKER 1: Greit, så hva er det du konkret må gjøre?
Vel, det viser seg det er bare fire funksjoner
som du trenger for å implementere hvis funksjonaliteten er
integrert i riktig drift av web-serveren,
men alle som har atferd er svært snevert
definert, slik at de bare gjøre stort sett én ting.
Første du kommer trenger å gjøre er å implementere,
pr spesifikasjonen LOOKUP funksjonen.
Dette er en ganske enkel i funksjon Til slutt, som tar som et argument
uansett banen til filen at brukeren ønsker å be,
og du må svare med såkalt MIME-type, eller Content-type,
av den filen.
For eksempel, hvis den er en fil som, hallo dot
HTML du kommer til å svare med en MIME type sitat unquote tekst slash HTML.
>> Eller om det er et bilde, kan det være lurt å svare med bilde dot slash
Jiff eller bilde slash JPEG.
Se spesifikasjonen for de ulike filformater du trenger å oppdage.
Men det virkelig koker ned til å ta en se på banen, at du er forbi,
og ser på sin fil extension, de siste par tegn
etter den etterfølgende periode eller prikk.
Så vi skal la det til deg med noen av hint i spesifikasjonen
å finne ut nøyaktig hvordan du skal finne at dot og filtypen
slik at du kan gjøre mapping fra den ene til den andre.
>> Neste er opp parse funksjon.
Så dette er en liten mer involvert, ved at
du trenger for å ta i at argument [uhørbart],
det er iterated over det, karakter for karakter, eller streng av streng,
for å være sikker at det oppfyller nøyaktig
den formelle definisjon av den første fordringslinjen, i henhold til spesifikasjon.
Og du trenger å laste inn absolutte sti som treng, representerer det
noe sånt, slash hallo dot HTML.
I mellomtiden, eventuelt, etter at banen kan være et spørsmålstegn
og deretter en søkestrengen som tilsvarer q katter,
eller q er lik katter Ampersand, og deretter en annen sentral verdi par.
Så du kommer til å trenge å trå over disse tegnene,
også, frem til første rom, for å
for å lage en streng som lagrer innsiden av det søkestrengen selv.
Neste, du kommer til å implementere lasten funksjon.
Så det viser seg, hvis du ser gjennom kildekoden, som spec dirigerer,
lasten funksjonen brukes på to steder.
Det er enten brukes til å laste den utgang fra PHP tolk.
Og vi skrev alle PHP-håndtering kode,
men det trenger å bruke en funksjon som heter
belastning, at i det vesentlige alle de leser byte av produksjonen fra PHP tolk
inn i et stort utvalg.
>> Det samme belastning funksjon er også brukt til å laste
i minnet alle bytes fra en fil liker, en Jiff, eller en JPEG eller dot HTML
fil, som brukeren har bedt om.
Så du må bruke noen triks og verktøy fra problem satt 4 i filen IO,
men du bør finne at relativt kjent og på en fin måte, forhåpentligvis,
for å knytte sammen de nyere web ting med den eldre filen IO ting.
>> Til slutt, i indeksene funksjon, alt du trenger å gjøre
er å avgjøre hvorvidt det Det finnes noen fil effektivt
kalt indeks dot HTML eller indeks dot PHP, innsiden av katalogen, med banen du
er forbi.
Opp av dette betyr at hvis brukeren gjør be om en katalog,
vi ikke bare kommer til å vise ham eller hennes innholdet i denne katalogen,
vi vil bokstavelig talt vise dem indeksen dot HTML, eller indeks dot PHP, som standard.
Men det kommer til å bli overlatt til deg å finne ut, ved hjelp av noen av tipsene
i kildekoden, det vil vi allerede har gitt deg,
hvordan du faktisk kan sjekke hvorvidt en bestemt fil finnes
i gjeldende katalog, slik at du kan returnere riktig respons.
>> Så til slutt er det relativt få bytes
at du må ta ut av Problemet satt til å implementere serverens
ufullstendig funksjonalitet.
Men definitivt sørge for at du vikler tankene rundt så mye av koden
som du kan, ta trøst i at du ikke
trenger å forstå alle laveste nivå nettverkskoden, alt
av det laveste nivået filen IO kode.
Virkelig, hva vi gjør med dette problemet sett
er syntetisere det siste flere problem sett, å innføre en bit av WebLogic,
og nettverk konsepter, slik at til syvende og sist du
bygge noe som er egentlig ganske interessant, egentlig ganske kraftig,
men fortsatt bruker samme byggeklosser,
at vi har brukt på en stund.