TALARE 1: Okej, låt oss ta en titta på hur personalen lösningen faktiskt fungerar, så att du få en känsla, först ut hur webbservern är tänkt att köra, och hur du kan faktiskt få det att fungera på din egen dator. Så bild det här. Jag har redan installerat i CS50 ID pset6 dot zip, per specifikationen. Jag har uppackade det, och jag har CDed i min pset6 katalog. En av de första saker du är kommer att vilja göra, i synnerhet om du har använt en CS50 IDE för att spela tillsammans med de senaste föreläsningar, varvid Vi har använt PHP i CS50 IDE, närmare bestämt använder den webbserver som heter Apache, där du kan starta och stoppa det med detta kommando, Apache 50. Först, gå vidare och skriver "Apache 50 stop" bara för att se att om du var följer med under de senaste dagarna, och du aktiverat Apache, du är stänga av den på detta sätt genom att stoppa servern. Nu, vad jag ska göra är att exakt vad spec säger åt mig att göra. Jag kommer att gå till tilda CS50 snedstreck pset6 snedstreck server, och bara trycka Enter. Du kommer att märka att jag skrek åt med viss användningsinformation, varvid Jag ska köras programmet som server med en valfri streck p och sedan en portnummer, som du kan faktiskt lämna tomt eftersom de genom standard per spec, webbservern kommer att antar att du vill ha port 8080. Under tiden kanske du minns att porten 8080 är egentligen inte standard, snarare porten 80 är den Antalet vi har pratat om att vara standard för HTTP. Tja, visar sig att CS50 IDE är helt enkelt konfigurerad på ett sätt, så att när du med en webbläsare försöker att besöka port 80 från omvärlden, det kommer att sortera av magiskt port framåt, eller omdirigera sig, till port 8080 inuti av din server själv. Så det sista här är kommandot line argument vägen till vägen. Och genom att jag bara menar, vilken mapp gör jag vill berätta servern att använda för att tjäna upp filer? Med andra ord, om användaren besöker snedstreck, vad ska han eller hon se? Nåväl, låt oss gå vidare och kör exakt det igen, denna tid som anger att jag vill roten av min webbserver att vara den offentliga katalogen, kommer att med problem set sex distributions kod. När jag slog in, kommer du att se i gult här, en påminnelse om vilken mapp jag faktiskt använder. I det här fallet är det en lång sträng, "hem ubuntu arbetsyta pset6 allmänheten." Och det sista ordet är vad som är nyckeln. Och sedan slutligen, tydligen, min server är nu lyssnar på port 8080. Vad jag nästa kommer att göra är påminna om att i CS50-ID i det övre högra hörnet på skärmen, du kommer att se en webbadress som är ide50-username.cs50.io. Och faktiskt, om du klickar det kommer du att forslas bort till en annan flik webbläsare, att det i det här fallet, kommer att visa mig innehållet av min webbservrar rötter. Med andra ord, de filer du ser här, katt dot HTML, katt dot JPEG, favicon dot ico, hello dot HTML, hello dot php, och testa, är alla av samma innehåll som du skulle se med LS inne i min offentliga katalogen. Och vad är trevligt är att om jag går vidare och klicka nu på katt dot HTML, Jag ser katt dot HTML. Och om jag klickar på katt prick JPEG eller hej dot HTML, eller ens skriva in mitt namn David, och klicka sedan på "säga hej," ser du att alla filer fungerar eftersom personalen lösning, naturligtvis, installerade i CS50-ID är fullt fungerande. Så det fungerar precis som din egen Lösningen bör på sikt fungera. Samtidigt, om vi går tillbaka till min terminal fönster, där jag körde kommandot servern, märke till vad konsolen har sagt. Jag ser här att den första begäran om att Jag fick var bokstavligen få snedstreck katt dot HTML, HTTP version 1.1. Och sedan, i grönt vad personalen lösning har gjort är det visar mig första raden av produktionen att webbservern svarar med. Med andra ord, vi har redan skrivit koden som öppnar upp den virtuella kuvert, innehåller det get begäran. Och sedan svara vi till användare men, samtidigt, ut till utgångsskärmen här HTTP 1.1, 200 OK att bekräfta vad vi lägger i returkuvertet, så att säga, att vi skickar tillbaka till användaren. Och så vad som händer här är som i terminalfönstret, Vi kör på webben server, och därför är det lyssnar efter HTTP förfrågningar på TCP-port 8080. Under tiden i min webbläsare, när jag klickar genom varje av dessa filer, eller ens ingång min namn David, och klicka sedan på Skicka, det är min webbläsare talar till webbservern. Och vad webbservern gör, då, i det terminalfönster visar mig exakt den första raden som är tagits emot i en virtuell kuvert och exakt den första raden som är att svarade med till den webbklient.