1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:02,660 >> TALARE 1: Okej, låt oss ta en titta på hur personalen lösningen faktiskt 3 00:00:02,660 --> 00:00:04,760 fungerar, så att du få en känsla, först ut 4 00:00:04,760 --> 00:00:06,930 hur webbservern är tänkt att köra, och hur du kan faktiskt 5 00:00:06,930 --> 00:00:08,480 få det att fungera på din egen dator. 6 00:00:08,480 --> 00:00:09,350 Så bild det här. 7 00:00:09,350 --> 00:00:13,640 Jag har redan installerat i CS50 ID pset6 dot zip, per specifikationen. 8 00:00:13,640 --> 00:00:16,197 Jag har uppackade det, och jag har CDed i min pset6 katalog. 9 00:00:16,197 --> 00:00:18,780 En av de första saker du är kommer att vilja göra, i synnerhet 10 00:00:18,780 --> 00:00:22,010 om du har använt en CS50 IDE för att spela tillsammans med de senaste föreläsningar, varvid 11 00:00:22,010 --> 00:00:25,640 Vi har använt PHP i CS50 IDE, närmare bestämt 12 00:00:25,640 --> 00:00:29,050 använder den webbserver som heter Apache, där du kan starta och stoppa det 13 00:00:29,050 --> 00:00:30,910 med detta kommando, Apache 50. 14 00:00:30,910 --> 00:00:34,160 Först, gå vidare och skriver "Apache 50 stop" 15 00:00:34,160 --> 00:00:37,370 bara för att se att om du var följer med under de senaste dagarna, 16 00:00:37,370 --> 00:00:40,090 och du aktiverat Apache, du är stänga av den på detta sätt 17 00:00:40,090 --> 00:00:41,360 genom att stoppa servern. 18 00:00:41,360 --> 00:00:44,110 Nu, vad jag ska göra är att exakt vad spec säger åt mig att göra. 19 00:00:44,110 --> 00:00:49,770 Jag kommer att gå till tilda CS50 snedstreck pset6 snedstreck server, och bara trycka Enter. 20 00:00:49,770 --> 00:00:52,840 Du kommer att märka att jag skrek åt med viss användningsinformation, varvid 21 00:00:52,840 --> 00:00:54,960 Jag ska köras programmet som server 22 00:00:54,960 --> 00:00:58,230 med en valfri streck p och sedan en portnummer, som du kan faktiskt 23 00:00:58,230 --> 00:01:00,720 lämna tomt eftersom de genom standard per spec, 24 00:01:00,720 --> 00:01:04,010 webbservern kommer att antar att du vill ha port 8080. 25 00:01:04,010 --> 00:01:07,560 Under tiden kanske du minns att porten 8080 är egentligen inte standard, 26 00:01:07,560 --> 00:01:09,380 snarare porten 80 är den Antalet vi har pratat 27 00:01:09,380 --> 00:01:11,440 om att vara standard för HTTP. 28 00:01:11,440 --> 00:01:14,870 Tja, visar sig att CS50 IDE är helt enkelt konfigurerad på ett sätt, 29 00:01:14,870 --> 00:01:18,730 så att när du med en webbläsare försöker att besöka port 80 från omvärlden, 30 00:01:18,730 --> 00:01:22,210 det kommer att sortera av magiskt port framåt, eller omdirigera sig, 31 00:01:22,210 --> 00:01:25,200 till port 8080 inuti av din server själv. 32 00:01:25,200 --> 00:01:29,330 >> Så det sista här är kommandot line argument vägen till vägen. 33 00:01:29,330 --> 00:01:31,590 Och genom att jag bara menar, vilken mapp gör jag 34 00:01:31,590 --> 00:01:34,820 vill berätta servern att använda för att tjäna upp filer? 35 00:01:34,820 --> 00:01:39,030 Med andra ord, om användaren besöker snedstreck, vad ska han eller hon se? 36 00:01:39,030 --> 00:01:41,030 Nåväl, låt oss gå vidare och kör exakt det igen, 37 00:01:41,030 --> 00:01:43,940 denna tid som anger att jag vill roten av min webbserver 38 00:01:43,940 --> 00:01:48,210 att vara den offentliga katalogen, kommer att med problem set sex distributions kod. 39 00:01:48,210 --> 00:01:50,620 När jag slog in, kommer du att se i gult här, en påminnelse 40 00:01:50,620 --> 00:01:52,260 om vilken mapp jag faktiskt använder. 41 00:01:52,260 --> 00:01:55,870 I det här fallet är det en lång sträng, "hem ubuntu arbetsyta pset6 allmänheten." 42 00:01:55,870 --> 00:01:57,500 Och det sista ordet är vad som är nyckeln. 43 00:01:57,500 --> 00:02:01,180 Och sedan slutligen, tydligen, min server är nu lyssnar på port 8080. 44 00:02:01,180 --> 00:02:05,860 >> Vad jag nästa kommer att göra är påminna om att i CS50-ID i det övre högra hörnet 45 00:02:05,860 --> 00:02:09,440 på skärmen, du kommer att se en webbadress som är ide50-username.cs50.io. 46 00:02:09,440 --> 00:02:12,860 47 00:02:12,860 --> 00:02:15,080 Och faktiskt, om du klickar det kommer du att forslas bort 48 00:02:15,080 --> 00:02:17,090 till en annan flik webbläsare, att det i det här fallet, 49 00:02:17,090 --> 00:02:20,830 kommer att visa mig innehållet av min webbservrar rötter. 50 00:02:20,830 --> 00:02:24,770 Med andra ord, de filer du ser här, katt dot HTML, katt dot JPEG, favicon dot 51 00:02:24,770 --> 00:02:27,690 ico, hello dot HTML, hello dot php, och testa, 52 00:02:27,690 --> 00:02:29,800 är alla av samma innehåll som du skulle se 53 00:02:29,800 --> 00:02:32,560 med LS inne i min offentliga katalogen. 54 00:02:32,560 --> 00:02:36,790 Och vad är trevligt är att om jag går vidare och klicka nu på katt dot HTML, 55 00:02:36,790 --> 00:02:38,710 Jag ser katt dot HTML. 56 00:02:38,710 --> 00:02:42,660 Och om jag klickar på katt prick JPEG eller hej dot HTML, 57 00:02:42,660 --> 00:02:46,650 eller ens skriva in mitt namn David, och klicka sedan på "säga hej," 58 00:02:46,650 --> 00:02:49,420 ser du att alla filer fungerar eftersom personalen 59 00:02:49,420 --> 00:02:52,820 lösning, naturligtvis, installerade i CS50-ID är fullt fungerande. 60 00:02:52,820 --> 00:02:57,090 Så det fungerar precis som din egen Lösningen bör på sikt fungera. 61 00:02:57,090 --> 00:03:00,990 >> Samtidigt, om vi går tillbaka till min terminal fönster, där jag körde kommandot servern, 62 00:03:00,990 --> 00:03:03,410 märke till vad konsolen har sagt. 63 00:03:03,410 --> 00:03:07,890 Jag ser här att den första begäran om att Jag fick var bokstavligen få snedstreck katt 64 00:03:07,890 --> 00:03:10,260 dot HTML, HTTP version 1.1. 65 00:03:10,260 --> 00:03:12,600 Och sedan, i grönt vad personalen lösning har gjort 66 00:03:12,600 --> 00:03:14,580 är det visar mig första raden av produktionen 67 00:03:14,580 --> 00:03:16,340 att webbservern svarar med. 68 00:03:16,340 --> 00:03:18,300 Med andra ord, vi har redan skrivit koden 69 00:03:18,300 --> 00:03:21,530 som öppnar upp den virtuella kuvert, innehåller det get begäran. 70 00:03:21,530 --> 00:03:23,980 Och sedan svara vi till användare men, samtidigt, 71 00:03:23,980 --> 00:03:28,780 ut till utgångsskärmen här HTTP 1.1, 200 OK 72 00:03:28,780 --> 00:03:31,900 att bekräfta vad vi lägger i returkuvertet, så att säga, 73 00:03:31,900 --> 00:03:33,540 att vi skickar tillbaka till användaren. 74 00:03:33,540 --> 00:03:36,200 >> Och så vad som händer här är som i terminalfönstret, 75 00:03:36,200 --> 00:03:38,510 Vi kör på webben server, och därför är det 76 00:03:38,510 --> 00:03:42,480 lyssnar efter HTTP förfrågningar på TCP-port 8080. 77 00:03:42,480 --> 00:03:44,960 Under tiden i min webbläsare, när jag klickar genom varje 78 00:03:44,960 --> 00:03:48,480 av dessa filer, eller ens ingång min namn David, och klicka sedan på Skicka, 79 00:03:48,480 --> 00:03:51,827 det är min webbläsare talar till webbservern. 80 00:03:51,827 --> 00:03:54,410 Och vad webbservern gör, då, i det terminalfönster 81 00:03:54,410 --> 00:03:56,370 visar mig exakt den första raden som är 82 00:03:56,370 --> 00:03:58,540 tagits emot i en virtuell kuvert och exakt 83 00:03:58,540 --> 00:04:02,870 den första raden som är att svarade med till den webbklient.