1 00:00:00,000 --> 00:00:00,200 2 00:00:00,200 --> 00:00:02,280 >> SPEAKER 1: Greit, så hva er det du konkret må gjøre? 3 00:00:02,280 --> 00:00:04,140 Vel, det viser seg det er bare fire funksjoner 4 00:00:04,140 --> 00:00:06,390 som du trenger for å implementere hvis funksjonaliteten er 5 00:00:06,390 --> 00:00:08,520 integrert i riktig drift av web-serveren, 6 00:00:08,520 --> 00:00:10,720 men alle som har atferd er svært snevert 7 00:00:10,720 --> 00:00:13,104 definert, slik at de bare gjøre stort sett én ting. 8 00:00:13,104 --> 00:00:15,270 Første du kommer trenger å gjøre er å implementere, 9 00:00:15,270 --> 00:00:17,540 pr spesifikasjonen LOOKUP funksjonen. 10 00:00:17,540 --> 00:00:20,900 Dette er en ganske enkel i funksjon Til slutt, som tar som et argument 11 00:00:20,900 --> 00:00:24,690 uansett banen til filen at brukeren ønsker å be, 12 00:00:24,690 --> 00:00:28,310 og du må svare med såkalt MIME-type, eller Content-type, 13 00:00:28,310 --> 00:00:29,200 av den filen. 14 00:00:29,200 --> 00:00:31,415 For eksempel, hvis den er en fil som, hallo dot 15 00:00:31,415 --> 00:00:37,470 HTML du kommer til å svare med en MIME type sitat unquote tekst slash HTML. 16 00:00:37,470 --> 00:00:40,920 >> Eller om det er et bilde, kan det være lurt å svare med bilde dot slash 17 00:00:40,920 --> 00:00:42,990 Jiff eller bilde slash JPEG. 18 00:00:42,990 --> 00:00:46,280 Se spesifikasjonen for de ulike filformater du trenger å oppdage. 19 00:00:46,280 --> 00:00:49,760 Men det virkelig koker ned til å ta en se på banen, at du er forbi, 20 00:00:49,760 --> 00:00:52,870 og ser på sin fil extension, de siste par tegn 21 00:00:52,870 --> 00:00:54,297 etter den etterfølgende periode eller prikk. 22 00:00:54,297 --> 00:00:57,130 Så vi skal la det til deg med noen av hint i spesifikasjonen 23 00:00:57,130 --> 00:01:00,170 å finne ut nøyaktig hvordan du skal finne at dot og filtypen 24 00:01:00,170 --> 00:01:02,840 slik at du kan gjøre mapping fra den ene til den andre. 25 00:01:02,840 --> 00:01:04,395 >> Neste er opp parse funksjon. 26 00:01:04,395 --> 00:01:06,270 Så dette er en liten mer involvert, ved at 27 00:01:06,270 --> 00:01:08,590 du trenger for å ta i at argument [uhørbart], 28 00:01:08,590 --> 00:01:12,030 det er iterated over det, karakter for karakter, eller streng av streng, 29 00:01:12,030 --> 00:01:14,660 for å være sikker at det oppfyller nøyaktig 30 00:01:14,660 --> 00:01:19,155 den formelle definisjon av den første fordringslinjen, i henhold til spesifikasjon. 31 00:01:19,155 --> 00:01:23,930 Og du trenger å laste inn absolutte sti som treng, representerer det 32 00:01:23,930 --> 00:01:26,550 noe sånt, slash hallo dot HTML. 33 00:01:26,550 --> 00:01:29,960 I mellomtiden, eventuelt, etter at banen kan være et spørsmålstegn 34 00:01:29,960 --> 00:01:32,240 og deretter en søkestrengen som tilsvarer q katter, 35 00:01:32,240 --> 00:01:35,310 eller q er lik katter Ampersand, og deretter en annen sentral verdi par. 36 00:01:35,310 --> 00:01:38,380 Så du kommer til å trenge å trå over disse tegnene, 37 00:01:38,380 --> 00:01:41,150 også, frem til første rom, for å 38 00:01:41,150 --> 00:01:47,327 for å lage en streng som lagrer innsiden av det søkestrengen selv. 39 00:01:47,327 --> 00:01:49,410 Neste, du kommer til å implementere lasten funksjon. 40 00:01:49,410 --> 00:01:52,493 Så det viser seg, hvis du ser gjennom kildekoden, som spec dirigerer, 41 00:01:52,493 --> 00:01:54,210 lasten funksjonen brukes på to steder. 42 00:01:54,210 --> 00:01:57,420 Det er enten brukes til å laste den utgang fra PHP tolk. 43 00:01:57,420 --> 00:01:59,700 Og vi skrev alle PHP-håndtering kode, 44 00:01:59,700 --> 00:02:01,840 men det trenger å bruke en funksjon som heter 45 00:02:01,840 --> 00:02:06,350 belastning, at i det vesentlige alle de leser byte av produksjonen fra PHP tolk 46 00:02:06,350 --> 00:02:08,430 inn i et stort utvalg. 47 00:02:08,430 --> 00:02:10,850 >> Det samme belastning funksjon er også brukt til å laste 48 00:02:10,850 --> 00:02:15,200 i minnet alle bytes fra en fil liker, en Jiff, eller en JPEG eller dot HTML 49 00:02:15,200 --> 00:02:16,630 fil, som brukeren har bedt om. 50 00:02:16,630 --> 00:02:21,060 Så du må bruke noen triks og verktøy fra problem satt 4 i filen IO, 51 00:02:21,060 --> 00:02:24,410 men du bør finne at relativt kjent og på en fin måte, forhåpentligvis, 52 00:02:24,410 --> 00:02:28,110 for å knytte sammen de nyere web ting med den eldre filen IO ting. 53 00:02:28,110 --> 00:02:31,490 >> Til slutt, i indeksene funksjon, alt du trenger å gjøre 54 00:02:31,490 --> 00:02:34,570 er å avgjøre hvorvidt det Det finnes noen fil effektivt 55 00:02:34,570 --> 00:02:40,430 kalt indeks dot HTML eller indeks dot PHP, innsiden av katalogen, med banen du 56 00:02:40,430 --> 00:02:41,220 er forbi. 57 00:02:41,220 --> 00:02:44,360 Opp av dette betyr at hvis brukeren gjør be om en katalog, 58 00:02:44,360 --> 00:02:47,318 vi ikke bare kommer til å vise ham eller hennes innholdet i denne katalogen, 59 00:02:47,318 --> 00:02:51,342 vi vil bokstavelig talt vise dem indeksen dot HTML, eller indeks dot PHP, som standard. 60 00:02:51,342 --> 00:02:54,300 Men det kommer til å bli overlatt til deg å finne ut, ved hjelp av noen av tipsene 61 00:02:54,300 --> 00:02:56,350 i kildekoden, det vil vi allerede har gitt deg, 62 00:02:56,350 --> 00:02:59,880 hvordan du faktisk kan sjekke hvorvidt en bestemt fil finnes 63 00:02:59,880 --> 00:03:03,380 i gjeldende katalog, slik at du kan returnere riktig respons. 64 00:03:03,380 --> 00:03:05,800 >> Så til slutt er det relativt få bytes 65 00:03:05,800 --> 00:03:09,155 at du må ta ut av Problemet satt til å implementere serverens 66 00:03:09,155 --> 00:03:10,210 ufullstendig funksjonalitet. 67 00:03:10,210 --> 00:03:13,180 Men definitivt sørge for at du vikler tankene rundt så mye av koden 68 00:03:13,180 --> 00:03:15,013 som du kan, ta trøst i at du ikke 69 00:03:15,013 --> 00:03:18,160 trenger å forstå alle laveste nivå nettverkskoden, alt 70 00:03:18,160 --> 00:03:19,834 av det laveste nivået filen IO kode. 71 00:03:19,834 --> 00:03:21,750 Virkelig, hva vi gjør med dette problemet sett 72 00:03:21,750 --> 00:03:25,670 er syntetisere det siste flere problem sett, å innføre en bit av WebLogic, 73 00:03:25,670 --> 00:03:28,802 og nettverk konsepter, slik at til syvende og sist du 74 00:03:28,802 --> 00:03:31,760 bygge noe som er egentlig ganske interessant, egentlig ganske kraftig, 75 00:03:31,760 --> 00:03:33,468 men fortsatt bruker samme byggeklosser, 76 00:03:33,468 --> 00:03:36,310 at vi har brukt på en stund.