1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:02,660 >> SPEAKER 1: Okay, lad os tage et se på, hvordan personalet løsningen faktisk 3 00:00:02,660 --> 00:00:04,760 opererer, så du få en følelse, første off 4 00:00:04,760 --> 00:00:06,930 hvordan webserveren er meningen til at køre, og hvordan du rent faktisk kan 5 00:00:06,930 --> 00:00:08,480 få det kører på din egen computer. 6 00:00:08,480 --> 00:00:09,350 Så billedet det her. 7 00:00:09,350 --> 00:00:13,640 Jeg har allerede installeret i CS50 ID pset6 dot lynlås, pr specifikationen. 8 00:00:13,640 --> 00:00:16,197 Jeg har pakket det, og jeg har CDed ind i min pset6 mappe. 9 00:00:16,197 --> 00:00:18,780 En af de første ting, du er vil ønsker at gøre, især 10 00:00:18,780 --> 00:00:22,010 Hvis du har brugt en CS50 IDE til at spille sammen med de seneste foredrag, hvor 11 00:00:22,010 --> 00:00:25,640 vi har med PHP i CS50 IDE specifikt 12 00:00:25,640 --> 00:00:29,050 ved hjælp af denne web-server kaldet Apache, hvor du kan starte og stoppe det 13 00:00:29,050 --> 00:00:30,910 med denne kommando, Apache 50. 14 00:00:30,910 --> 00:00:34,160 Først, gå videre og skrive "Apache 50 stop" 15 00:00:34,160 --> 00:00:37,370 bare for at sikre, at hvis du var følge med i de seneste dage, 16 00:00:37,370 --> 00:00:40,090 og du tændt Apache, er du slukke den på denne måde 17 00:00:40,090 --> 00:00:41,360 ved at standse serveren. 18 00:00:41,360 --> 00:00:44,110 Nu, hvad jeg har tænkt mig at gøre, er netop hvad spec fortæller mig at gøre. 19 00:00:44,110 --> 00:00:49,770 Jeg har tænkt mig at gå til Tilda CS50 skråstreg pset6 skråstreg-server, og bare trykke Enter. 20 00:00:49,770 --> 00:00:52,840 Du vil opdage, at jeg råbte på med nogle brugsoplysninger, hvorved 21 00:00:52,840 --> 00:00:54,960 Jeg skal køre programmet som serveren 22 00:00:54,960 --> 00:00:58,230 med en valgfri streg p og derefter en portnummer, som du kan faktisk 23 00:00:58,230 --> 00:01:00,720 udfyldes ikke fordi ved standard pr spec, 24 00:01:00,720 --> 00:01:04,010 webserveren vil antage, at du vil have port 8080. 25 00:01:04,010 --> 00:01:07,560 I mellemtiden kan du huske, at port 8080 er egentlig ikke standard, 26 00:01:07,560 --> 00:01:09,380 snarere port 80 er nummer vi har talt 27 00:01:09,380 --> 00:01:11,440 om at være standard for HTTP. 28 00:01:11,440 --> 00:01:14,870 Nå, viser sig, at CS50 IDE er simpelthen udformet på en sådan måde, 29 00:01:14,870 --> 00:01:18,730 sådan, at når man med en browser prøve at besøge port 80 fra omverdenen, 30 00:01:18,730 --> 00:01:22,210 det kommer til at sortere på magisk havn frem, eller omdirigere sig selv, 31 00:01:22,210 --> 00:01:25,200 til port 8080 inde af din server selv. 32 00:01:25,200 --> 00:01:29,330 >> Så det sidste, her er kommandoen line argument, stien til ruten. 33 00:01:29,330 --> 00:01:31,590 Og ved at jeg bare mener, hvad mappe gør jeg 34 00:01:31,590 --> 00:01:34,820 ønsker at fortælle serveren at bruge til at tjene op filer? 35 00:01:34,820 --> 00:01:39,030 Med andre ord, hvis brugeren besøger slash, hvad skal han eller hun ser? 36 00:01:39,030 --> 00:01:41,030 Nå, lad os gå videre og køre præcis det igen, 37 00:01:41,030 --> 00:01:43,940 denne gang at præcisere, at jeg ønsker roden af ​​min web-server 38 00:01:43,940 --> 00:01:48,210 at være den offentlige mappe, der kommer med problemet sæt seks fordeling kode. 39 00:01:48,210 --> 00:01:50,620 Når jeg ramte Enter, vil du se i gult her, en påmindelse 40 00:01:50,620 --> 00:01:52,260 om, hvilken mappe jeg faktisk bruger. 41 00:01:52,260 --> 00:01:55,870 I dette tilfælde, det er en lang streng, "home ubuntu arbejdsområde pset6 offentligheden." 42 00:01:55,870 --> 00:01:57,500 Og det sidste ord er det, der er nøglen. 43 00:01:57,500 --> 00:02:01,180 Og så endelig, tilsyneladende, min Serverens nu lytter på port 8080. 44 00:02:01,180 --> 00:02:05,860 >> Hvad jeg siden kommer til at gøre, er at minde om, at i CS50-id i øverste højre hjørne 45 00:02:05,860 --> 00:02:09,440 på skærmen, er du nødt til at se en webadresse, der er ide50-username.cs50.io. 46 00:02:09,440 --> 00:02:12,860 47 00:02:12,860 --> 00:02:15,080 Og ja, hvis du klikker at, vil du blive ført væk 48 00:02:15,080 --> 00:02:17,090 til en anden fane browser at i dette tilfælde, 49 00:02:17,090 --> 00:02:20,830 kommer til at vise mig indholdet af min web servere rødder. 50 00:02:20,830 --> 00:02:24,770 Med andre ord, de filer, du ser her, cat dot HTML, kat dot JPEG, favicon dot 51 00:02:24,770 --> 00:02:27,690 ico, hej dot HTML, hej dot php, og test, 52 00:02:27,690 --> 00:02:29,800 er alle af samme indhold, som du ville se 53 00:02:29,800 --> 00:02:32,560 med LS inde i min offentlige mappe. 54 00:02:32,560 --> 00:02:36,790 Og hvad er rart er, at hvis jeg går videre og klik nu på katten dot HTML, 55 00:02:36,790 --> 00:02:38,710 Jeg ser kat dot HTML. 56 00:02:38,710 --> 00:02:42,660 Og hvis jeg klikker på cat dot JPEG eller goddag dot HTML, 57 00:02:42,660 --> 00:02:46,650 eller endda skrive mit navn David, og derefter klikke på "sige hej" 58 00:02:46,650 --> 00:02:49,420 vil du se, at alle de filer arbejde, fordi personalet 59 00:02:49,420 --> 00:02:52,820 opløsning, naturligvis installeret i CS50-id er fuldt funktionel. 60 00:02:52,820 --> 00:02:57,090 Så det fungerer præcis som din egen Opløsningen skal i sidste ende fungere. 61 00:02:57,090 --> 00:03:00,990 >> I mellemtiden, hvis vi går tilbage til min terminal vindue, hvor jeg kørte serveren kommandoen, 62 00:03:00,990 --> 00:03:03,410 mærke til, hvad konsollen har sagt. 63 00:03:03,410 --> 00:03:07,890 Jeg ser her, at den første anmodning om, at Jeg modtog var bogstaveligt få skråstreg kat 64 00:03:07,890 --> 00:03:10,260 dot HTML, HTTP version 1.1. 65 00:03:10,260 --> 00:03:12,600 Og så, i grøn hvad personalet løsning har gjort 66 00:03:12,600 --> 00:03:14,580 er det viser mig første linje af produktionen 67 00:03:14,580 --> 00:03:16,340 at webserveren svarer med. 68 00:03:16,340 --> 00:03:18,300 Med andre ord, vi har allerede skrevet koden 69 00:03:18,300 --> 00:03:21,530 der åbner det virtuelle kuvert, indeholder, der får anmodning. 70 00:03:21,530 --> 00:03:23,980 Og så er vi reagere på den bruger, men samtidigt, 71 00:03:23,980 --> 00:03:28,780 udskrive til output skærmen her HTTP 1.1, 200 OK 72 00:03:28,780 --> 00:03:31,900 at bekræfte, hvad vi putter i tilbagevenden kuvert, så at sige, 73 00:03:31,900 --> 00:03:33,540 at vi sender tilbage til brugeren. 74 00:03:33,540 --> 00:03:36,200 >> Og så, hvad der foregår her, er at i terminalvinduet, 75 00:03:36,200 --> 00:03:38,510 Vi kører på nettet server, og derfor er det 76 00:03:38,510 --> 00:03:42,480 lytter til HTTP anmodninger på TCP-port 8080. 77 00:03:42,480 --> 00:03:44,960 I mellemtiden, i min webbrowser, da jeg klikker gennem hver 78 00:03:44,960 --> 00:03:48,480 af disse filer, eller endda input min navn David, og klik derefter på Send, 79 00:03:48,480 --> 00:03:51,827 det er min browser taler til webserveren. 80 00:03:51,827 --> 00:03:54,410 Og hvad webserveren er dette kommet, derefter, idet terminalvindue 81 00:03:54,410 --> 00:03:56,370 viser mig præcis den første linje, der er 82 00:03:56,370 --> 00:03:58,540 blevet modtaget i et virtuelt kuvert og præcis 83 00:03:58,540 --> 00:04:02,870 den første linje der bliver reagerede med til, at web-klient.