>> 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.