SPEAKER 1: Oké, dus wat is het u concreet moet doen? Nou, blijkt dat er's slechts vier functies die je nodig hebt om te implementeren waarvan de functionaliteit integraal de juiste werking van de webserver maar waarvan alle gedrag is erg eng gedefinieerd, zodat alleen zij doe vrij veel een ding. Het eerste wat je gaat aan hoeft te doen is uit te voeren, per de specificatie, de functie ZOEKEN. Dit is een vrij eenvoudige functie Uiteindelijk neemt dat als argument ongeacht het pad naar het bestand dat de gebruiker wil aanvragen, en je moet antwoorden met de zogenaamde MIME-type of content-type, van dat bestand. Bijvoorbeeld, als het een bestand als, hello dot HTML je gaat reageren met een MIME type citaat unquote tekst slash HTML. Of als het een afbeelding, wilt u misschien om te reageren met afbeelding dot slash Jiff of afbeelding slash JPEG. Zie de specificatie voor de verschillende bestandsformaten je nodig hebt op te sporen. Maar het is echt neer op het nemen van een kijk naar het pad, dat je verleden, en kijken naar het bestand uitbreiding, de laatste paar tekens na de afsluitende periode of stip. Dus we zullen het aan u te verlaten met een aantal van de hints in de specificatie om erachter te komen hoe te vinden dat punt en de bestandsextensie zodat je het kunt doen mapping van de ene naar de andere. Next up is de parse functie. Dus dit is een beetje meer betrokken, doordat u moet nemen in die argument [onhoorbaar] het wordt herhaald over het, karakter voor karakter, of touwtje door string, om ervoor te zorgen dat dat het voldoet precies de formele definitie van die eerste verzoek lijn, volgens de specificatie. En je moet laden in absolute pad dat substring, die vertegenwoordigt iets dergelijks, slash hallo dot HTML. Ondertussen eventueel daarna pad kan een vraagteken worden en vervolgens een query string als, q gelijk aan katten, of q gelijk katten ampersand, en dan is een andere belangrijke waarde paar. Dus je gaat nodig hebben om stap over de personages, als goed, tot het de eerste ruimte, met het oog een string die winkels te creëren binnen van het de query string zelf. Vervolgens gaat u de uitvoering van de belasting-functie. Dus het blijkt, als je kijkt door de broncode, zoals de specificatie leidt, de belasting wordt gebruikt op twee plaatsen. Het is of wordt gebruikt om het laden uitvoer van de PHP Interpreter. En schreven we al de PHP-handling code, maar het moet Gebruik een functie genaamd load, die in wezen leest alle bytes van de output van PHP Interpreter in een grote serie. Diezelfde functie load wordt ook gebruikt voor het laden in het geheugen van alle bytes van een bestand zoals een wip, of een JPEG, of dot HTML bestand, dat de gebruiker heeft gevraagd. Dus je moet een aantal trucjes gebruiken en gereedschappen uit probleem set 4 in het dossier van IO, maar je moet relatief vinden dat vertrouwd en op een leuke manier, hopelijk, samen binden de nieuwere web dingen met de oudere bestand IO spul. Tenslotte, in de indexen functie, alles wat je hoeft te doen is om te beslissen of er sprake effectief bestaat een bestand genaamd index dot HTML of index dot PHP, binnenkant van de map, waarvan het pad u zijn verleden. De bovenzijde van dit betekent dat als de gebruiker doet vragen een directory, we zijn niet alleen van plan om hem te laten zien of haar de inhoud van die map, we zullen ze letterlijk zien index dot HTML, of index dot PHP, standaard. Maar het zal worden overgelaten aan u achterhalen, met behulp van enkele van de tips in de broncode, die we hebben u al gegeven, hoe je daadwerkelijk kunt controleren of een bepaald bestand bestaat in de huidige directory, zodat U kunt het juiste antwoord terug. Dus uiteindelijk is er relatief weinig bytes die je nodig hebt uit de te nemen probleem stellen voor de uitvoering van de server onvolledige functionaliteit. Maar zeker zorg ervoor dat u wrap je geest rond als een groot deel van de code als je kunt, het nemen van comfort in dat je niet moeten alle begrijpen laagste niveau netwerk code, die alle van het laagste niveau bestand IO code. Echt, wat we doen met dit probleem set wordt het synthetiseren van de afgelopen probleem sets, de invoering van een beetje van de WebLogic, en netwerken concepten, zodat uiteindelijk je iets dat is echt heel bouwen interessant, echt heel krachtig, maar nog steeds met behulp van de Dezelfde bouwstenen die we hebben gebruikt voor bepaalde tijd.