1 00:00:00,000 --> 00:00:09,287 2 00:00:09,287 --> 00:00:11,120 DAVID MALAN: Så för detta problem set, du 3 00:00:11,120 --> 00:00:13,236 kommer att genomföra ditt egen webbserver. 4 00:00:13,236 --> 00:00:16,110 Vi har försett er med en bit av skelett kod som får dig igång, 5 00:00:16,110 --> 00:00:17,818 men i slutändan, du är kommer att avsluta det 6 00:00:17,818 --> 00:00:19,940 upp så att det faktiskt implementerar förmågan 7 00:00:19,940 --> 00:00:23,980 att tjäna upp webbsidor, både statiska innehåll och även dynamiskt innehåll, 8 00:00:23,980 --> 00:00:25,090 via PHP. 9 00:00:25,090 --> 00:00:27,380 >> Låt oss ta en titt, först genom sätt av personalen lösningen, 10 00:00:27,380 --> 00:00:29,390 på vad slutresultatet kommer att bli. 11 00:00:29,390 --> 00:00:33,420 Jag först kommer att köra tilda CS50 / pset6 / server 12 00:00:33,420 --> 00:00:36,330 och sedan dash p ange en port och sedan ett nummer 13 00:00:36,330 --> 00:00:38,410 som 8080, vilket är ganska vanligt. 14 00:00:38,410 --> 00:00:40,420 Och sedan namnet eller sökvägen till katalogen 15 00:00:40,420 --> 00:00:43,360 som jag vill använda som webben serverns rutt, där alla filer 16 00:00:43,360 --> 00:00:44,680 kommer att serveras upp från. 17 00:00:44,680 --> 00:00:46,180 Jag ska gå vidare och tryck på Retur. 18 00:00:46,180 --> 00:00:49,010 Och du ser i färgtext här att webbservern är 19 00:00:49,010 --> 00:00:52,450 använder min offentliga register och det är att lyssna på port 8080. 20 00:00:52,450 --> 00:00:55,300 Nu går vi över till en webbsida webbläsare och faktiskt försöker 21 00:00:55,300 --> 00:00:56,855 för att ansluta till denna webbplats. 22 00:00:56,855 --> 00:00:59,230 Kallelse i det nedre högra hörnet av apparaten, 23 00:00:59,230 --> 00:01:02,040 att det har varit allt denna tidpunkt en IP-adress. 24 00:01:02,040 --> 00:01:03,890 Det är en unik identifierare för din dator 25 00:01:03,890 --> 00:01:06,050 som identifierar det så att du kan komma åt den 26 00:01:06,050 --> 00:01:08,261 via webbläsare eller något antal andra verktyg. 27 00:01:08,261 --> 00:01:10,760 Så jag ska gå vidare och öppna Chrome i apparaten 28 00:01:10,760 --> 00:01:19,250 och jag kommer att besöka http://172.16.254.133 och sedan 29 00:01:19,250 --> 00:01:20,960 kolon 8080. 30 00:01:20,960 --> 00:01:24,344 Och kolon är viktigt eftersom om du behöver inte ange den porten som jag också 31 00:01:24,344 --> 00:01:26,260 specificeras på kommando line, du är faktiskt 32 00:01:26,260 --> 00:01:28,390 kommer att tala in apparatens egen webb 33 00:01:28,390 --> 00:01:30,850 server som heter Apache, som är inbyggd i den. 34 00:01:30,850 --> 00:01:33,610 Men idag vill vi fokusera på vår egen webbserver. 35 00:01:33,610 --> 00:01:36,550 >> Så nu när jag slog in, du kommer att märka att 501 36 00:01:36,550 --> 00:01:38,380 Inte Genomfört kommer upp eftersom jag har provat 37 00:01:38,380 --> 00:01:41,000 för att komma åt en katalog, inte en viss fil. 38 00:01:41,000 --> 00:01:43,980 Faktum är att om man tittar över till vänster i mitt terminalfönster, 39 00:01:43,980 --> 00:01:46,690 ser du att medan lyssnar på port 8080, 40 00:01:46,690 --> 00:01:52,600 webbservern såg en begäran om GET / HTTP / 1.1 och sedan webbservern 41 00:01:52,600 --> 00:01:56,680 svarade, som på bilden här i röd, med det 501 inte genomförs. 42 00:01:56,680 --> 00:01:59,270 >> Märkligt dock, det finns också denna andra raden i vitt, 43 00:01:59,270 --> 00:02:03,355 GET / favicon.ico HTTP / 1.1. 44 00:02:03,355 --> 00:02:06,230 Nu har jag definitivt inte gjorde det själv, men det visar sig att Chrome, 45 00:02:06,230 --> 00:02:09,910 som en hel del webbläsare, kommer förmätenhet antar att din webbplats 46 00:02:09,910 --> 00:02:13,170 är tänkt att ha en liten grafisk ikonen uppe i fliken eller nästa 47 00:02:13,170 --> 00:02:16,380 till adressfältet, som en Harvard krön eller något i den stilen, 48 00:02:16,380 --> 00:02:19,425 och så det är bara gissa efter sätt av denna standard filnamn, 49 00:02:19,425 --> 00:02:21,800 att du kanske har en fil gillar det också, vilket vi inte gör. 50 00:02:21,800 --> 00:02:24,650 Och så 404 Not Found blir spotta tillbaka. 51 00:02:24,650 --> 00:02:26,120 >> Nåväl nu, märker detta. 52 00:02:26,120 --> 00:02:29,440 Förutom att besöka denna adress inne 53 00:02:29,440 --> 00:02:34,940 av apparaten, 172.16.254.133:8080, men din IP-adress, för att vara tydlig, 54 00:02:34,940 --> 00:02:35,910 kommer att vara annorlunda. 55 00:02:35,910 --> 00:02:39,690 Lägg märke till att om jag går på min Mac eller min dator till min egen webbläsare 56 00:02:39,690 --> 00:02:43,200 och besöka samma webbadress, jag kan se från min egen föredragna browser 57 00:02:43,200 --> 00:02:46,340 oavsett om det är Chrome eller Firefox eller IE eller något annat, precis 58 00:02:46,340 --> 00:02:47,550 samma resultat. 59 00:02:47,550 --> 00:02:48,130 >> OK. 60 00:02:48,130 --> 00:02:51,820 Låt oss faktiskt besöka en URL som är känd att existera i den offentliga katalogen. 61 00:02:51,820 --> 00:02:56,890 Nämligen, den IP-adress kolon 8080 / cat.jpg. 62 00:02:56,890 --> 00:02:57,930 Enter. 63 00:02:57,930 --> 00:02:59,470 Och där, faktiskt, är lyckliga katten. 64 00:02:59,470 --> 00:03:03,340 Jag vet i förväg att det finns också en cat.HTLM fil, så om jag slog Enter, 65 00:03:03,340 --> 00:03:04,469 Jag ser att en också. 66 00:03:04,469 --> 00:03:06,260 Och märker, i Under tiden, på vänster vi 67 00:03:06,260 --> 00:03:08,176 har en hel massa gröna utgångar betyda 68 00:03:08,176 --> 00:03:13,360 att dessa var 200 statusar, vilket innebär att de var OK. 69 00:03:13,360 --> 00:03:18,294