1 00:00:00,000 --> 00:00:01,390 2 00:00:01,390 --> 00:00:04,890 >> [Musik zu spielen] 3 00:00:04,890 --> 00:00:10,955 4 00:00:10,955 --> 00:00:12,580 DAVID J MALAN: All right, willkommen zurück. 5 00:00:12,580 --> 00:00:13,600 Dies ist CS50. 6 00:00:13,600 --> 00:00:15,540 Dies ist das Ende der sieben Wochen. 7 00:00:15,540 --> 00:00:18,180 Und es ist das Ende dieser Schnitzel Jagd aus Problem eingestellt vier 8 00:00:18,180 --> 00:00:19,220 Sie erinnern sich vielleicht an. 9 00:00:19,220 --> 00:00:21,650 Nach der Wiederherstellung alle diese JPEGs von Personal, 10 00:00:21,650 --> 00:00:24,820 Sie wurden aufgefordert, wenn Sie möchten, um sich fotografieren mit so vielen 11 00:00:24,820 --> 00:00:25,981 dieser Leute wie Sie können. 12 00:00:25,981 --> 00:00:28,480 Wir haben eine ganze Reihe von Einsendungen in den letzten Wochen 13 00:00:28,480 --> 00:00:32,980 ja durchaus ein paar kurz vor Mittag Heute sind einige von denen, die hier, 14 00:00:32,980 --> 00:00:37,670 hier gefangen in-- like-- Annenberg sieht Halle an der Bürozeiten hier 15 00:00:37,670 --> 00:00:39,530 in Lowell Haus mit Nick. 16 00:00:39,530 --> 00:00:41,750 Hier ist Ramon ist am Telefon erwischt. 17 00:00:41,750 --> 00:00:43,870 Das war zu einer CS50 Mittagessen. 18 00:00:43,870 --> 00:00:46,840 Dies war Jason Skypen mit ein kreativer Klassenkamerad, 19 00:00:46,840 --> 00:00:48,280 die ihn auf diese Weise angerufen. 20 00:00:48,280 --> 00:00:49,690 Wir wissen nicht, was das war. 21 00:00:49,690 --> 00:00:51,940 >> [Gelächter] 22 00:00:51,940 --> 00:00:54,570 >> DAVID J MALAN: Aber das ist ein Gigabyte wert. 23 00:00:54,570 --> 00:00:56,960 Hier ist Chang, der lief buchstäblich von der Bühne 24 00:00:56,960 --> 00:01:00,480 um zu vermeiden, dass sie fotografiert ein Tag, aber wurde schließlich gefangen. 25 00:01:00,480 --> 00:01:02,050 Hier ist Nick. 26 00:01:02,050 --> 00:01:03,480 Hier ist Nick. 27 00:01:03,480 --> 00:01:04,080 Hier ist Nick. 28 00:01:04,080 --> 00:01:05,090 29 00:01:05,090 --> 00:01:07,670 Und hier ist Alison hinunter durch die Felder. 30 00:01:07,670 --> 00:01:11,840 Und Zamyla auch gefunden wurde bei Ballsaal Wettbewerb. 31 00:01:11,840 --> 00:01:14,100 So werden wir durch gehen Diese Fotos, herauszufinden, 32 00:01:14,100 --> 00:01:16,690 wer hat die meisten das früheste und Belohnung 33 00:01:16,690 --> 00:01:20,662 einem tollen Preis, wie in der Spezifikation versprochen. 34 00:01:20,662 --> 00:01:23,120 Und wir werden auch Follow-up über der Raum, beteiligt war. 35 00:01:23,120 --> 00:01:26,860 >> Ein paar announcements-- so Mittagessen ist wieder an diesem Freitag um 1:15 Uhr. 36 00:01:26,860 --> 00:01:30,420 Wenn Sie möchten, sich uns anzuschließen, RSVP unter dieser URL hier. 37 00:01:30,420 --> 00:01:33,730 Jason erscheint hier wieder von einem der Abschnitte ein paar Jahren 38 00:01:33,730 --> 00:01:35,510 Rücken, was passiert auf Halloween fällt. 39 00:01:35,510 --> 00:01:38,950 Und in der Tat, wie ein kleidete er Kürbis, dass insbesondere Jahr. 40 00:01:38,950 --> 00:01:42,700 Wenn Sie diesen Abschnitt zu sehen seiner ab 2011 Abschnitt 41 00:01:42,700 --> 00:01:46,480 acht, wenn Sie neugierig sind, bei CS50.tv, ich denke, 42 00:01:46,480 --> 00:01:49,730 das Jahr war, in dem seine Luftpumpe arbeitete. 43 00:01:49,730 --> 00:01:52,490 >> Wenn Sie dann sehen die ähnlichen Schnitt im Jahr 2012, 44 00:01:52,490 --> 00:01:55,620 Du diesen Jason viel entleert sehen da der Anzug nicht mehr funktionierte, 45 00:01:55,620 --> 00:01:58,060 die nur zu sagen an diesem Freitag, wenn Sie möchten 46 00:01:58,060 --> 00:02:02,720 Lust auf einen Kürbis mit Daven schnitzen und Gabe und andere, RSVP auf die Köpfe 47 00:02:02,720 --> 00:02:04,480 bei cs50.harvard.edu Adresse. 48 00:02:04,480 --> 00:02:06,200 Es verspricht, ein großer Spaß sein. 49 00:02:06,200 --> 00:02:08,660 Daven, wird uns gesagt, hat geschnitzt Kürbisse sein ganzes Leben. 50 00:02:08,660 --> 00:02:11,930 Gabriel aus Brasilien hat nie geschnitzten Kürbis für Halloween. 51 00:02:11,930 --> 00:02:14,700 Also da sein mit ihnen, wie er lernt. 52 00:02:14,700 --> 00:02:16,830 >> Seminare, meanwhile-- so dass Sie schnell lernen werde 53 00:02:16,830 --> 00:02:20,650 über das, was unsere Erwartungen sind für Das endgültige Projekt, das im Wesentlichen 54 00:02:20,650 --> 00:02:23,150 wird einkochen Gestaltung und Umsetzung 55 00:02:23,150 --> 00:02:26,440 die meisten jedes Projekt von Interesse Sie, wenn auch mit Zustimmung 56 00:02:26,440 --> 00:02:28,490 und Anleitung von Ihrem Unterricht Kerl. 57 00:02:28,490 --> 00:02:32,110 Gegen Ende der Semester eine Reihe stellen wir 58 00:02:32,110 --> 00:02:35,610 von Seminaren, die optional Klassen sind durch die Lehre Stipendiaten und Harvard geführt 59 00:02:35,610 --> 00:02:38,570 Personal, Freunde des Kurses über Campus, zu den unterschiedlichsten Themen 60 00:02:38,570 --> 00:02:41,470 tangential zu der zugrunde liegende Lehrplan natürlich die 61 00:02:41,470 --> 00:02:45,590 aber dennoch zutreffend, Spaß und verschiedene für potenzielle Abschlussarbeiten. 62 00:02:45,590 --> 00:02:49,530 >> Zum Beispiel, zuerst, wenn Sie möchten um zu dieser URL dort anmelden, Kopf. 63 00:02:49,530 --> 00:02:53,010 Und dies ist das Lineup für diesjährigen Seminaren allein. 64 00:02:53,010 --> 00:02:56,060 Aber erkennen wir haben Dutzende von Seminare aus den vergangenen Jahren, von denen alle 65 00:02:56,060 --> 00:02:59,774 werden in den Seminaren Menü verlinkt Option der Website des Kurses. 66 00:02:59,774 --> 00:03:02,190 Also, wenn Sie über das Denken sind außerhalb Ihrer Komfortzone gehen 67 00:03:02,190 --> 00:03:05,060 oder Abholung einige neue Fähigkeiten, B. Programmierung iPhone 68 00:03:05,060 --> 00:03:08,100 Apps mit Swift, einer neuen Sprache von Apple oder Objective-C 69 00:03:08,100 --> 00:03:11,230 oder Android oder Programmierung [? Stichwort?] Glühlampen, oder eines der Themen 70 00:03:11,230 --> 00:03:15,490 hier und mehr, wegen Check aus der Registrierungsseite. 71 00:03:15,490 --> 00:03:19,730 >> So begannen wir und endete am Montag mit Blick auf HTTP. 72 00:03:19,730 --> 00:03:22,675 So schnell refresher-- HTTP, Hypertext Transfer Protocol. 73 00:03:22,675 --> 00:03:24,045 Aber was heißt das eigentlich? 74 00:03:24,045 --> 00:03:26,805 75 00:03:26,805 --> 00:03:27,930 Was bedeutet das eigentlich? 76 00:03:27,930 --> 00:03:30,665 77 00:03:30,665 --> 00:03:31,290 Ist das eine Hand? 78 00:03:31,290 --> 00:03:33,074 79 00:03:33,074 --> 00:03:34,740 Ich weiß, du bist nur am Kopf kratzen. 80 00:03:34,740 --> 00:03:36,400 Aber Sie wollen vorschlagen, was HTTP ist? 81 00:03:36,400 --> 00:03:37,792 82 00:03:37,792 --> 00:03:40,576 >> PUBLIKUM: Wie Computer kommunizieren [unverständlich]. 83 00:03:40,576 --> 00:03:41,517 84 00:03:41,517 --> 00:03:43,100 DAVID J MALAN: Ich verpasste den letzten Teil. 85 00:03:43,100 --> 00:03:45,774 Wie Computern kommunizieren with-- 86 00:03:45,774 --> 00:03:47,325 >> PUBLIKUM: Internet-Servern. 87 00:03:47,325 --> 00:03:50,450 DAVID J MALAN: Good-- Internet Server, und zwar Webserver. 88 00:03:50,450 --> 00:03:53,533 Weil Rückruf, es gibt eine Reihe von Dienstleistungen im Internet, von denen einige 89 00:03:53,533 --> 00:03:57,349 Sie wahrscheinlich täglich zwischen Chat zu verwenden, und Nachricht, Chat und Web-und E-Mail, 90 00:03:57,349 --> 00:03:57,890 und dergleichen. 91 00:03:57,890 --> 00:04:00,900 Und HTTP ist nur die Protokoll, dass Web-Browsern 92 00:04:00,900 --> 00:04:03,750 sprechen, wenn die Kommunikation mit Web-Server, und umgekehrt. 93 00:04:03,750 --> 00:04:05,580 Und das analoge in der menschlichen Welt auch sein mag, 94 00:04:05,580 --> 00:04:08,730 Ich erweitere meine Hand, einige schütteln andere menschliche und er oder sie 95 00:04:08,730 --> 00:04:11,970 erkennt durch Verlängerung seine oder ihre Hand auch. 96 00:04:11,970 --> 00:04:13,970 Also das ist nur ein Protokoll, eine Reihe von Konventionen. 97 00:04:13,970 --> 00:04:15,630 >> Und was in der Tat sind die Konventionen? 98 00:04:15,630 --> 00:04:18,640 Nun, es ist nur darauf an, Senden von Nachrichten hin und her, 99 00:04:18,640 --> 00:04:19,770 wie wir dargestellt hier. 100 00:04:19,770 --> 00:04:22,520 Und es gibt ein paar Möglichkeiten, in denen Sie diese Nachrichten zu senden. 101 00:04:22,520 --> 00:04:24,360 Und vielleicht die gemeinsame als get bekannt. 102 00:04:24,360 --> 00:04:26,510 Und wir werden einen Kontrast zu sehen Vor der lang. 103 00:04:26,510 --> 00:04:30,010 >> Aber eine GET-Anfrage von einem Browser Server sieht nur so aus. 104 00:04:30,010 --> 00:04:32,960 Es ist ein Bündel von Text, dass es bringt innerhalb eines virtuellen Umschlag. 105 00:04:32,960 --> 00:04:35,854 Auf der Außenseite der genannten Umhüllung gehen ein paar Stücke von Informationen. 106 00:04:35,854 --> 00:04:37,770 Was muss auf dem Sprung Umschlag, sozusagen 107 00:04:37,770 --> 00:04:41,820 um eine Anfrage gefallen Dieses von mir auf einen Webserver? 108 00:04:41,820 --> 00:04:42,320 Ja. 109 00:04:42,320 --> 00:04:43,270 >> PUBLIKUM: Ihre IP-Adresse. 110 00:04:43,270 --> 00:04:45,890 >> DAVID J MALAN: Meine IP-Adresse im Feld, so zu sprechen, 111 00:04:45,890 --> 00:04:49,490 und natürlich der IP-Adresse des Empfängers. 112 00:04:49,490 --> 00:04:52,710 Aber im Fall eines Bahnpakets, wir brauchen ein wenig mehr Details 113 00:04:52,710 --> 00:04:55,254 Es reicht nicht, nur um senden einen Umschlag mit einem Server, 114 00:04:55,254 --> 00:04:57,670 weil dieser Server sein könnte Hören für verschiedene Arten 115 00:04:57,670 --> 00:04:59,180 der Internet-Verkehr. 116 00:04:59,180 --> 00:05:01,370 Also, was wir sonst noch brauchen Neben IP des Empfängers? 117 00:05:01,370 --> 00:05:02,723 118 00:05:02,723 --> 00:05:03,222 Ja? 119 00:05:03,222 --> 00:05:04,241 >> PUBLIKUM: Ist es TCP? 120 00:05:04,241 --> 00:05:05,074 DAVID J MALAN: Gut. 121 00:05:05,074 --> 00:05:06,470 TCP-- 122 00:05:06,470 --> 00:05:07,340 >> PUBLIKUM: Adresse. 123 00:05:07,340 --> 00:05:09,340 >> DAVID J MALAN: Adresse, oder Hafen, wie es heißt. 124 00:05:09,340 --> 00:05:11,010 Schließen, sondern eine TCP-Portnummer. 125 00:05:11,010 --> 00:05:12,220 Und es gibt eine Menge von diesen. 126 00:05:12,220 --> 00:05:14,310 Aber sicherlich die vertraut schließlich sollte 127 00:05:14,310 --> 00:05:17,590 sein 80, der Standardwert ist für Web-Datenverkehr ein verwendet. 128 00:05:17,590 --> 00:05:20,040 Und ein anderer vertraut ein bald 443 sein, 129 00:05:20,040 --> 00:05:24,280 die für sichere Web verwendet wird Verkehr, URLs, die mit https beginnen. 130 00:05:24,280 --> 00:05:26,650 >> Also das ist, was geht innerhalb dieses Umschlags. 131 00:05:26,650 --> 00:05:29,780 Und erhalten / bedeutet nur, geben mir die Standard-Webseite. 132 00:05:29,780 --> 00:05:32,700 Gib mir den Stamm der Fest fahren Sie auf den Web-Server. 133 00:05:32,700 --> 00:05:36,050 Und hoffentlich wird die Bahn Server mit, OK antworten 134 00:05:36,050 --> 00:05:39,630 und die Zahl 200, das nur eine Konvention sagen, ja, alle 135 00:05:39,630 --> 00:05:40,470 ist in der Tat OK. 136 00:05:40,470 --> 00:05:41,680 Hier ist die Seite. 137 00:05:41,680 --> 00:05:45,510 Die Art der Web-Seite wird zu sein Text, sondern genauer gesagt, HTML, 138 00:05:45,510 --> 00:05:47,010 die wir sind dabei, wieder in zu tauchen. 139 00:05:47,010 --> 00:05:49,877 Und der Punkt Punkt Punkt gerade Hilfe, hier ist der HTML. 140 00:05:49,877 --> 00:05:51,710 Und das ist, wo wir holen die Geschichte heute, 141 00:05:51,710 --> 00:05:55,740 tatsächlich das Schreiben von HTML, Hypertext Markup Language, die 142 00:05:55,740 --> 00:05:57,727 ist die Sprache, in der Web-Seiten werden geschrieben. 143 00:05:57,727 --> 00:05:59,060 Es ist nicht eine Programmiersprache. 144 00:05:59,060 --> 00:06:01,270 Es gibt keine Funktionen oder Schleifen oder Bedingungen. 145 00:06:01,270 --> 00:06:03,800 Es ist eine Auszeichnungssprache, auch sehen heute wieder, 146 00:06:03,800 --> 00:06:07,240 dass können Sie angeben, wie zu strukturieren und zu stilisieren 147 00:06:07,240 --> 00:06:09,300 ästhetisch eine Web-Seite. 148 00:06:09,300 --> 00:06:11,470 >> So war der, und nur Seiten wir wirklich 149 00:06:11,470 --> 00:06:13,930 sah, wenn auch nur kurz, am Montag. 150 00:06:13,930 --> 00:06:16,250 Und bemerken ein paar ausgeprägten Eigenschaften. 151 00:06:16,250 --> 00:06:20,170 Es gibt eine Menge von offenen abgewinkelten Halterung und enge Winkelhalter. 152 00:06:20,170 --> 00:06:23,160 Zwischen diesen abgewinkelten Klammern sind Worte. 153 00:06:23,160 --> 00:06:25,660 Und wir werden beginnen ruft diese Worte Tags. 154 00:06:25,660 --> 00:06:28,800 So offene Klammer Kopf und geschlossener Klammer Kopf 155 00:06:28,800 --> 00:06:33,620 sind die offenen und geschlossenen Tags, oder die Start- und End-Tags 156 00:06:33,620 --> 00:06:37,660 jeweils eines HTML-Elements, wie wir es nennen, genannt Kopf. 157 00:06:37,660 --> 00:06:41,760 Und das gleiche gilt Jargon Körper in HTML und so weiter. 158 00:06:41,760 --> 00:06:43,970 >> Und was schön ist HTML-- und in der Tat, wir 159 00:06:43,970 --> 00:06:47,187 verbringen schrecklich wenig Zeit darauf, weil Sie meistens nur herausfinden 160 00:06:47,187 --> 00:06:49,770 welche Funktionen es hat, wenn Sie tatsächlich eine konkrete Problem 161 00:06:49,770 --> 00:06:52,820 um solve-- Sie werden feststellen, dass ein Browser ist ziemlich dumm. 162 00:06:52,820 --> 00:06:56,450 Es nur geht, nicht unähnlich zu do-- a computer--, was Sie sagen, es zu tun. 163 00:06:56,450 --> 00:06:59,279 Und so, wenn Sie geöffnet haben Halterung HTML an der Spitze 164 00:06:59,279 --> 00:07:01,320 gibt, dass im Wesentlichen bedeutet nur, hey, Browser, 165 00:07:01,320 --> 00:07:04,090 hier kommt eine Web-Seite in HTML geschrieben. 166 00:07:04,090 --> 00:07:06,130 >> Wenn es offene Klammer sieht Kopf, das bedeutet nur, 167 00:07:06,130 --> 00:07:10,350 hey, Browser, hier kommt der Kopf, oder der oberste Teil meiner Webseite. 168 00:07:10,350 --> 00:07:14,192 Wenn es eine geschlossene Klammer sieht Kopf, das bedeutet nur, hey, 169 00:07:14,192 --> 00:07:15,150 das ist es für den Kopf. 170 00:07:15,150 --> 00:07:16,420 Standby für etwas anderes. 171 00:07:16,420 --> 00:07:18,878 Und das ist etwas anderes offenbar werde der Körper sein. 172 00:07:18,878 --> 00:07:22,630 Und wenn Sie nicht über einen Tag, wie haben Sie müssen nur hallo, Komma, welt, 173 00:07:22,630 --> 00:07:26,610 dass nur geht, um Rohtext werden, dass schließlich wird auf dem Bildschirm angezeigt. 174 00:07:26,610 --> 00:07:29,220 >> Nun, werden Sie auch feststellen, die Vertiefung hier. 175 00:07:29,220 --> 00:07:32,160 Sie können sich wahrscheinlich folgern wie wir es Stilisierung. 176 00:07:32,160 --> 00:07:34,850 Jedesmal, wenn ich einen Tag zu öffnen, sozusagen einrücken ich. 177 00:07:34,850 --> 00:07:38,540 Und jedesmal, wenn ich in der Nähe ein Tag, ich un-Gedankenstrich 178 00:07:38,540 --> 00:07:40,690 im Geiste gleich geschweiften Klammern. 179 00:07:40,690 --> 00:07:43,470 Und darüber hinaus, ich bin Art der mit meinem Urteil. 180 00:07:43,470 --> 00:07:48,380 Beachten Sie, dass ich nicht die Mühe schlagen Innerhalb dieser Titel-Tag eingeben. 181 00:07:48,380 --> 00:07:48,990 Warum? 182 00:07:48,990 --> 00:07:51,920 Nun, ich beschloss nur, es sah ein wenig sauberer zu mir, der Mensch, 183 00:07:51,920 --> 00:07:53,181 um nur nicht die Mühe zu tun. 184 00:07:53,181 --> 00:07:54,930 Also noch einmal, es gibt einige Urteil nur Anrufe 185 00:07:54,930 --> 00:07:57,670 als gäbe es in C oder einer beliebigen Sprache. 186 00:07:57,670 --> 00:08:04,110 >> Aber beachten Sie auch, dass diese Vertiefung eignet sich für eine mentale Modell, 187 00:08:04,110 --> 00:08:05,670 nicht zu über erschweren es. 188 00:08:05,670 --> 00:08:07,020 Aber ein Baum, oder? 189 00:08:07,020 --> 00:08:09,290 Wenn Sie einer Web denken Seite, offenbar geschrieben 190 00:08:09,290 --> 00:08:12,050 wie diese, als schön eingerückt so, 191 00:08:12,050 --> 00:08:17,390 man kann fast der offenen Klammer denken HTML geschlossenen Bügel-Tag wird die Abgrenzung 192 00:08:17,390 --> 00:08:21,380 die Wurzel eines Knotens, ein Stammbaum Stil Knoten im Stil der Bäume 193 00:08:21,380 --> 00:08:22,900 betrachteten wir am vergangenen Freitag. 194 00:08:22,900 --> 00:08:27,630 >> Und in der Tat, auf der rechten Seite haben wir hier was wir ein DOM, D-O-M, Dokument aufrufen 195 00:08:27,630 --> 00:08:31,680 Objektmodell, eine andere Art zu sagen ein Baum, dass HTML darstellt. 196 00:08:31,680 --> 00:08:36,140 Und feststellen, dass HTML hat, werden wir sagen, wie ein Stammbaum, zwei Kinder. 197 00:08:36,140 --> 00:08:37,659 Auf der linken Seite ist Kopf. 198 00:08:37,659 --> 00:08:39,179 Auf der rechten Seite ist Körper. 199 00:08:39,179 --> 00:08:44,220 >> Und so wie eine geistlose Gedanken Übung Kopf, hat natürlich, wie viele Kinder 200 00:08:44,220 --> 00:08:46,070 gemäß dieser Struktur? 201 00:08:46,070 --> 00:08:48,200 Also nur eine, title-- und das ist, warum wir 202 00:08:48,200 --> 00:08:50,580 der Pfeil geht vom Kopf zum Titel. 203 00:08:50,580 --> 00:08:55,110 So ist es, als ob diese Person in der Familienstammbaum hatte nur einen Nachkommen. 204 00:08:55,110 --> 00:08:58,230 Und dann Titel selbst kann sagte, ein Kind zu haben ist. 205 00:08:58,230 --> 00:09:01,780 >> Daran erinnern, dass die HTML hatte hallo, Komma, Welt unter ihm. 206 00:09:01,780 --> 00:09:06,090 Und ich habe es einfach gezeichnete innerhalb ein oval statt eines Rechtecks ​​nur 207 00:09:06,090 --> 00:09:10,559 semantisch dass, obwohl vermitteln es ist ein Knoten in dem Baum, sozusagen 208 00:09:10,559 --> 00:09:12,100 Es ist eine Art grundlegend anders. 209 00:09:12,100 --> 00:09:12,800 Es ist nicht ein Tag. 210 00:09:12,800 --> 00:09:14,780 Oder richtiger, es ist nicht ein Element. 211 00:09:14,780 --> 00:09:16,590 Es ist nur ein Textknoten, wenn man so will. 212 00:09:16,590 --> 00:09:18,990 Aber diese vollständig sind willkürlichen menschlichen Konventionen. 213 00:09:18,990 --> 00:09:23,180 Dies ist gerade jetzt meine Art darstellt, was ich als ein Aggregat 214 00:09:23,180 --> 00:09:24,340 rufen Sie das Dokument. 215 00:09:24,340 --> 00:09:27,750 >> Und nebenbei, der Sache auf die Super linken oberen Ecke, 216 00:09:27,750 --> 00:09:32,080 Stellwinkel Ausrufezeichen doc Typ HTML, das sieht aus wie ein Tag, 217 00:09:32,080 --> 00:09:35,560 aber es ist die dumme Ecke Fall, das ist einfach nur da, kopiert und eingefügt 218 00:09:35,560 --> 00:09:38,460 die Browser zeigen dies ist HTML-Version 5. 219 00:09:38,460 --> 00:09:41,540 Die Welt ändert sich ständig, was die erste Codezeile auf einer Seite sein sollte. 220 00:09:41,540 --> 00:09:43,820 Dies bedeutet nur, Version 5. 221 00:09:43,820 --> 00:09:45,950 So ist es nicht ganz funktioniert sehen aus wie die anderen. 222 00:09:45,950 --> 00:09:48,120 >> In Ordnung, so mit, dass sagte, du wirst jetzt schätzen 223 00:09:48,120 --> 00:09:50,767 dies ziemlich dieses blöde Tattoo jemand hat. 224 00:09:50,767 --> 00:09:51,990 >> [Gelächter] 225 00:09:51,990 --> 00:09:54,210 >> DAVID J MALAN: All right, und jetzt wollen wir eigentlich Tauchgang 226 00:09:54,210 --> 00:09:55,710 in etwas mit diesem zu tun. 227 00:09:55,710 --> 00:09:58,610 Sie werden feststellen, dass das letzte Mal erinnern, Ich öffnete den CS50 Appliance 228 00:09:58,610 --> 00:10:01,650 und ich tat etwas so einfach wie Erschließung gedit. 229 00:10:01,650 --> 00:10:05,190 Und ich die Datei gespeichert, auch auf meine desktop-- nirgendwo special-- 230 00:10:05,190 --> 00:10:05,870 als hello.html. 231 00:10:05,870 --> 00:10:07,100 232 00:10:07,100 --> 00:10:10,984 >> Also lass mich tun, again-- hello.html Enter. 233 00:10:10,984 --> 00:10:13,900 Und jetzt in dieser Datei, ich bin zu gehen gehen Sie vor und replizieren, was wir gerade 234 00:10:13,900 --> 00:10:18,850 saw-- doc Typ html Dann bin ich zu gehen tun offene Klammer html geschlossenen Klammer. 235 00:10:18,850 --> 00:10:21,890 Und dann werde ich präventiv Öffnen und Schließen der Tag. 236 00:10:21,890 --> 00:10:22,390 Warum? 237 00:10:22,390 --> 00:10:23,598 Nur damit ich nicht vergesse später. 238 00:10:23,598 --> 00:10:26,850 Es ist nur gute Praxis, wie Öffnungs und schließende geschweifte Klammern auf einmal. 239 00:10:26,850 --> 00:10:28,900 >> Und was dann kam als nächstes? 240 00:10:28,900 --> 00:10:30,582 Sie können der Tätowierung denken. 241 00:10:30,582 --> 00:10:31,450 >> PUBLIKUM: Der Kopf. 242 00:10:31,450 --> 00:10:32,500 >> DAVID J MALAN: Der Kopf. 243 00:10:32,500 --> 00:10:36,020 Und dann hier, ich hatte den Titel, denke ich. 244 00:10:36,020 --> 00:10:39,886 Und der Titel war willkürlich, hallo, Welt am Titel. 245 00:10:39,886 --> 00:10:42,760 Und dann hier unten, der Körper, der course-- dann schließen wir die Body-Tag. 246 00:10:42,760 --> 00:10:45,660 Und dann einfach etwas redundant, Ich hatte die gleiche Sache hier unten. 247 00:10:45,660 --> 00:10:47,150 >> Also ich behaupte, dass dies eine Web-Seite. 248 00:10:47,150 --> 00:10:49,050 Das ist etwas, konnte nun auf dem Web zu leben, 249 00:10:49,050 --> 00:10:51,925 obwohl natürlich, es ist buchstäblich leben auf meinem Desktop jetzt. 250 00:10:51,925 --> 00:10:55,837 Aber in der Tat, wenn ich zu minimieren gedit, Ich werde auf meinem Desktop das Symbol zu sehen. 251 00:10:55,837 --> 00:10:58,420 Auch wenn dies das Gerät, Sie könnte dies unter Mac OS zu tun 252 00:10:58,420 --> 00:11:01,580 ohne TextEdit oder Fenster mit Notepad selbst. 253 00:11:01,580 --> 00:11:06,115 >> Und wenn ich gehen Sie vor und klicken Sie doppelt dass auch und wählen-- gut, lassen Sie uns 254 00:11:06,115 --> 00:11:07,990 nicht wählen, weil Chrome ist nicht zu öffnen. 255 00:11:07,990 --> 00:11:09,281 Fahren wir fort und öffnen Chrome. 256 00:11:09,281 --> 00:11:10,160 257 00:11:10,160 --> 00:11:14,040 Und dann tun Befehl-O für offene Und auf meinem Desktop zu navigieren 258 00:11:14,040 --> 00:11:15,320 und öffnen Sie die Datei. 259 00:11:15,320 --> 00:11:20,120 Das ist, wie ein Browser interpretiert HTML, von oben nach unten, von links nach rechts. 260 00:11:20,120 --> 00:11:21,314 Hey, hier ist Browser HTML. 261 00:11:21,314 --> 00:11:21,980 Hier ist der Kopf. 262 00:11:21,980 --> 00:11:23,250 Hier ist der Titel. 263 00:11:23,250 --> 00:11:24,090 Hier ist der Körper. 264 00:11:24,090 --> 00:11:26,620 Und in der Tat ist dies, wie es macht, dass die Web-Seite. 265 00:11:26,620 --> 00:11:27,800 >> Aber beachten Sie die URL. 266 00:11:27,800 --> 00:11:32,430 Keiner von euch könnte dieses spezielle ziehen Seite auf Ihrer Laptops gerade jetzt, 267 00:11:32,430 --> 00:11:34,910 sogar innerhalb Ihres Gerät über diese URL, 268 00:11:34,910 --> 00:11:40,130 weil file: // zeigt es ist eigentlich auf meinem Dateisystem, meine Festplatte, 269 00:11:40,130 --> 00:11:40,990 nicht verkaufen. 270 00:11:40,990 --> 00:11:42,440 Das ist also nicht alles, was nützlich. 271 00:11:42,440 --> 00:11:44,940 >> Lassen Sie uns nun in Richtung bewegen Verwendung eines tatsächlichen Webserver. 272 00:11:44,940 --> 00:11:48,309 Und es stellt sich heraus, das CS50 Appliance ist mehr als nur einer Umgebung, 273 00:11:48,309 --> 00:11:51,100 Sie können C-Code zu schreiben und zu kompilieren und führen Sie es wie Sie getan haben. 274 00:11:51,100 --> 00:11:55,500 Es wurde auch von der konfigurierten Personal, um eine typische Web vertreten 275 00:11:55,500 --> 00:11:58,290 Server, der auf dem Internet ist, eine, die Sie bezahlen können 276 00:11:58,290 --> 00:12:00,210 oder eine, die in der sogenannten Wolke. 277 00:12:00,210 --> 00:12:02,600 >> Und es läuft Standard kostenlose Open-Source 278 00:12:02,600 --> 00:12:06,160 Software, zum Beispiel, was genannt Apache, das ist vielleicht 279 00:12:06,160 --> 00:12:08,700 immer noch die beliebteste Web Server-Software in der Welt 280 00:12:08,700 --> 00:12:11,030 dass Tausende von Websites heute verwenden. 281 00:12:11,030 --> 00:12:13,420 Und es auch noch hat Software wie MySQL, 282 00:12:13,420 --> 00:12:16,240 Das ist ein Datenbank-Server dass wir schließlich zu bekommen, 283 00:12:16,240 --> 00:12:18,330 die nur zu sagen Ich kann beginnen Behandlung 284 00:12:18,330 --> 00:12:22,040 mein Gerät als vollwertigen Server dass ich nicht bezahlen anderswo. 285 00:12:22,040 --> 00:12:25,980 Er lebt nur auf meinen eigenen Laptop für Entwicklung und Bequemlichkeit Zwecke. 286 00:12:25,980 --> 00:12:27,870 >> Also lassen Sie uns weitermachen und nutzen diese. 287 00:12:27,870 --> 00:12:30,120 Ich werde weitermachen und Öffnen Sie ein Terminal-Fenster. 288 00:12:30,120 --> 00:12:33,030 Und ich werde weitermachen und move-- tatsächlich zunächst bin ich 289 00:12:33,030 --> 00:12:34,860 werde auf meinem Desktop zu navigieren. 290 00:12:34,860 --> 00:12:36,400 Wenn ich ls gibt es hello.html. 291 00:12:36,400 --> 00:12:37,022 292 00:12:37,022 --> 00:12:38,730 Und ich werde gehen vor und starten Sie mit 293 00:12:38,730 --> 00:12:40,800 ein neues Verzeichnis wir haben nicht vor heute verwendet. 294 00:12:40,800 --> 00:12:46,840 >> hello.html-- Ich werde bewegen um ../vhosts für virtuelle hosts-- 295 00:12:46,840 --> 00:12:50,940 mehr dazu in der future-- und dann in ein Verzeichnis namens localhost, 296 00:12:50,940 --> 00:12:54,420 dem die Spitznamen in fast gegeben ist jeder Computer, ob es ein Mac, PC, 297 00:12:54,420 --> 00:12:57,560 oder Linux-Computer, und dann speziell in ein Verzeichnis, dass wir, 298 00:12:57,560 --> 00:13:01,260 das Personal für Sie bereits bei der Erstellung Sie das Gerät genannt heruntergeladen 299 00:13:01,260 --> 00:13:01,760 Öffentlichkeit. 300 00:13:01,760 --> 00:13:04,551 Und wie der Name schon sagt, alles, was Ich habe in diesem Ordner, in der Theorie, 301 00:13:04,551 --> 00:13:07,790 wird sich jetzt Öffentlichkeit zumindest den Leuten 302 00:13:07,790 --> 00:13:10,030 die eine direkte haben Verbindung zu meinem Computer. 303 00:13:10,030 --> 00:13:13,160 >> So, jetzt lassen Sie mich gehen Sie vor und tun cd in dieses Verzeichnis 304 00:13:13,160 --> 00:13:15,490 so kann ich sehen, was los ist und geben Sie ls. 305 00:13:15,490 --> 00:13:17,630 Und in der Tat, das ist das einzige, was da drin. 306 00:13:17,630 --> 00:13:23,250 Ich jetzt, weil ich diese setzen behaupten Datei hello.html innerhalb eines Verzeichnisses 307 00:13:23,250 --> 00:13:26,940 genannte öffentliche innerhalb eines Verzeichnisses genannt local innerhalb eines Verzeichnisses 308 00:13:26,940 --> 00:13:29,810 genannt vhosts, die dank CS50 Personal 309 00:13:29,810 --> 00:13:34,390 wurde vorkonfiguriert sein die Wurzel von Ihrem Web-Server, 310 00:13:34,390 --> 00:13:36,900 Ich kann jetzt hoffentlich tun. 311 00:13:36,900 --> 00:13:38,390 >> Ich werde zu öffnen, eine neue Registerkarte. 312 00:13:38,390 --> 00:13:40,090 Und ich werde gehen nicht auf file: //. 313 00:13:40,090 --> 00:13:44,520 Ich werde tatsächlich zu bedienen http / localhost, die 314 00:13:44,520 --> 00:13:47,470 wieder, ist der Spitzname für meinen eigenen Server. 315 00:13:47,470 --> 00:13:51,085 Und dann werde ich gehen, was Dateinamen, nur klar zu sein? 316 00:13:51,085 --> 00:13:52,680 317 00:13:52,680 --> 00:13:54,320 Wo ist diese Geschichte wohl hin? 318 00:13:54,320 --> 00:13:56,066 319 00:13:56,066 --> 00:13:56,565 hello.html. 320 00:13:56,565 --> 00:13:58,350 321 00:13:58,350 --> 00:14:04,270 >> Also mit anderen Worten, ich möchte jetzt dieses ist meine eigene Computer, mein eigenes Gerät, 322 00:14:04,270 --> 00:14:05,660 als ob es eine tatsächliche Server. 323 00:14:05,660 --> 00:14:07,490 Sein Spitzname ist localhost. 324 00:14:07,490 --> 00:14:10,210 Aber denken Sie an localhost als wie Facebook.com google.com, was auch immer. 325 00:14:10,210 --> 00:14:11,600 Es ist nur meine lokalen Namen. 326 00:14:11,600 --> 00:14:14,810 Und dann das letzte was ich will ist in der Stamm der Festplatte, so zu sprechen, 327 00:14:14,810 --> 00:14:17,729 oder die Wurzel des Webservers, ergo den Schrägstrich und dann 328 00:14:17,729 --> 00:14:18,770 der Dateiname hello.html. 329 00:14:18,770 --> 00:14:19,880 330 00:14:19,880 --> 00:14:21,930 >> Lassen Sie mich zu verkleinern und drücken Sie Enter. 331 00:14:21,930 --> 00:14:24,266 Und in der Tat, gibt es jetzt meine Webseite. 332 00:14:24,266 --> 00:14:25,390 So ist es etwas anders. 333 00:14:25,390 --> 00:14:26,880 Und es ist genauso berauschend. 334 00:14:26,880 --> 00:14:27,904 Dies ist die alte Version. 335 00:14:27,904 --> 00:14:29,070 Lassen Sie mich die Schrift zurückschrecken. 336 00:14:29,070 --> 00:14:29,745 Dies ist die alte. 337 00:14:29,745 --> 00:14:30,890 Dies ist der neue. 338 00:14:30,890 --> 00:14:35,430 Aber was ist im Grunde passiert ist nun, dass HTTP verwendet wird. 339 00:14:35,430 --> 00:14:39,344 >> Lassen Sie uns das ein wenig mehr klar oder, wenn man so will, ein wenig komplizierter. 340 00:14:39,344 --> 00:14:41,760 Lassen Sie mich nach rechts unten gehen Ecke meines Gerätes. 341 00:14:41,760 --> 00:14:44,000 Und feststellen, dass all dies Zeit hat es eine Nummer. 342 00:14:44,000 --> 00:14:47,330 Das ist die eindeutige Adresse Ihrer CS50 Appliance. 343 00:14:47,330 --> 00:14:50,800 Es ist eine private Adresse, wie von der 172.16 stillschweigend, 344 00:14:50,800 --> 00:14:53,860 was bedeutet eben nur Sie körperlich kann Ihr Server zuzugreifen. 345 00:14:53,860 --> 00:14:56,340 Alles wird durch die Firewall und schön vom Rest geschützt 346 00:14:56,340 --> 00:14:58,130 der Welt, weil dieser Adressierung. 347 00:14:58,130 --> 00:15:01,920 >> Und jetzt aber merken, wenn ich gehen, um Die Adresse, nicht in meinem Gerät, 348 00:15:01,920 --> 00:15:04,340 aber in Mac OS-- Ich werde wieder hierher zu gehen. 349 00:15:04,340 --> 00:15:05,930 Das ist mein Mac jetzt. 350 00:15:05,930 --> 00:15:08,460 Und jetzt werde ich eröffnen Diese Version von Chrome hier. 351 00:15:08,460 --> 00:15:17,370 Und ich werde gehen, um http: //172.16.25 / Und ich vergesse die rest-- 133. 352 00:15:17,370 --> 00:15:25,210 >> Also werde ich von meinem Mac besuchen dass die IP-Adresse /hello.html Enter. 353 00:15:25,210 --> 00:15:29,850 Und jetzt sehe ich von meinem Mac dass meine CS50 Appliance, wer ist 354 00:15:29,850 --> 00:15:32,600 IP-Adresse ist, dass Nummer, ist in der Tat verhalten 355 00:15:32,600 --> 00:15:34,320 wie ein Web-Server im Internet. 356 00:15:34,320 --> 00:15:36,944 Es muss nicht eine schöne und einfach zu erinnern Namen wie Facebook.com, 357 00:15:36,944 --> 00:15:40,370 aber es ist mit HTTP anscheinend, obwohl Chrome 358 00:15:40,370 --> 00:15:43,560 ist eine Art, die Welt zu vereinfachen für uns, aber uns nicht zeigt HTTP. 359 00:15:43,560 --> 00:15:46,210 Aber das ist ja genau das. 360 00:15:46,210 --> 00:15:48,470 Chrome ist nur Spar einige Tastatureingaben in diesen Tagen. 361 00:15:48,470 --> 00:15:50,530 Und das ist, was wir jetzt sehen. 362 00:15:50,530 --> 00:15:51,890 >> Also das ist alles schön und gut. 363 00:15:51,890 --> 00:15:53,740 Aber es ist eine ziemlich berauschend Seite. 364 00:15:53,740 --> 00:15:56,230 Lassen Sie mich in zu gehen und etwas zu tun ein wenig anders jetzt. 365 00:15:56,230 --> 00:15:57,910 Also lassen Sie mich zurück zu gedit. 366 00:15:57,910 --> 00:16:00,580 Und anstatt hallo, Welt, lasst uns ein Bild. 367 00:16:00,580 --> 00:16:05,880 Und ich aus before-- lass mich gehen beansprucht in meine localhost Verzeichnis öffentlich. 368 00:16:05,880 --> 00:16:10,580 Und lassen Sie mich gehen Sie vor und kopieren ein ganze Reihe von Dateien von heute 369 00:16:10,580 --> 00:16:15,633 aus meiner Dropbox-Ordner in hier. 370 00:16:15,633 --> 00:16:19,470 371 00:16:19,470 --> 00:16:21,680 >> Nun, wenn ich ls, schauen bei all diesen Dateien 372 00:16:21,680 --> 00:16:24,940 dass ich durch die verteilte Website natürlich im Vorfeld der heute, 373 00:16:24,940 --> 00:16:26,830 eine davon ist noch hello.html. 374 00:16:26,830 --> 00:16:27,830 Es gibt also, dass man. 375 00:16:27,830 --> 00:16:30,730 Und erinnern diese dumme ein von den letzten Zeit-- cat.jpg. 376 00:16:30,730 --> 00:16:34,550 Also lassen Sie mich versuchen, einbetten cat.jpg Innenseite meiner Webseite. 377 00:16:34,550 --> 00:16:37,690 >> Ich werde weitermachen und tun cat.jpg, zu speichern. 378 00:16:37,690 --> 00:16:38,950 Lassen Sie mich zurück zu Chrome. 379 00:16:38,950 --> 00:16:41,140 Und lassen Sie mich im Zoom Schriftart und jetzt neu zu laden. 380 00:16:41,140 --> 00:16:43,090 381 00:16:43,090 --> 00:16:45,030 Hoppla, wo ich das? 382 00:16:45,030 --> 00:16:48,210 383 00:16:48,210 --> 00:16:51,520 Standby-- Ich habe immer noch die alte Version von meinem Desktop geöffnet. 384 00:16:51,520 --> 00:16:56,020 Lassen Sie mich also in mein vhost gehen, mein localhost, mein Publikum und hello.html. 385 00:16:56,020 --> 00:16:57,320 386 00:16:57,320 --> 00:17:00,670 So, jetzt lassen Sie mich gehen Sie vor und sagen Inneren des Körpers cat.jpg 387 00:17:00,670 --> 00:17:02,830 wo ich es haben wollen angezeigt und neu laden. 388 00:17:02,830 --> 00:17:04,560 Natürlich ist dies nicht korrekt. 389 00:17:04,560 --> 00:17:08,050 >> Also brauche ich, um den Browser sagen, ein wenig mehr bewusst, was ich will, es zu tun. 390 00:17:08,050 --> 00:17:10,210 Geben Sie einfach den Namen ist offensichtlich nicht ausreichend. 391 00:17:10,210 --> 00:17:15,134 So erinnern daran, dass es eine andere tag, Image, img kurz. 392 00:17:15,134 --> 00:17:17,550 Das ist einfach, weil Menschen nicht wie die Voll Worten Typ. 393 00:17:17,550 --> 00:17:19,050 Und dann können wir Quelle zu tun = "cat.jpg". 394 00:17:19,050 --> 00:17:21,470 395 00:17:21,470 --> 00:17:23,550 >> Und jetzt werde ich zu tun eine Sache anders. 396 00:17:23,550 --> 00:17:25,390 Obwohl alle unsere Tags bisher haben 397 00:17:25,390 --> 00:17:28,086 hatte diese Vorstellung ein Start-Tag und einem End-Tag, 398 00:17:28,086 --> 00:17:30,210 dass nicht wirklich machen Sinn für ein Bild, nicht wahr? 399 00:17:30,210 --> 00:17:32,430 Ein Bild ist entweder da oder nicht da. 400 00:17:32,430 --> 00:17:36,650 Und so sind die Menschen sind gekommen, mit einer einfacheren Konvention. 401 00:17:36,650 --> 00:17:40,310 Wenn Sie ein Tag haben, die können sowohl beginnen und enden zur gleichen Zeit-- 402 00:17:40,310 --> 00:17:43,790 es kann leer sein, so nur speak-- setzen Sie den Schrägstrich innerhalb des Tags 403 00:17:43,790 --> 00:17:44,710 am Ende. 404 00:17:44,710 --> 00:17:45,776 405 00:17:45,776 --> 00:17:47,150 Nun lassen Sie mich zurück zu meinem Browser. 406 00:17:47,150 --> 00:17:50,377 Hit Reload Verdammt, ist etwas falsch. 407 00:17:50,377 --> 00:17:52,460 Sie haben wahrscheinlich gesehen gelegentlich im Web, 408 00:17:52,460 --> 00:17:53,600 auch wenn es nicht deine Schuld. 409 00:17:53,600 --> 00:17:54,766 Es ist die Schuld des Webservers. 410 00:17:54,766 --> 00:17:56,240 Welche Oden diese scheinen zu zeigen? 411 00:17:56,240 --> 00:17:57,450 412 00:17:57,450 --> 00:17:58,009 Es ist kaputt. 413 00:17:58,009 --> 00:17:59,300 Das ist, wo das Bild gehört. 414 00:17:59,300 --> 00:17:59,700 Ja? 415 00:17:59,700 --> 00:18:01,560 >> PUBLIKUM: Aber es funktioniert nicht Zugriff auf das Bild. 416 00:18:01,560 --> 00:18:03,070 >> DAVID J MALAN: Es spielt keine Zugriff auf das Bild. 417 00:18:03,070 --> 00:18:05,230 Daß, oder noch schlimmer, vielleicht ist es gar nicht existieren. 418 00:18:05,230 --> 00:18:06,729 Mal sehen, ob wir nicht zu diagnostizieren, dass. 419 00:18:06,729 --> 00:18:09,390 Erinnern Sie sich an das letzte Mal, dass, wenn in Chrome, in dem Gerät, 420 00:18:09,390 --> 00:18:11,870 oder sogar auf Ihrem Mac oder PC, Sie den Entwickler-Menü gehen 421 00:18:11,870 --> 00:18:14,650 und gehen Sie zu den Developer Tools Option, die Sie wahrscheinlich haben 422 00:18:14,650 --> 00:18:16,850 nicht viel oder überhaupt benutzt. 423 00:18:16,850 --> 00:18:20,780 Und wenn ich auf Netzwerk und laden Sie die Seite, 424 00:18:20,780 --> 00:18:24,110 wir tatsächlich am HTTP aussehen Anfragen, die gemacht werden. 425 00:18:24,110 --> 00:18:28,400 >> Es sieht aus wie hello.html ist ja OK, damit die 200. 426 00:18:28,400 --> 00:18:30,630 Aber cat.jpg ist ein 403. 427 00:18:30,630 --> 00:18:31,650 So ist es nicht 404. 428 00:18:31,650 --> 00:18:33,490 Datei existiert wahrscheinlich. 429 00:18:33,490 --> 00:18:35,250 403 bedeutet, verboten. 430 00:18:35,250 --> 00:18:37,790 Also das ist ein wenig verwirrend. 431 00:18:37,790 --> 00:18:42,340 Ich werde zurückgehen zu meinem Terminal-Fenster. 432 00:18:42,340 --> 00:18:43,700 Lassen Sie mich zu vergrößern hier oben. 433 00:18:43,700 --> 00:18:44,750 Und lassen Sie mich tun ls. 434 00:18:44,750 --> 00:18:46,430 Es gibt die gleichen Dateien. 435 00:18:46,430 --> 00:18:49,410 >> Nun lassen Sie mich eine ls-l zu tun, die Sie wahrscheinlich haben 436 00:18:49,410 --> 00:18:53,350 bevor auf Datei aussehen verwendet Größen vielleicht oder Zeitstempel. 437 00:18:53,350 --> 00:18:55,590 Und wir sehen eine ganze Reihe von überwältigenden Informationen. 438 00:18:55,590 --> 00:18:57,040 Aber beachten Sie ein paar Details. 439 00:18:57,040 --> 00:19:01,660 Hier ist hello.html in diese rudern hier und hier ist cat.jpg. 440 00:19:01,660 --> 00:19:02,934 441 00:19:02,934 --> 00:19:05,850 Und es ist einfach das Gerät als benutzerfreundlich durch Hervorhebung JPEGs 442 00:19:05,850 --> 00:19:07,380 in lila wie dieses. 443 00:19:07,380 --> 00:19:11,470 Aber was ist anders an die Dateigröße und der Dateiname? 444 00:19:11,470 --> 00:19:13,438 445 00:19:13,438 --> 00:19:14,754 >> PUBLIKUM: [unverständlich]. 446 00:19:14,754 --> 00:19:16,920 DAVID J MALAN: Ja, es gibt zwei weitere R hier. 447 00:19:16,920 --> 00:19:20,170 Beachten Sie, was hello.html hat sich ging. 448 00:19:20,170 --> 00:19:24,050 So stellt sich heraus, dass der Name dieses Verzeichnis Öffentlichkeit ist wichtig. 449 00:19:24,050 --> 00:19:26,400 Alles, was in diesem Verzeichnis soll öffentlich sein. 450 00:19:26,400 --> 00:19:28,790 Aber es ist nicht ausreichend nur um Dateien dort fallen zu lassen. 451 00:19:28,790 --> 00:19:31,480 Sie müssen auch ändern der Modus der Dateien, 452 00:19:31,480 --> 00:19:35,180 Ändern Sie die Berechtigungen die Datei, um proaktiv nicht 453 00:19:35,180 --> 00:19:37,650 sein die Standardeinstellung, die ist, dass nur ich lesen kann 454 00:19:37,650 --> 00:19:39,220 und schreiben Sie es, ich als Eigentümer. 455 00:19:39,220 --> 00:19:43,540 Ich möchte die ganze Welt alle zu in der Lage, meine Akte zu lesen, so zu sprechen. 456 00:19:43,540 --> 00:19:44,950 Lesen bedeutet nur angezeigt werden kann. 457 00:19:44,950 --> 00:19:49,780 >> Und in der Tat, wie Sie im Problem zu sehen set sieben, das ist, was die diese R Mittelwert. 458 00:19:49,780 --> 00:19:53,160 Diese beiden R Mittelwert jeder zu sonst auf der Welt auch lesen, 459 00:19:53,160 --> 00:19:55,300 vor allem jetzt, es ist in diesem Verzeichnis. 460 00:19:55,300 --> 00:19:59,620 Also der einfachste Weg, dies zu beheben, ist gehen, um meine schnelle und tun chmod für den Wandel 461 00:19:59,620 --> 00:20:05,580 Modus und dann eine + R, insgesamt, jeder, alle, plus R für Lese-, 462 00:20:05,580 --> 00:20:07,944 und dann cat.jpg Enter. 463 00:20:07,944 --> 00:20:10,360 Nichts scheint zu passieren, die bedeutet in der Regel eine gute Sache. 464 00:20:10,360 --> 00:20:13,850 So ls-l again-- jetzt schauen wir uns cat.jpg. 465 00:20:13,850 --> 00:20:15,750 Und diese Erlaubnis scheint sich geändert zu haben. 466 00:20:15,750 --> 00:20:18,670 Nebenbei bemerkt, wenn Sie machen ein Fehler und Sie, zum Beispiel, 467 00:20:18,670 --> 00:20:23,210 gerade gemacht your-- ich nicht wissen-- Essay öffentlich durch Zufall erreichbar, 468 00:20:23,210 --> 00:20:25,480 Sie das Gegenteil tun können, chmod a-r. 469 00:20:25,480 --> 00:20:25,909 470 00:20:25,909 --> 00:20:28,200 Obwohl ehrlich gesagt, sollte es nicht werden in das öffentliche Verzeichnis 471 00:20:28,200 --> 00:20:29,760 sowieso, wenn das der Sorge. 472 00:20:29,760 --> 00:20:32,475 >> So, jetzt ist wieder gehen zu lassen meinem Browser und laden. 473 00:20:32,475 --> 00:20:32,904 474 00:20:32,904 --> 00:20:34,820 Und ich werde klicken der kleine Ghostbusters 475 00:20:34,820 --> 00:20:38,030 Symbol, dass ein Teil des klaren Bildschirm, so können wir neue Anfragen sehen. 476 00:20:38,030 --> 00:20:40,630 Und in der Tat, hier ist Grump Cat aus der Zeit vor. 477 00:20:40,630 --> 00:20:43,010 Aber noch wichtiger ist, Technisch gibt es 478 00:20:43,010 --> 00:20:45,565 die Zahl 200, die heißt, wir haben es OK. 479 00:20:45,565 --> 00:20:47,190 Na gut, das ist also alles schön und gut. 480 00:20:47,190 --> 00:20:48,940 Aber wir sind nicht so die beste von Websites, 481 00:20:48,940 --> 00:20:51,967 noch werden wir zu hart, um zu versuchen machen die schickste von Websites heute. 482 00:20:51,967 --> 00:20:54,550 Aber lassen Sie uns wenigstens etwas zu tun Super vertraut, bevor Rasseln 483 00:20:54,550 --> 00:20:56,030 Aus einigen anderen Tags. 484 00:20:56,030 --> 00:20:58,470 Also nehme ich wollen nicht nur eine Katze hier. 485 00:20:58,470 --> 00:21:02,530 Angenommen, ich eigentlich wollen diese Katze auf etwas zu verknüpfen. 486 00:21:02,530 --> 00:21:07,210 >> Ich könnte zum Beispiel tun so etwas wie dieses. 487 00:21:07,210 --> 00:21:08,580 488 00:21:08,580 --> 00:21:12,890 ein für Anker href für hyper Referenz equals-- 489 00:21:12,890 --> 00:21:17,440 und lasst uns einfach etwas zu tun wie www.google.com Nähe 490 00:21:17,440 --> 00:21:19,540 zitieren Klammer zu. 491 00:21:19,540 --> 00:21:22,000 Und jetzt für Katzen zu suchen. 492 00:21:22,000 --> 00:21:23,520 Schließen Anker-Tag. 493 00:21:23,520 --> 00:21:26,760 So hat dies nur eine Sorte grundlegend neuer Detail. 494 00:21:26,760 --> 00:21:28,190 Das Tag ist natürlich unterschiedlich. 495 00:21:28,190 --> 00:21:31,770 Es ist der Name einer für Anker href oder Hyper Referenz. 496 00:21:31,770 --> 00:21:35,269 >> Aber noch wichtiger ist, es gibt diese syntaktische Funktion hier. 497 00:21:35,269 --> 00:21:37,810 Dies ist, was wir lostelefonieren nicht ein Tag, sondern ein Attribut. 498 00:21:37,810 --> 00:21:40,830 Und ein Attribut ist etwas, ändert das Verhalten eines Etiketts. 499 00:21:40,830 --> 00:21:45,400 Und dieses Attribut href, Mittel das Verhalten des Ankers zu verändern 500 00:21:45,400 --> 00:21:48,430 so dass, wenn es angeklickt wird, es geht auf diese URL hier. 501 00:21:48,430 --> 00:21:50,330 Und natürlich ist, dass URL Google. 502 00:21:50,330 --> 00:21:53,951 >> Unterdessen, was ist das Text hier sein wird? 503 00:21:53,951 --> 00:21:55,950 Nun, das wird sein was das menschliche tatsächlich 504 00:21:55,950 --> 00:21:58,470 sieht wie die unterstrichenen Link, so einfach ist das. 505 00:21:58,470 --> 00:21:59,220 Also lassen Sie uns versuchen, diese. 506 00:21:59,220 --> 00:21:59,980 Lassen Sie mich es zu retten. 507 00:21:59,980 --> 00:22:01,650 Ich bin immer noch in hello.html. 508 00:22:01,650 --> 00:22:05,360 Aber in den Versionen online, werden Sie sehen, die tatsächlichen Dateinamen wir bereits vorgefertigt sind. 509 00:22:05,360 --> 00:22:06,805 Lassen Sie mich gehen Sie vor und laden. 510 00:22:06,805 --> 00:22:08,680 Und jetzt ist es ein sehr berauschend Seite noch. 511 00:22:08,680 --> 00:22:10,910 Aber wenn ich den Mauszeiger über sind-- und es ist ein wenig klein, 512 00:22:10,910 --> 00:22:13,576 aber-- Sie in den Grund sehen können linken Ecke des Bildschirms, 513 00:22:13,576 --> 00:22:15,242 es ist in der Tat werde google.com. 514 00:22:15,242 --> 00:22:19,280 Und wenn ich auf, dass, wird es Schneebesen me Weg zum eigentlichen Google. 515 00:22:19,280 --> 00:22:22,610 >> Aber bemerken hier eine Chance für Ausbeutung, nur nebenbei. 516 00:22:22,610 --> 00:22:25,150 Und wir kommen wieder, andere kommen Fragen der Sicherheit vor lang. 517 00:22:25,150 --> 00:22:29,290 Da gibt es diese Zweiteilung zwischen wo Sie gehen und was Sie sagen, 518 00:22:29,290 --> 00:22:34,722 Sie könnten etwas tun this-- http://www.google.com. 519 00:22:34,722 --> 00:22:37,134 OK, und jetzt, wenn ich neu zu laden nach dem Speichern die Seite, 520 00:22:37,134 --> 00:22:38,800 es sieht aus wie werde ich zu Google. 521 00:22:38,800 --> 00:22:40,966 Aber es gibt keinen Grund, warum ich haben, um zu Google gehen, oder? 522 00:22:40,966 --> 00:22:47,460 Ich könnte tatsächlich so etwas wie gehen badguy.com, laden Sie die Seite hier. 523 00:22:47,460 --> 00:22:49,750 Und beachtet, es sieht immer noch wie Google. 524 00:22:49,750 --> 00:22:52,020 Und nur wenn ich scharf genug hier zu schweben 525 00:22:52,020 --> 00:22:54,770 sehe ich es auch werde gehen Sie zu einem anderen Ort. 526 00:22:54,770 --> 00:22:57,400 >> Also, wenn Sie jemals bekommen haben eine E-Mail, insbesondere 527 00:22:57,400 --> 00:22:59,610 ein von Paypal oder scheinbar von Paypal 528 00:22:59,610 --> 00:23:01,830 fragen Sie sich anmelden auf Ihr Konto, dies 529 00:23:01,830 --> 00:23:06,380 Deshalb sollten Sie nie immer auf Links in E-Mails, 530 00:23:06,380 --> 00:23:07,930 ehrlich gesagt, alle Links in E-Mails. 531 00:23:07,930 --> 00:23:10,380 Wenn Sie wissen, Sie haben tatsächlich Geld in Paypal oder Bank 532 00:23:10,380 --> 00:23:14,250 von Amerika oder Fidelity oder jede Website, manuell eingeben es. 533 00:23:14,250 --> 00:23:17,530 Da schauen Sie, wie einfach es ist, jemand in Vorlage zu betrügen, was 534 00:23:17,530 --> 00:23:18,526 sieht aus wie ein Link. 535 00:23:18,526 --> 00:23:20,400 Aber es eigentlich könnte gehen absolut überall. 536 00:23:20,400 --> 00:23:23,301 >> Und es gibt weit größere Bedrohungen als diese. 537 00:23:23,301 --> 00:23:25,300 In der Tat ist dies ein wenig einer Tangente nur, doch 538 00:23:25,300 --> 00:23:28,430 der besten, die ich je gesehen habe die seit geschlossen wurde, 539 00:23:28,430 --> 00:23:34,060 ist jemand haben Leute zu-- so könnte sagen, 540 00:23:34,060 --> 00:23:37,660 Klicken Sie hier, um sich anmelden Ihrem Konto, ein Bankkonto. 541 00:23:37,660 --> 00:23:40,985 Und dies war Bank of the West. 542 00:23:40,985 --> 00:23:43,030 543 00:23:43,030 --> 00:23:44,250 >> So jemand kaufte dieses. 544 00:23:44,250 --> 00:23:47,090 Und es ist ein wenig leichter zu sehen es in einer Mono proportionale Schriftart gezoomt 545 00:23:47,090 --> 00:23:49,190 in auf einem 30-Fuß-Projektor. 546 00:23:49,190 --> 00:23:51,720 Aber wenn es kleine Schrift in eine E-Mail, die Sie erhalten, 547 00:23:51,720 --> 00:23:54,690 das sieht aus wie bankofthewest.com, nicht bankofthevvest.com, 548 00:23:54,690 --> 00:23:58,230 die jemand hatte 10 $ gezahlt, um zu kaufen. 549 00:23:58,230 --> 00:24:00,840 Und dann dieser führte sie zu der Äquivalent einige schlechte Website. 550 00:24:00,840 --> 00:24:05,540 >> Und du wirst sehen too-- tatsächlich wir tun können this-- wenn ich auf die eigentliche Website, 551 00:24:05,540 --> 00:24:10,335 bankofthewest.com wieder Rückruf vom letzten Mal 552 00:24:10,335 --> 00:24:13,210 dass, wenn dies ihre Webseite und du bist neugierig, wie es funktioniert, 553 00:24:13,210 --> 00:24:15,610 man kann sicherlich zu gehen Chrome Developer Tools. 554 00:24:15,610 --> 00:24:18,890 Und Sie können alle sehen HTML schön dort formatiert. 555 00:24:18,890 --> 00:24:20,890 >> Aber mehr auf den Punkt, Sie cam-- wir schließen 556 00:24:20,890 --> 00:24:24,760 this-- Sie zu Ansicht Entwickler Quelltext anzeigen. 557 00:24:24,760 --> 00:24:25,770 558 00:24:25,770 --> 00:24:28,350 Warum ich nicht einfach kopieren Sie all das und dann habe ich 559 00:24:28,350 --> 00:24:31,630 kann in meinem kleinen gedit Fenster gehen hier und mache meine eigene Webseite. 560 00:24:31,630 --> 00:24:33,210 Speichern Sie diese in hello.html. 561 00:24:33,210 --> 00:24:36,770 Und wahrscheinlich das wird zu brechen, denn es ist nicht so einfach in der Regel. 562 00:24:36,770 --> 00:24:41,590 Aber jetzt, wenn ich neu zu laden meine eigene Seite auf Eigene CS50 Appliance und traf reload, 563 00:24:41,590 --> 00:24:42,990 OK, brach ein paar Sachen. 564 00:24:42,990 --> 00:24:45,750 Aber ich bin mir ziemlich nahe daran, meine eigene Banking-Website, oder? 565 00:24:45,750 --> 00:24:46,570 All dies HTML-- 566 00:24:46,570 --> 00:24:47,370 >> [Gelächter] 567 00:24:47,370 --> 00:24:49,210 >> DAVID J MALAN: -I nicht actually-- und Sie 568 00:24:49,210 --> 00:24:52,210 wissen, dass es jemanden gibt, tatsächlich auf diese Links auch. 569 00:24:52,210 --> 00:24:54,864 So klar, brach ein paar Sachen. 570 00:24:54,864 --> 00:24:56,780 Aber das wird dazu führen, uns in eine Diskussion, 571 00:24:56,780 --> 00:25:00,810 unnötig gerade jetzt, als zu dem, was CSS, Cascading Style Sheets sind, 572 00:25:00,810 --> 00:25:03,410 und wie Sie tatsächlich laden Sie die anderen HTML-Dateien 573 00:25:03,410 --> 00:25:06,140 und JPEG-Dateien GIF-Dateien, die Website verwenden könnte. 574 00:25:06,140 --> 00:25:07,960 Aber all das ist erfüllbar. 575 00:25:07,960 --> 00:25:11,110 Aber es wirklich darauf an, Diese sehr einfache Heuristiken. 576 00:25:11,110 --> 00:25:14,450 >> So, jetzt ist nur durch eine überfliegen lassen Einige andere Beispiele von HTML 577 00:25:14,450 --> 00:25:16,680 nur, um Ihnen ein Gefühl zu geben von dem, was Sie sonst noch tun können. 578 00:25:16,680 --> 00:25:18,670 Zum Beispiel ist dies list.html. 579 00:25:18,670 --> 00:25:23,240 Angenommen, ich wollte eine Web-Seite mit einer Liste der Häuser in der Quad. 580 00:25:23,240 --> 00:25:28,960 Ich könnte den ul-Tag für ungeordnete verwenden Liste und das Listenelement Kind 581 00:25:28,960 --> 00:25:33,760 und dann durchlaufen over-- oder Liste rather-- die Häuser in Frage. 582 00:25:33,760 --> 00:25:36,080 >> Und wenn ich öffnen Sie diese auf, lasst uns dies tun. 583 00:25:36,080 --> 00:25:40,670 Gehen wir nicht hello.html, sondern list.html. 584 00:25:40,670 --> 00:25:42,160 Verdammt. 585 00:25:42,160 --> 00:25:43,000 Wie kann ich dieses Problem beheben? 586 00:25:43,000 --> 00:25:45,679 587 00:25:45,679 --> 00:25:47,220 Es ist das gleiche Problem wie vorher, oder? 588 00:25:47,220 --> 00:25:52,510 Also lass mich tun chmod-- oops-- chmod a + r list.html. 589 00:25:52,510 --> 00:25:54,610 590 00:25:54,610 --> 00:25:59,610 Und jetzt, wenn ich wieder nach meinem Browser und klicken Sie auf Neu laden, da ist es. 591 00:25:59,610 --> 00:26:02,360 Also, wenn Sie sich jemals gewünscht haben, um eine Liste mit Aufzählungszeichen, können Sie das tun. 592 00:26:02,360 --> 00:26:06,210 Wenn Sie super schickes zu sein und wollen eine geordnete Liste, nicht eine ungeordnete Liste, 593 00:26:06,210 --> 00:26:10,170 ändern diejenigen, die ol, laden Sie die Seite, und Jetzt wird der Browser es für Sie zu nummerieren. 594 00:26:10,170 --> 00:26:11,241 >> Was können wir noch tun? 595 00:26:11,241 --> 00:26:13,990 Nun, ein paar Andere-- wenn Sie lange Absätze der text-- haben 596 00:26:13,990 --> 00:26:15,698 zum Beispiel, einige Lateinischen Text wie this-- 597 00:26:15,698 --> 00:26:20,730 und Sie können es in separaten Absätzen möchten, Open P, in der Nähe p für den Absatz-Tag. 598 00:26:20,730 --> 00:26:22,010 Und machen Sie es wieder und wieder. 599 00:26:22,010 --> 00:26:26,600 Und wenn ich jetzt öffnen Sie diese Datei, paragraphs.html, na ja, diese 600 00:26:26,600 --> 00:26:27,570 ist immer ärgerlich. 601 00:26:27,570 --> 00:26:34,320 So, jetzt gehen Sie einfach zurück zu lassen, meine Aufforderung chmod a + r r Sterne .html-- 602 00:26:34,320 --> 00:26:36,099 eine nette kleine Joker sozusagen. 603 00:26:36,099 --> 00:26:37,890 Es sollte alle fix diese Probleme für mich. 604 00:26:37,890 --> 00:26:38,990 Lassen Sie uns erneut zu laden. 605 00:26:38,990 --> 00:26:40,500 Es gibt drei Absätze. 606 00:26:40,500 --> 00:26:42,930 >> Und jetzt gehen Sie vor lassen und eröffnen einen anderen. 607 00:26:42,930 --> 00:26:44,310 Wie wäre es mit Tisch? 608 00:26:44,310 --> 00:26:46,440 Du wirst Tabelle sieht bemerken ein wenig komplexer. 609 00:26:46,440 --> 00:26:49,110 Aber es ist das gleiche idea-- Open-Tag, offene Tag, 610 00:26:49,110 --> 00:26:51,360 offen, offen, öffnen, schließen Tag, offene Tag. 611 00:26:51,360 --> 00:26:54,410 Und dies geschieht, um zu stehen Tisch, dessen Grenze ist offenbar 612 00:26:54,410 --> 00:26:58,500 werde ein Dicke 1-- unabhängig dass means-- Tabellenzeile, Tisch 613 00:26:58,500 --> 00:27:00,320 Daten, die eine Zelle bedeutet. 614 00:27:00,320 --> 00:27:03,840 Und wenn ich wieder nach meinem Browser hier und gehen Sie zu table.html, 615 00:27:03,840 --> 00:27:05,840 Sie können etwas sehen wie diese, abscheulich. 616 00:27:05,840 --> 00:27:07,840 Aber wir werden auf den Punkt kommen wo wir können tatsächlich 617 00:27:07,840 --> 00:27:09,260 die Dinge schöner als das. 618 00:27:09,260 --> 00:27:10,530 >> Also lassen Sie mich jetzt festgelegt. 619 00:27:10,530 --> 00:27:11,870 Es gibt Trauben von mehreren Tags. 620 00:27:11,870 --> 00:27:15,225 Und HTML ist wunderbar abholen weil, ehrlich gesagt, alles, was Sie tun müssen, 621 00:27:15,225 --> 00:27:17,600 bei bestehenden Webseiten aussehen , mit denen Sie vertraut sind. 622 00:27:17,600 --> 00:27:20,340 Und du bist wie, oh, das ist, wie sie taten dies ästhetisch. 623 00:27:20,340 --> 00:27:23,159 >> Oder Sie können sich bis alle Online Ressource, wie HTML funktioniert, 624 00:27:23,159 --> 00:27:25,700 und du wirst sehen, dass es eine gesamten Wortschatz der anderen Tags. 625 00:27:25,700 --> 00:27:30,110 Aber mit der einfachen mentalen Modells Allein, dass fast jeder Tag, das Sie öffnen 626 00:27:30,110 --> 00:27:33,620 hat, ist es geschlossen werden wirklich nicht ausreichen, um sich selbst zu lehren 627 00:27:33,620 --> 00:27:36,950 HTML nach verstehen diese Grundideen des Tags 628 00:27:36,950 --> 00:27:40,520 und Attribute und die Wohlgeformt dass wir gesprochen haben, 629 00:27:40,520 --> 00:27:44,697 nichts schließen, dass wir vielleicht zu öffnen so dass wir nicht zu verwechseln einen Browser. 630 00:27:44,697 --> 00:27:46,780 Also lassen Sie uns nun zu nehmen diese ein interessanter Ebene 631 00:27:46,780 --> 00:27:48,100 indem Sie auf der tatsächlichen. 632 00:27:48,100 --> 00:27:51,095 Und lassen Sie uns zu meinem Mac gehen hier zu google.com. 633 00:27:51,095 --> 00:27:52,280 634 00:27:52,280 --> 00:27:54,020 Und jetzt notice-- wir dies tun. 635 00:27:54,020 --> 00:27:57,280 Ich gong um zu gehen Einstellungen Sucheinstellungen. 636 00:27:57,280 --> 00:28:01,070 Ich möchte zum Ausschalten dieses lästige Instant Ergebnisse Sache, wo es sofort 637 00:28:01,070 --> 00:28:02,450 beginnt die Reaktion auf Ihre Eingabe. 638 00:28:02,450 --> 00:28:05,300 Packen wir älteren Schule, so wir tatsächlich sehen, was los ist. 639 00:28:05,300 --> 00:28:08,260 >> Also werde ich rette mein Google-Einstellungen hier. 640 00:28:08,260 --> 00:28:11,160 Und jetzt notice-- ich zu gehen Suche nach so etwas wie Katzen. 641 00:28:11,160 --> 00:28:14,500 Und es ist immer noch Auto tun Komplett hier, aber basierend auf Dinge 642 00:28:14,500 --> 00:28:15,970 Menschen haben in der Vergangenheit eingegeben haben. 643 00:28:15,970 --> 00:28:17,490 Aber bemerken, was passieren wird. 644 00:28:17,490 --> 00:28:20,272 >> In der URL im Moment ist dies nur google.com. 645 00:28:20,272 --> 00:28:22,650 Und technisch ist es Slash. 646 00:28:22,650 --> 00:28:25,910 Google ist nur das Speichern eines Zeichen und uns, dass nicht angezeigt. 647 00:28:25,910 --> 00:28:30,400 Sie zeigen uns https, nur Super beruhigend, dass wir sein 648 00:28:30,400 --> 00:28:32,850 an einem sicheren und verschlüsselten Seite. 649 00:28:32,850 --> 00:28:35,690 >> Also lassen Sie mich gehen Sie vor und suchen für Katzen. 650 00:28:35,690 --> 00:28:37,670 Nun ist diese habe wirklich überwältigend schnell. 651 00:28:37,670 --> 00:28:39,470 Sehen Sie in der Länge dieser URL. 652 00:28:39,470 --> 00:28:43,070 Aber es stellt sich heraus, dass die meisten von diesem Zeug in der URL ist eigentlich ziemlich nutzlos. 653 00:28:43,070 --> 00:28:45,320 Ich werde anfangen zu löschen Dinge, die ich nicht verstehe. 654 00:28:45,320 --> 00:28:46,560 655 00:28:46,560 --> 00:28:47,360 Ich sehe Katzen. 656 00:28:47,360 --> 00:28:48,470 Ich verstehe, Katzen. 657 00:28:48,470 --> 00:28:50,380 Ich weiß nicht, warum Katzen sind wieder da. 658 00:28:50,380 --> 00:28:52,620 Ich weiß wirklich nicht, was dieser Unsinn ist. 659 00:28:52,620 --> 00:28:56,030 Also ich werde einfach zu halten Hervorhebung und Löschen Zeug 660 00:28:56,030 --> 00:28:59,905 dass ich nicht verstehe, Destillieren der URL in genau dies. 661 00:28:59,905 --> 00:29:00,920 662 00:29:00,920 --> 00:29:02,270 >> Nun lassen Sie mich noch einmal einzugeben. 663 00:29:02,270 --> 00:29:03,814 Es sieht aus wie Google funktioniert immer noch. 664 00:29:03,814 --> 00:29:06,980 Also aus irgendeinem Grund, sie Zugabe bist ein Menge Sachen, die standardmäßig auf ihre URL. 665 00:29:06,980 --> 00:29:09,000 Aber es ist nicht unbedingt erforderlich. 666 00:29:09,000 --> 00:29:10,340 Also, was ist schön wäre es damit? 667 00:29:10,340 --> 00:29:13,630 Nun, lassen Sie mich gehen Sie vor und eröffnen Chrome Inspector. 668 00:29:13,630 --> 00:29:15,960 Es gibt eine kleine Maus Abkürzung dafür. 669 00:29:15,960 --> 00:29:17,360 >> Gehen Sie auf die Registerkarte Netzwerk. 670 00:29:17,360 --> 00:29:19,340 Und jetzt lassen Sie mich neu zu laden Diese Seite noch einmal. 671 00:29:19,340 --> 00:29:20,280 Und ich halte die Umschalttaste. 672 00:29:20,280 --> 00:29:22,520 Nebenbei Browsern neigen dazu, zwischenspeichern oder speichern 673 00:29:22,520 --> 00:29:24,697 Informationen nur für Effizienz willen. 674 00:29:24,697 --> 00:29:27,280 Aber in der Regel, die Umschalttaste gedrückt halten und Nachladen wird alles erzwingen 675 00:29:27,280 --> 00:29:28,994 vom Anfang zu starten. 676 00:29:28,994 --> 00:29:30,410 Und das ist, was ich will, hier zu tun. 677 00:29:30,410 --> 00:29:33,550 >> Und all diese bemerken Zeilen, die gerade erschienen. 678 00:29:33,550 --> 00:29:37,920 Es stellt sich heraus, daß in jedem gegebenen Bahn Seite, kann es nur eine Datei sein 679 00:29:37,920 --> 00:29:43,500 involved-- hello.html-- oder es vielleicht 52 sein, wie in diesem Fall. 680 00:29:43,500 --> 00:29:45,820 Wenn ich Besuch google.com, anscheinend, mein Browser 681 00:29:45,820 --> 00:29:49,650 Auftakt 52 separaten HTTP-Anfragen. 682 00:29:49,650 --> 00:29:50,520 Warum ist das so? 683 00:29:50,520 --> 00:29:53,380 >> Nun, zumin was drin aussehen dieser Webseite bis oben. 684 00:29:53,380 --> 00:29:55,620 Es gibt nicht nur Text, aber es gibt tatsächlich Bilder 685 00:29:55,620 --> 00:29:57,130 von Katzen auf die rechte. 686 00:29:57,130 --> 00:29:59,110 Es gibt einen bunten Logo hier oben links. 687 00:29:59,110 --> 00:30:01,750 Es gibt all diese Symbole ein Mikrofon und so weiter. 688 00:30:01,750 --> 00:30:05,130 Es gibt eine Menge von Stücken, Gebäude Blöcke, kratz Stück, wenn man so will, 689 00:30:05,130 --> 00:30:06,250 zu dieser Web-Seite. 690 00:30:06,250 --> 00:30:10,310 Und was der Browser tut auf immer die erste Datei, die 691 00:30:10,310 --> 00:30:16,180 ist diese Zeile hier ist es im wesentlichen Iteration über die HTML-top 692 00:30:16,180 --> 00:30:19,880 nach unten, von links nach rechts, auf der Suche nach Dinge wie Image-Tags oder anderen Tags 693 00:30:19,880 --> 00:30:23,160 erwähnens anderen Dateien werden und wenn es sie sieht, geht und holt sie 694 00:30:23,160 --> 00:30:26,050 via HTTP, lebensfähigen Ganzen Umschlag Metapher, 695 00:30:26,050 --> 00:30:29,670 und dann zeigt sie in der entsprechenden Stelle in der Webseite. 696 00:30:29,670 --> 00:30:33,370 >> Aber beachten Sie hier, wenn ich den Schwerpunkt auf dem ersten Wurf, suchen Katzen, 697 00:30:33,370 --> 00:30:37,090 feststellen, dass in der Tat ist es mit HTTP 1.1. 698 00:30:37,090 --> 00:30:41,690 Und leider, Google Chrome jetzt in Version 39 699 00:30:41,690 --> 00:30:45,110 ist eine Art Verdummung Dinge nach unten und nicht zeigen uns die aktuellen Überschriften. 700 00:30:45,110 --> 00:30:49,680 Aber was war in der Tat schickte eine Anfrage für nicht zerschneiden, sondern / search? q = Katzen. 701 00:30:49,680 --> 00:30:52,830 702 00:30:52,830 --> 00:30:54,340 >> Nun, warum ist das wichtig? 703 00:30:54,340 --> 00:30:57,110 Nun, ich werde zu folgern daraus, dass, wenn Sie Google 704 00:30:57,110 --> 00:31:01,520 unterstützt Abfragen dieser Form, warum nicht ich meine eigene Suche zu implementieren 705 00:31:01,520 --> 00:31:06,420 Motor für CS50, sondern nur die vordere Zweck nur die grafische Benutzeroberfläche. 706 00:31:06,420 --> 00:31:09,610 Und wir werden das hintere Ende auslagern, die tatsächliche Suchergebnisse auf Google. 707 00:31:09,610 --> 00:31:10,510 >> Also, wie kann ich dies tun? 708 00:31:10,510 --> 00:31:13,820 Nun, lassen Sie mich in gedit hierher zu gehen. 709 00:31:13,820 --> 00:31:19,180 Und lassen Sie mich gehen Sie vor und öffnen bis, sagen wir, eine neue Datei. 710 00:31:19,180 --> 00:31:22,280 Und ich werde dies sparen vorübergehend als Such-0.html. 711 00:31:22,280 --> 00:31:25,111 712 00:31:25,111 --> 00:31:27,860 Und dann irgendwann, werden wir schnell uns auf die, die ich bereits vorgefertigt sind. 713 00:31:27,860 --> 00:31:30,190 >> Und ich bin zu gehen schnell schüren doc Typ 714 00:31:30,190 --> 00:31:33,840 html offene Klammer html Klammer zu html. 715 00:31:33,840 --> 00:31:38,390 Dann werde ich den Kopf zu tun enge Kopf-Open-Titel CS50 716 00:31:38,390 --> 00:31:40,150 Suchen Sie stattdessen der Google-Suche. 717 00:31:40,150 --> 00:31:43,480 Hier unten werde ich haben der Körper, hier unten nahe Körper. 718 00:31:43,480 --> 00:31:45,835 Und jetzt brauche ich CS50 suchen. 719 00:31:45,835 --> 00:31:47,710 Und tatsächlich, wir bauen diese schrittweise. 720 00:31:47,710 --> 00:31:51,043 Ich werde weitermachen und schließen diese und tatsächlich legte es in meinen öffentlichen Verzeichnis. 721 00:31:51,043 --> 00:31:52,730 Also gib mir nur einen Moment. 722 00:31:52,730 --> 00:31:55,390 Suche-0.html-- ich zu gehen zeitlich nennen es search.html. 723 00:31:55,390 --> 00:31:56,600 724 00:31:56,600 --> 00:31:59,750 Ich werde es chmod a + r search.html. 725 00:31:59,750 --> 00:32:01,072 726 00:32:01,072 --> 00:32:02,280 Und jetzt bin ich dabei, es zu öffnen. 727 00:32:02,280 --> 00:32:03,224 728 00:32:03,224 --> 00:32:04,390 Alles klar, das war also schnell. 729 00:32:04,390 --> 00:32:06,800 Aber das Ziel war einfach zu uns auf den Punkt kommen 730 00:32:06,800 --> 00:32:09,630 der mit diesem Text Datei namens search.html. 731 00:32:09,630 --> 00:32:10,940 732 00:32:10,940 --> 00:32:12,790 Also nicht viel zu noch aussehen. 733 00:32:12,790 --> 00:32:16,970 Ja, wenn ich zu meinem Browser und gehen Sie zu search.html, das ist alles es ist. 734 00:32:16,970 --> 00:32:17,720 Aber wissen Sie was? 735 00:32:17,720 --> 00:32:19,000 Ich kann ein wenig schicker sein. 736 00:32:19,000 --> 00:32:22,710 Ich in einem Buch gelesen, dass es eine Überschrift Tag namens h1. 737 00:32:22,710 --> 00:32:26,100 Und ich werde weitermachen und verwenden zu öffnende h1 und nahe h1. 738 00:32:26,100 --> 00:32:27,220 Laden Sie die Seite. 739 00:32:27,220 --> 00:32:29,600 Und jetzt ist es größer und kühner, gar nicht so interessant, 740 00:32:29,600 --> 00:32:32,399 aber zumindest strukturell interessanter. 741 00:32:32,399 --> 00:32:33,940 Aber jetzt lassen Sie mich ein anderes Tag einzuführen. 742 00:32:33,940 --> 00:32:36,500 Es stellt sich heraus, es gibt eine Form-Tag. 743 00:32:36,500 --> 00:32:38,400 Und lassen Sie mich diesen Tag zu schließen. 744 00:32:38,400 --> 00:32:40,830 Und es stellt sich heraus, es gibt ein Eingang-Tag, 745 00:32:40,830 --> 00:32:44,600 hat ein Attribut namens Typ, der ist der Datentyp des Feldes, 746 00:32:44,600 --> 00:32:45,200 wenn man so will. 747 00:32:45,200 --> 00:32:47,050 Und wird sich vom Typ Text sein. 748 00:32:47,050 --> 00:32:52,200 Und sein Wert wird um CS50 suchen sein. 749 00:32:52,200 --> 00:32:53,850 Close-Tag. 750 00:32:53,850 --> 00:32:57,100 Und es geht um keine Vorstellung sein Öffnen und Schließen mit Schlagworte zu trennen. 751 00:32:57,100 --> 00:33:00,300 >> Lassen Sie mich gehen zurück über hier und sehen, was los ist, neu zu laden. 752 00:33:00,300 --> 00:33:01,380 Anreise interessant. 753 00:33:01,380 --> 00:33:02,950 Es sieht aus wie es ist ein Textfeld. 754 00:33:02,950 --> 00:33:04,080 755 00:33:04,080 --> 00:33:06,999 Und eigentlich wollte ich nicht um einen Wert noch dort setzen. 756 00:33:06,999 --> 00:33:10,040 Lassen Sie mich wieder hier und tatsächlich bekommen dieser Wert zu befreien, um es einfach zu halten. 757 00:33:10,040 --> 00:33:12,939 Anstelle eines Wertes, was ich wollte um dieses Ding zu geben war ein Name. 758 00:33:12,939 --> 00:33:15,230 Und ich weiß nicht, was es ist, also werde ich zurückkommen. 759 00:33:15,230 --> 00:33:18,270 >> Aber unter dem möchte ich Eingabetyp zu tun = einreichen. 760 00:33:18,270 --> 00:33:19,840 761 00:33:19,840 --> 00:33:22,120 Und dieser Wert wird CS50 suchen sein. 762 00:33:22,120 --> 00:33:24,850 Und wir werden, warum ich sehen bewegt den Wert auf diese. 763 00:33:24,850 --> 00:33:28,900 Als ich neu laden, scheine ich jetzt Die Anfänge meiner eigenen Suche 764 00:33:28,900 --> 00:33:30,820 Motor, super scheußlich, obwohl ehrlich gesagt, ist es 765 00:33:30,820 --> 00:33:34,260 kein Weitwurf von dem, was Googles Standardseite aussieht. 766 00:33:34,260 --> 00:33:37,950 >> Wenn ich jetzt hier, kann ich geben Katzen und hoffentlich auf Suchen. 767 00:33:37,950 --> 00:33:40,380 Aber ich bin noch nicht ganz fertig, weil ich nicht realisiert, 768 00:33:40,380 --> 00:33:41,045 Offensichtlich eine Datenbank. 769 00:33:41,045 --> 00:33:42,940 Ich habe nicht gecrawlt die Web-Suchergebnisse. 770 00:33:42,940 --> 00:33:44,840 Also muss ich, dass bei Google auszulagern. 771 00:33:44,840 --> 00:33:46,290 Also, wie kann ich das tun? 772 00:33:46,290 --> 00:33:49,170 >> Nun, zunächst einmal alles, was ich brauchen, um hinzuzufügen und Action 773 00:33:49,170 --> 00:33:58,460 zuschreiben meine Form-Tag, ist http://www.google.com/search. 774 00:33:58,460 --> 00:34:01,180 Und ich weiß, dass nur vom Haben Dazu suchen eng geschlossen 775 00:34:01,180 --> 00:34:02,505 an ihren URLs. 776 00:34:02,505 --> 00:34:03,380 Und jetzt nehmen Sie eine Vermutung. 777 00:34:03,380 --> 00:34:09,090 Wie sollte diese Textfeld wahrscheinlich bezeichnet werden, basierend auf dem wir kamen 778 00:34:09,090 --> 00:34:09,754 aus der Zeit vor? 779 00:34:09,754 --> 00:34:11,896 780 00:34:11,896 --> 00:34:13,290 >> PUBLIKUM:? Q. 781 00:34:13,290 --> 00:34:14,370 >> DAVID J MALAN:? Q. 782 00:34:14,370 --> 00:34:17,800 Und wir wissen nicht wirklich Frage müssen markieren es stellt sich heraus, aber q ist in der Tat darauf 783 00:34:17,800 --> 00:34:20,489 q für die Suche wahrscheinlich durch Standardmäßig nur weil das ist, 784 00:34:20,489 --> 00:34:23,060 was Larry und Sergey kam mit vor Jahren. 785 00:34:23,060 --> 00:34:24,739 So, jetzt lassen Sie mich diese Seite neu zu laden. 786 00:34:24,739 --> 00:34:26,409 Es sieht nicht so viel anders. 787 00:34:26,409 --> 00:34:28,120 Aber jetzt schau, was passiert. 788 00:34:28,120 --> 00:34:32,360 >> Wenn ich schreibe bei Katzen und Klick CS50 Suchen und loslassen, 789 00:34:32,360 --> 00:34:35,770 merke ich bekommen entführt weg, um tatsächliche Google. 790 00:34:35,770 --> 00:34:38,150 Nun, Google ist, ein wenig ärgerlich, dass sie 791 00:34:38,150 --> 00:34:41,877 Anhängen eines zusätzlichen Parameters, wenn man so will, auf die URL. 792 00:34:41,877 --> 00:34:43,960 Das ist alles Geschehen automatisch auf Google Seite. 793 00:34:43,960 --> 00:34:48,730 >> Der wichtigste Teil ist, dass ich scheine um diese Anforderung generiert haben hier. 794 00:34:48,730 --> 00:34:50,179 Und in der Tat, das ist, was passiert. 795 00:34:50,179 --> 00:34:53,040 Wenn Sie HTML haben, dass sieht so aus, diese 796 00:34:53,040 --> 00:34:57,620 ist eine Art von Web-Entwicklern Notation zu sagen, gehen Sie vor und erstellen Sie ein Formular 797 00:34:57,620 --> 00:34:59,990 dass, wenn es abgegeben, es wird auf diese URL gehen. 798 00:34:59,990 --> 00:35:03,430 Und wenn die URL bereitgestellt Werte für Dinge wie q, 799 00:35:03,430 --> 00:35:05,440 nicht nur auf diese URL gehen. 800 00:35:05,440 --> 00:35:08,210 Eigentlich gehen Sie zu Frage Marke und dann q = Katzen. 801 00:35:08,210 --> 00:35:09,590 802 00:35:09,590 --> 00:35:13,060 Fügen Sie den Parameter, dem HTTP Parameter so. 803 00:35:13,060 --> 00:35:15,590 >> Und nur um super präzise, was gerade hier-- gefolgert 804 00:35:15,590 --> 00:35:18,130 aber ich werde mehr explicit-- ist dass die Methode, die ich verwenden möchte 805 00:35:18,130 --> 00:35:22,270 ist zu bekommen, anstatt etwas wie Post, die wir irgendwann sehen. 806 00:35:22,270 --> 00:35:27,710 Also kurz gesagt, einfach durch Verständnis HTML und mit einige ziemlich einfache Tags, 807 00:35:27,710 --> 00:35:30,610 Wir können nun damit beginnen, erstellen unser eigenes Frontend Benutzer 808 00:35:30,610 --> 00:35:32,850 Schnittstelle mit einem Such Motor dahinter. 809 00:35:32,850 --> 00:35:34,800 >> Aber dies ist natürlich ziemlich scheußlich. 810 00:35:34,800 --> 00:35:37,259 Lassen Sie mich also tatsächlich eröffnen eine etwas bessere Version. 811 00:35:37,259 --> 00:35:39,800 Das ist der, den ich vorbereitet in Voraus, dass hat einige Kommentare. 812 00:35:39,800 --> 00:35:41,900 Aber Sie, denn ich sehe, ziemlich neu ist. 813 00:35:41,900 --> 00:35:44,150 Also das ist schon online verfügbar. 814 00:35:44,150 --> 00:35:48,050 Und ich habe gerade präventiv gehen Sie zu https nur um es einfach zu halten. 815 00:35:48,050 --> 00:35:50,610 >> Und jetzt eröffnen eine Enttäuschung nächste Iteration diese. 816 00:35:50,610 --> 00:35:52,510 Ist die Version 1 statt 0. 817 00:35:52,510 --> 00:35:55,315 Was springt heraus an Ihnen, wie leicht in diesem Beispiel anders? 818 00:35:55,315 --> 00:35:59,480 819 00:35:59,480 --> 00:36:00,440 >> PUBLIKUM: [unverständlich]. 820 00:36:00,440 --> 00:36:03,020 >> Ja, es gibt diesen Text align Zentrum. 821 00:36:03,020 --> 00:36:04,590 Das ist ein bisschen komisch hier. 822 00:36:04,590 --> 00:36:06,150 Aber dies ist in der Tat neu. 823 00:36:06,150 --> 00:36:07,800 Und vielleicht erraten, was passieren wird. 824 00:36:07,800 --> 00:36:11,730 Wenn ich jetzt zu meinem Browser und besuchen search-1.html, 825 00:36:11,730 --> 00:36:13,090 es ist fast dasselbe. 826 00:36:13,090 --> 00:36:15,705 Aber es ist ein Schritt näher wobei ein wenig mehr hübsch. 827 00:36:15,705 --> 00:36:19,150 Es ist immer noch hässlich, aber schöner, dass zumindest alles jetzt zentriert. 828 00:36:19,150 --> 00:36:23,470 >> So stellt sich heraus, dass das, was ich bin mit wird eine andere Sprache überhaupt genannt 829 00:36:23,470 --> 00:36:25,680 CSS, Cascading Style Sheets. 830 00:36:25,680 --> 00:36:28,310 Und CSS, ehrlich gesagt, ist eine Art der, in meiner persönlichen Meinung nach, 831 00:36:28,310 --> 00:36:29,775 ein grausam gestaltet Sprache. 832 00:36:29,775 --> 00:36:33,110 Es ist sehr ärgerlich zu erinnern all die verschiedenen Einzelheiten. 833 00:36:33,110 --> 00:36:38,479 Aber es ist was die stilisiert gesamte World Wide Web heute. 834 00:36:38,479 --> 00:36:39,270 Ich beleidigt jemand. 835 00:36:39,270 --> 00:36:39,769 In Ordnung. 836 00:36:39,769 --> 00:36:43,180 Also gehen wir zurück und sehen Sie hier wie wir eigentlich mit diesem. 837 00:36:43,180 --> 00:36:45,940 Und es stellt sich heraus, zumindest ist es eigentlich eine ziemlich einfache Sprache. 838 00:36:45,940 --> 00:36:49,470 Es ist nur Schlüsselwertpaare, Eigenschaften und Werte, Eigenschaften und Werte. 839 00:36:49,470 --> 00:36:52,080 Tatsächlich ist hier ein solche Eigenschaft und Wert. 840 00:36:52,080 --> 00:36:55,890 >> Einfach mit dem Stil Attribut auf meinem Körper-Tag 841 00:36:55,890 --> 00:37:00,360 und es mit einem Wert von a Wort Doppelpunkt und ein anderes Wort, 842 00:37:00,360 --> 00:37:03,730 oder eine Eigenschaft und einen Wert, Ich kann die Ästhetik beeinträchtigen 843 00:37:03,730 --> 00:37:06,210 der Web-Seite, nicht notwendigerweise der Struktur vorhanden, 844 00:37:06,210 --> 00:37:07,550 aber die Ästhetik davon. 845 00:37:07,550 --> 00:37:10,960 Und gerade durch googeln um, merke ich, dass CSS, Cascading Style Sheets, 846 00:37:10,960 --> 00:37:14,170 unterstützt eine Eigenschaft namens text-align, deren Wert 847 00:37:14,170 --> 00:37:16,980 links, rechts oder in der Mitte, zum Beispiel. 848 00:37:16,980 --> 00:37:19,990 >> Also wenn ich jetzt neu zu laden diese Seite, was ich getan habe bekommen 849 00:37:19,990 --> 00:37:22,730 war eine zentrierte Seite aber immer noch ziemlich hässlich. 850 00:37:22,730 --> 00:37:25,770 Fahren wir fort und öffnen bis Version 2 der Suche. 851 00:37:25,770 --> 00:37:28,570 Und jetzt merke ich habe ein wenig mehr getan. 852 00:37:28,570 --> 00:37:33,760 Beachten Sie, dass Sie sich hier im Inneren des Kopfes Tag, kann es mehr als Titel. 853 00:37:33,760 --> 00:37:35,400 In der Tat, es gibt eine Stil-Tags. 854 00:37:35,400 --> 00:37:38,630 Und das ist, wo es wird immer ein wenig chaotisch seeing CSS manchmal. 855 00:37:38,630 --> 00:37:41,971 >> Beachten Sie, dass ich scheine etwas haben dass strukturell ganz anders aussieht. 856 00:37:41,971 --> 00:37:44,095 Aber hier ist der Name der Tag Ich möchte stilisiert. 857 00:37:44,095 --> 00:37:47,570 Hier sind unsere alten Freunde lockigen Hosenträger und geschlossene geschweifte Klammer. 858 00:37:47,570 --> 00:37:50,290 Und dann ist hier, dass Eigenschaft und deren Wert. 859 00:37:50,290 --> 00:37:56,300 >> Wenn ich diese Datei zu laden, search2.html, Das Ergebnis ist identisch. 860 00:37:56,300 --> 00:37:59,300 Aber es ist ein Schritt in Richtung besseres Design. 861 00:37:59,300 --> 00:38:04,560 Durch Ausklammerung dieses CSS, ich habe es nicht mit meinem HTML vermischt. 862 00:38:04,560 --> 00:38:07,560 Und in der Tat, wie wir sehen werden, konnte ich Wiederverwendung diese Eigenschaften und Werte. 863 00:38:07,560 --> 00:38:10,420 Wenn ich wollte Sträuße machen Teile meiner Web-Seite zentriert, 864 00:38:10,420 --> 00:38:13,630 Ich habe nicht den style = text-align geben Zentrum ganz über dem Platz. 865 00:38:13,630 --> 00:38:16,580 Ich kann an einem Ort setzen Vielleicht, wie sich an der Spitze. 866 00:38:16,580 --> 00:38:18,210 >> Aber auch das ist nicht das beste Design. 867 00:38:18,210 --> 00:38:21,720 In der Tat, eines der Dinge, die Sie lernen, Wie Sie mehr und mehr Zeit verbringen 868 00:38:21,720 --> 00:38:25,730 Web-Programmierung ist, dass die mehr können modularisieren Dinge und Faktor Dinge 869 00:38:25,730 --> 00:38:30,610 wie H-Dateien lassen Sie uns Faktor Sachen aus, mag helpers.c uns Faktor Dinge herauszulassen 870 00:38:30,610 --> 00:38:31,880 vor ein paar psets. 871 00:38:31,880 --> 00:38:34,200 Ebenso könnten wir wollen, dies zu erreichen. 872 00:38:34,200 --> 00:38:37,920 >> So bemerken in der Version drei search.html Ich habe 873 00:38:37,920 --> 00:38:40,610 bis der Kopf gereinigt die Seite und setzen Sie einfach 874 00:38:40,610 --> 00:38:43,320 in diesem, ein Link-Tag, das im Gegensatz zu dem Namen, 875 00:38:43,320 --> 00:38:44,700 nicht geben Ihnen einen Hyperlink. 876 00:38:44,700 --> 00:38:49,150 Es verbindet in einer anderen Datei durch ein href, dessen Wert in diesem Fall 877 00:38:49,150 --> 00:38:51,586 ist search-3.css 878 00:38:51,586 --> 00:38:52,960 Also ich merke, wir schnell gehen. 879 00:38:52,960 --> 00:38:54,600 Aber alles, was ich tue, ist eine Art der bewegliche Sachen herum. 880 00:38:54,600 --> 00:38:55,760 Lassen Sie mich offen search-3.css. 881 00:38:55,760 --> 00:38:57,114 882 00:38:57,114 --> 00:38:58,530 Da ist es, nichts wirklich zu ihm. 883 00:38:58,530 --> 00:39:02,270 Ich habe gerade kopiert und eingefügt in eine neue Datei, ähnlich wie wir einkalkuliert Zeug 884 00:39:02,270 --> 00:39:03,509 in andere Dateien vor. 885 00:39:03,509 --> 00:39:05,300 Und die result-- komplett underwhelming-- 886 00:39:05,300 --> 00:39:06,730 wird auf genau die gleiche sein. 887 00:39:06,730 --> 00:39:10,490 Aber wir ziehen toward-- nein, ist es nicht. 888 00:39:10,490 --> 00:39:11,930 Oh, ich weiß, warum. 889 00:39:11,930 --> 00:39:13,790 >> So scheint es ein Fehler zu sein. 890 00:39:13,790 --> 00:39:15,010 Und es ist in einem gewissen Sinn. 891 00:39:15,010 --> 00:39:17,730 Aber lassen Sie mich öffne meine Registerkarte Netzwerk. 892 00:39:17,730 --> 00:39:19,660 Lassen Sie mich die Seite neu. 893 00:39:19,660 --> 00:39:23,315 Ach, warum ist die CSS nicht angewendet? 894 00:39:23,315 --> 00:39:26,920 Nun, die CSS-Datei, ähnlich, hat Welt lesbar zu sein, so zu sprechen. 895 00:39:26,920 --> 00:39:28,440 Und es ist auch noch verboten. 896 00:39:28,440 --> 00:39:33,760 Also lassen Sie mir einen chmod a + r der Sternpunkt CSS-- whoops-- 897 00:39:33,760 --> 00:39:37,067 wir sind dot CSS ist nur der Dateierweiterung für CSS-Dateien. 898 00:39:37,067 --> 00:39:38,900 Nun lassen Sie mich zurück zu meinem Browser und laden. 899 00:39:38,900 --> 00:39:40,910 OK, ein wenig besser. 900 00:39:40,910 --> 00:39:42,282 >> Nun lassen Sie mich tun eine letzte Sache. 901 00:39:42,282 --> 00:39:42,990 Auf der Suche-4.html. 902 00:39:42,990 --> 00:39:44,550 903 00:39:44,550 --> 00:39:48,220 Ich habe eine Version, die ich dachte nur, war viel cooler, wenn auch weit mehr 904 00:39:48,220 --> 00:39:48,980 kompliziert. 905 00:39:48,980 --> 00:39:50,690 Schauen wir uns das Ergebnis zuerst. 906 00:39:50,690 --> 00:39:52,290 Schlie uns mehr Raum zu geben. 907 00:39:52,290 --> 00:39:54,275 Ändern Sie dies zu den Such-4, ein. 908 00:39:54,275 --> 00:39:55,430 909 00:39:55,430 --> 00:39:57,200 >> Und nun ein paar Dinge sind gebrochen. 910 00:39:57,200 --> 00:39:59,910 Ich werde zurückgehen in meinem Verzeichnis hier. 911 00:39:59,910 --> 00:40:04,190 Und jetzt bin ich nur tun ein chmod a + r auf einem file-- 912 00:40:04,190 --> 00:40:07,450 weil ich weiß, es heißt exists-- logo.gif, das ein Bild ist. 913 00:40:07,450 --> 00:40:08,590 Und jetzt neu zu laden. 914 00:40:08,590 --> 00:40:11,040 Und wow-- so jetzt bin ich ziemlich nah, ehrlich gesagt, 915 00:40:11,040 --> 00:40:15,860 um die Version von Google 1999 gefallen, und ehrlich gesagt, die 2014-Version von Google, 916 00:40:15,860 --> 00:40:16,360 richtig? 917 00:40:16,360 --> 00:40:21,920 >> So ist es jetzt gehen, um ihre Website, Letztendlich, wenn ich nach Katzen. 918 00:40:21,920 --> 00:40:23,900 Und in der Tat ist es. 919 00:40:23,900 --> 00:40:26,410 Aber was habe ich anders machen in dieser Version 4? 920 00:40:26,410 --> 00:40:28,020 So werden wir nicht zu sehr auf sie eingehen hier. 921 00:40:28,020 --> 00:40:30,100 Sie finden diese in Problem zu sehen set sieben schließlich. 922 00:40:30,100 --> 00:40:31,350 Aber merke ich habe ein paar Dinge. 923 00:40:31,350 --> 00:40:33,690 >> Ich führte ein div tag, die Abteilung ist, 924 00:40:33,690 --> 00:40:35,450 im Geiste zu einem Absatz-Tag. 925 00:40:35,450 --> 00:40:38,220 Aber ein Unternehmensbereich ist wie, hier ist eine rechteckige unsichtbaren Bereich 926 00:40:38,220 --> 00:40:39,150 des Bildschirms. 927 00:40:39,150 --> 00:40:41,680 Geben wir ihm eine einzigartige Kennung, eine Fußzeile, nur 928 00:40:41,680 --> 00:40:44,700 damit wir reden können es in unserem HTML anderswo. 929 00:40:44,700 --> 00:40:47,952 Hier ist ein weiteres div auf der Seite dessen ID werde zufrieden sein. 930 00:40:47,952 --> 00:40:49,160 Es ist der Inhalt der Seite. 931 00:40:49,160 --> 00:40:51,090 Und hier ist der Kopfzeile der Seite. 932 00:40:51,090 --> 00:40:54,960 >> Mit anderen Worten, ich habe Wesentlichen in HTML bin mental 933 00:40:54,960 --> 00:40:57,700 Betrachten dieses Web-Seite als drei Komponenten, einem Kopf 934 00:40:57,700 --> 00:41:01,200 hier mit diesem unsichtbaren Rechteck, der Inhalt in der Mitte, und dann 935 00:41:01,200 --> 00:41:04,800 die Fußzeile unten, auch obwohl wir nicht sehen, diese Dinge. 936 00:41:04,800 --> 00:41:09,940 Weil ich in meinem Kopf Seite hier, oder in einem CSS-Datei, 937 00:41:09,940 --> 00:41:11,460 Ich kann diese Syntax verwenden. 938 00:41:11,460 --> 00:41:13,070 >> Header ist kein Tag. 939 00:41:13,070 --> 00:41:17,060 Es ist eine Kennung, so stellt sich heraus, dass dadurch #header, 940 00:41:17,060 --> 00:41:20,840 Ich kann jetzt einen oder mehrere anwenden Objekte, die dem Header. 941 00:41:20,840 --> 00:41:24,130 Ich kann den gleichen Inhalt zu tun, das gleiche für Inhalte. 942 00:41:24,130 --> 00:41:27,230 >> So zum Beispiel, in der Fußzeile, Ankündigung alle diese Eigenschaften ich hinzufüge. 943 00:41:27,230 --> 00:41:30,660 Und ich weiß, dass sie nur existieren durch Lesen bis zur Dokumentation für CSS. 944 00:41:30,660 --> 00:41:33,450 Schriftgröße wird smaller-- zu sein so dass einige relative Schriftgröße. 945 00:41:33,450 --> 00:41:34,741 Das Gewicht wird sich kühn zu sein. 946 00:41:34,741 --> 00:41:37,340 Margin-- wie viele Pixel rund es-- ist 20 Pixel. 947 00:41:37,340 --> 00:41:38,590 Und es geht um zentriert werden. 948 00:41:38,590 --> 00:41:40,256 >> Aber gerade jetzt, die Seite sieht wie folgt aus. 949 00:41:40,256 --> 00:41:42,840 Wenn ich mich nicht zufrieden mit mein Exemplar genau dort, 950 00:41:42,840 --> 00:41:46,560 Ich könnte so etwas wie Farbe Rot zu tun. 951 00:41:46,560 --> 00:41:50,570 Und dann kann ich diese speichern, laden, und jetzt habe ich die Fußzeile stilisiert. 952 00:41:50,570 --> 00:41:54,130 So ist dies nur anspielend auf die Macht von dem, was Sie in einer Web-Seite tun können 953 00:41:54,130 --> 00:41:55,510 die Dinge zu ändern um. 954 00:41:55,510 --> 00:41:59,080 >> Und noch viel cooler als diese, wenn Sie wollen herumzustochern mit aktuellen Websites, 955 00:41:59,080 --> 00:42:00,810 Sie können sie nicht dauerhaft ändern. 956 00:42:00,810 --> 00:42:03,640 Aber wenn ich öffnen Chrome Inspector wieder 957 00:42:03,640 --> 00:42:07,610 und ich gehe nicht auf der linken Seite hier, die von Facebook HTML zeigt, 958 00:42:07,610 --> 00:42:11,380 sondern zeigt auf der rechten Seite Seite alle seine CSS, 959 00:42:11,380 --> 00:42:13,789 Entweder und kann Dinge ändern on the fly. 960 00:42:13,789 --> 00:42:15,080 Also lassen Sie mich gehen Sie vor und tun dies. 961 00:42:15,080 --> 00:42:18,670 >> Lassen Sie mich im Voraus und Kontrolle gehen klicken Sie auf diesen Zufallswort hier, 962 00:42:18,670 --> 00:42:21,230 unterschreiben, und klicken Sie auf Inspect Element. 963 00:42:21,230 --> 00:42:25,130 Chrome sehr günstig springt an Die H1-Tag, das Facebook verwendet. 964 00:42:25,130 --> 00:42:27,290 Und merken Sie hier Facebook hat Art von faul 965 00:42:27,290 --> 00:42:29,960 hart codierte Schriftgröße als Feriendomizils. 966 00:42:29,960 --> 00:42:33,530 >> Also die kühle Sache ist aber, dass, wenn ich eigentlich gehen hier 967 00:42:33,530 --> 00:42:39,560 und sagen, oh, Facebook, Ich mag es nicht, dass 64 Pixel können wir nun Facebook ändern. 968 00:42:39,560 --> 00:42:42,590 Natürlich, wir sind nur veränderte sie für mich persönlich im Moment. 969 00:42:42,590 --> 00:42:45,150 Aber das ist nur eine andere Werkzeug in unserem Werkzeugkasten 970 00:42:45,150 --> 00:42:48,360 das wird es uns ermöglichen, zwicken und herauszufinden, und auch diagnostizieren 971 00:42:48,360 --> 00:42:49,729 Probleme in unserem eigenen Web-Seiten. 972 00:42:49,729 --> 00:42:52,270 Und wir ähnlich gehen könnte über hier, was dasselbe ist. 973 00:42:52,270 --> 00:42:55,830 Wenn Sie wirklich wollen hübsch machen, ich meine, jetzt kann man wirklich mutieren die Seite 974 00:42:55,830 --> 00:42:57,380 und verrückte Dinge tun. 975 00:42:57,380 --> 00:42:59,870 >> Also, warum ist das alles sinnvoll? 976 00:42:59,870 --> 00:43:02,330 Nun, letztendlich sind wir gehen zu wollen, zu sein 977 00:43:02,330 --> 00:43:07,110 in der Lage, Web-Seiten zu erstellen, die werden von unseren eigenen Backends angetrieben, 978 00:43:07,110 --> 00:43:10,520 nicht nur Google und Auslagerung der Back-End gibt. 979 00:43:10,520 --> 00:43:13,510 Wir haben tatsächlich wollen, dass die Wert, zum Beispiel, 980 00:43:13,510 --> 00:43:18,830 Handlungs unserer Suchmaschine zuschreiben nicht an jemand anderen zu gehen, 981 00:43:18,830 --> 00:43:24,270 aber so etwas wie search.php, wo search.php ist auf unserem eigenen Server, 982 00:43:24,270 --> 00:43:25,670 nicht auf jemand anderes. 983 00:43:25,670 --> 00:43:30,316 >> Und so, um dorthin zu gelangen, die wir eigentlich brauchen, um eine neue Sprache einzuführen. 984 00:43:30,316 --> 00:43:33,190 Also haben wir bereits an einem neuen sah Sprache hier oder zwei wirklich, HTML 985 00:43:33,190 --> 00:43:33,700 und CSS. 986 00:43:33,700 --> 00:43:36,330 Aber sie sind wirklich nur strukturellen und ästhetischen Sprachen. 987 00:43:36,330 --> 00:43:38,360 Sie sind keine Programmier Sprachen per se. 988 00:43:38,360 --> 00:43:41,160 Und das ist ungefähr so ​​viel formaler Zeit, wie wir für sie ausgeben werde. 989 00:43:41,160 --> 00:43:44,910 Weil wir nun beginnen an PHP übergehen. 990 00:43:44,910 --> 00:43:48,160 >> So PHP ist eine tatsächliche Programmiersprache. 991 00:43:48,160 --> 00:43:50,750 Es ist eine Skriptsprache in dem Sinne, dass es 992 00:43:50,750 --> 00:43:52,855 soll leichtere Gewicht als so etwas wie C 993 00:43:52,855 --> 00:43:56,082 Und es ist eine interpretierte Sprache, was bedeutet, es ist nicht kompiliert. 994 00:43:56,082 --> 00:43:58,790 Also auf den Punkt gebracht, was bedeutete wenn wir eine Sprache wie C verwendet 995 00:43:58,790 --> 00:44:00,290 und wir hatten es zu kompilieren? 996 00:44:00,290 --> 00:44:02,120 Was bedeutet es, kompilieren C-Quellcode? 997 00:44:02,120 --> 00:44:03,864 998 00:44:03,864 --> 00:44:04,780 PUBLIKUM: [unverständlich]. 999 00:44:04,780 --> 00:44:06,184 DAVID J MALAN: Sag es noch einmal? 1000 00:44:06,184 --> 00:44:07,100 PUBLIKUM: [unverständlich]. 1001 00:44:07,100 --> 00:44:07,962 1002 00:44:07,962 --> 00:44:08,920 DAVID J MALAN: Perfect. 1003 00:44:08,920 --> 00:44:10,180 Es stellt sich in binäre. 1004 00:44:10,180 --> 00:44:14,200 Es stellt sich in Nullen und Einsen von den tatsächlichen Englisch artigen Quellcode. 1005 00:44:14,200 --> 00:44:16,424 Und dann können wir tatsächlich laufen diese Nullen und Einsen 1006 00:44:16,424 --> 00:44:18,840 indem sie durch die CPU durch Doppelklick eine Ikone 1007 00:44:18,840 --> 00:44:19,980 oder das Ausführen eines Befehls. 1008 00:44:19,980 --> 00:44:23,770 >> PHP und Python und Ruby und Perl und JavaScript 1009 00:44:23,770 --> 00:44:26,250 und Trauben von anderen Sprachen interpretiert 1010 00:44:26,250 --> 00:44:29,290 Sprachen, das heißt Sie nicht kompilieren sie nicht. 1011 00:44:29,290 --> 00:44:34,220 Vielmehr sie als Eingabe zu füttern Sie ein Programm namens einen Dolmetscher. 1012 00:44:34,220 --> 00:44:36,640 Und dass Dolmetscher, die jemand anderes geschrieben, 1013 00:44:36,640 --> 00:44:40,930 liest den Quellcode von oben nach unten, links nach rechts und nur interpretiert 1014 00:44:40,930 --> 00:44:43,000 diese Linien und tut, was Sie sagen. 1015 00:44:43,000 --> 00:44:45,360 >> Also, wenn Sie stoßen auf eine Zeile print sagt, 1016 00:44:45,360 --> 00:44:48,660 es muss nicht unbedingt zu konvertieren Print zu den entsprechenden Nullen und Einsen. 1017 00:44:48,660 --> 00:44:51,910 Es hat nur diesen Interpreter wie ein großer, wenn die Bedingung, die besagt, 1018 00:44:51,910 --> 00:44:56,110 wenn Anweisung Programmierers ist Print, dann tun Sie das Folgende. 1019 00:44:56,110 --> 00:44:58,170 So ist es es gerade interpretiert durch Art der Argumentation 1020 00:44:58,170 --> 00:44:59,800 durch das, was Sie sagen, es zu tun. 1021 00:44:59,800 --> 00:45:01,320 >> Und PHP ist eine dieser Sprachen. 1022 00:45:01,320 --> 00:45:05,310 Und vor PHP Jahren wurde entwickelt Gerade für Web-Programmierung. 1023 00:45:05,310 --> 00:45:08,160 Und es war zunächst eine sehr schlampig unordentlich Sprache. 1024 00:45:08,160 --> 00:45:10,940 Und in der Tat, es gibt eine riesige Menge schlechte PHP-Code gibt. 1025 00:45:10,940 --> 00:45:13,520 Aber die Sprache selbst ist über die Jahre gereift, 1026 00:45:13,520 --> 00:45:16,200 so sehr, dass es jetzt eigentlich eine wunderbare nächste Schritt 1027 00:45:16,200 --> 00:45:19,970 pädagogisch ab, weil es so verdammt bekannt vor allem 1028 00:45:19,970 --> 00:45:22,380 Sie haben gerade in den letzten Wochen gesehen. 1029 00:45:22,380 --> 00:45:25,724 >> Die eine anfängliche Differenz werden wir sehen, ist es keine Hauptfunktion mehr. 1030 00:45:25,724 --> 00:45:28,890 Wenn Sie das Schreiben von Code beginnen, es ist nur werde, egal was noch ausgeführt werden, 1031 00:45:28,890 --> 00:45:30,220 wie wir gleich sehen werden. 1032 00:45:30,220 --> 00:45:33,320 Inzwischen ist hier, was ein Variable sieht aus wie in PHP. 1033 00:45:33,320 --> 00:45:35,840 Es ist ein wenig anders, aber nur knapp. 1034 00:45:35,840 --> 00:45:39,380 >> In PHP gibt es nicht starke Typisierung. 1035 00:45:39,380 --> 00:45:41,430 Es gibt Wochen Typisierung, was bedeutet, einfach da 1036 00:45:41,430 --> 00:45:44,030 sind Datentypen wie Strings und Zahlen und andere Dinge. 1037 00:45:44,030 --> 00:45:47,030 Aber Sie nicht stören Angabe was sie sind, nicht mehr. 1038 00:45:47,030 --> 00:45:48,980 PHP-Werte ist es für Sie heraus. 1039 00:45:48,980 --> 00:45:52,030 Das Dollarzeichen ist nur eine Entscheidung dass die PHP Menschen gemacht Jahren 1040 00:45:52,030 --> 00:45:54,890 vor, so dass jede Variable in PHP gerade beginnt mit einem Dollar-Zeichen. 1041 00:45:54,890 --> 00:45:58,130 Es ist eigentlich ganz nützlich, springt heraus an Ihnen ein wenig mehr. 1042 00:45:58,130 --> 00:46:01,315 >> Aber danach, diese ist ein Zustand, in PHP. 1043 00:46:01,315 --> 00:46:03,140 1044 00:46:03,140 --> 00:46:04,730 Was ist anders im Vergleich zu C? 1045 00:46:04,730 --> 00:46:07,180 1046 00:46:07,180 --> 00:46:09,600 Trick question-- nichts, das ist eigentlich wirklich nett. 1047 00:46:09,600 --> 00:46:12,140 Boolesche Ausdrücke in PHP-- gleich. 1048 00:46:12,140 --> 00:46:19,354 Boolesche Ausdrücke mit und gegenüber oder, Schalter, Schleifen, Schleifen, loops-- OK, 1049 00:46:19,354 --> 00:46:20,270 dieses ist anders. 1050 00:46:20,270 --> 00:46:22,660 >> So stellt sich heraus gibt es eine paar andere Funktionen in PHP. 1051 00:46:22,660 --> 00:46:25,243 Einer von ihnen ist eigentlich diese, Das ist wunderbar bequem. 1052 00:46:25,243 --> 00:46:29,250 Wenn $ Zahlen ist ein Array, das Sie haben, zuvor in einem Programm deklariert, 1053 00:46:29,250 --> 00:46:33,350 Sie diese Phantasie für jedes Konstrukt haben daß anstelle der Ausführung aller daß 1054 00:46:33,350 --> 00:46:37,020 lästige I gleich 0 ist, I weniger als diese, [? I ++?], 1055 00:46:37,020 --> 00:46:40,320 für jede Zahl als Zahl, wobei jede jener Dollarzeichen Werte ist nur 1056 00:46:40,320 --> 00:46:42,790 eine Variable, und der letztere Sie wie ich denken kann 1057 00:46:42,790 --> 00:46:44,290 Man könnte es, was Sie wollen. 1058 00:46:44,290 --> 00:46:45,770 Ich nannte es Nummer. 1059 00:46:45,770 --> 00:46:48,825 Das wird durchlaufen das Array angerufenen Nummern. 1060 00:46:48,825 --> 00:46:51,200 Und bei jeder Iteration ist es werde automatisch zu aktualisieren 1061 00:46:51,200 --> 00:46:54,340 für Sie das Dollarzeichen Nummer variabel, so dass Sie ständig 1062 00:46:54,340 --> 00:46:58,210 Zugriff auf die Variable, die Sie wollen, ohne irgendwelche eckige Klammer zu tun 1063 00:46:58,210 --> 00:47:00,980 Notation oder Indizierung in ein Array. 1064 00:47:00,980 --> 00:47:04,950 >> Darüber hinaus haben wir sogar Dinge wie Arrays, die fast gleich aussehen, 1065 00:47:04,950 --> 00:47:08,210 außer es ist sehr häufig, wie wir sehen, sowohl in PHP und JavaScript 1066 00:47:08,210 --> 00:47:10,750 vor, initialisieren Sie ein Array mit eckigen Klammern. 1067 00:47:10,750 --> 00:47:12,040 C verwendet geschweifte Klammern. 1068 00:47:12,040 --> 00:47:15,330 So ist es etwas anders, obwohl wir haben nicht wirklich nutzen diesen Trick viel. 1069 00:47:15,330 --> 00:47:20,090 >> Aber noch stärker, PHP hat assoziative Arrays, 1070 00:47:20,090 --> 00:47:23,100 Das ist eine andere Art sagen Hash-Tabellen. 1071 00:47:23,100 --> 00:47:31,610 In der Tat, wenn Sie einen Hash deklarieren möchten Tabelle in PHP, anders als in C-, wie viele 1072 00:47:31,610 --> 00:47:34,775 Codezeilen kam es zu nehmen tatsächlich umzusetzen eine Hash-Tabelle in C? 1073 00:47:34,775 --> 00:47:38,310 Oder wie viele Zeilen Code ist es nehmen, um eine Hash-Tabelle in C zu implementieren? 1074 00:47:38,310 --> 00:47:39,820 So ist es wahrscheinlich eine Menge, nicht wahr? 1075 00:47:39,820 --> 00:47:41,680 Es ist ein paar Dutzend, vielleicht 100 oder 200. 1076 00:47:41,680 --> 00:47:42,980 Es ist nicht-triviale. 1077 00:47:42,980 --> 00:47:45,420 Oder es geht darum, zu sein, wie Sie werden bald sehen, nicht-triviale 1078 00:47:45,420 --> 00:47:48,080 um eine Hash-Tabelle zu implementieren [Unverständlich] und auch ein Versuch. 1079 00:47:48,080 --> 00:47:50,580 Aber in PHP-- und ehrlich gesagt, ich Wahrscheinlich sollte man nicht sagen, diese 1080 00:47:50,580 --> 00:47:53,630 bis Monday-- in PHP, wenn Sie wollen eine Tabelle, fertig. 1081 00:47:53,630 --> 00:47:56,431 Das ist ein Hash table-- so mit einer Codezeile. 1082 00:47:56,431 --> 00:47:56,930 Und 1083 00:47:56,930 --> 00:47:58,810 >> Viele Sprachen tun. 1084 00:47:58,810 --> 00:48:00,190 Viel Spaß mit pset fünf. 1085 00:48:00,190 --> 00:48:01,980 So viele Sprachen tun. 1086 00:48:01,980 --> 00:48:03,050 1087 00:48:03,050 --> 00:48:06,140 Sie geben Ihnen diese Abstraktionen dass andere Menschen, andere Programmierer, 1088 00:48:06,140 --> 00:48:09,870 haben für Sie erstellt, so dass Sie können auf ihren Schultern stehen 1089 00:48:09,870 --> 00:48:13,290 und starten Sie mit Ideen, die Super sind überzeugend, wie Hash-Tabellen und Bäume 1090 00:48:13,290 --> 00:48:14,140 und versucht. 1091 00:48:14,140 --> 00:48:17,790 Aber Sie müssen nicht unbedingt implementieren diese Dinge selbst. 1092 00:48:17,790 --> 00:48:20,850 >> Und so letztlich, was wir gehen PHP verwenden 1093 00:48:20,850 --> 00:48:23,580 wird möglicherweise die Programme schreiben des sogenannten Befehlszeile. 1094 00:48:23,580 --> 00:48:26,600 Wir könnten jedes Programm neu wir haben in diesem Semester bisher geschrieben, 1095 00:48:26,600 --> 00:48:30,410 außer vielleicht Breakout, die SPL verwendet, die spezifisch für C vor. 1096 00:48:30,410 --> 00:48:33,100 Aber jedes andere Problem eingestellt, sicherlich Mario und Caesar 1097 00:48:33,100 --> 00:48:35,300 und Vigenere und [? Knacken?] Und weiter, wir 1098 00:48:35,300 --> 00:48:39,520 könnte neu implementieren in PHP und wahrscheinlich ein wenig leichter. 1099 00:48:39,520 --> 00:48:43,050 >> Aber was wir letztendlich gehen Verwendung von PHP für Web-Programmierung ist. 1100 00:48:43,050 --> 00:48:46,420 Und wir werden die Einführung nächste Woche ein mentales Modell, ein Paradigma genannt 1101 00:48:46,420 --> 00:48:49,610 MVC, Model View Controller, die, wenn Sie die Programmierung gemacht habe 1102 00:48:49,610 --> 00:48:51,610 bevor in Python oder Rubin oder anderswo, Sie 1103 00:48:51,610 --> 00:48:54,112 könnte dieses Team mit weiß Rails und Django und dergleichen. 1104 00:48:54,112 --> 00:48:55,820 Aber wenn man neu in sind auch dies, werden Sie sehen, 1105 00:48:55,820 --> 00:48:59,652 dass dies tatsächlich eine sehr natürliche Verlängerung der Faktorisierung 1106 00:48:59,652 --> 00:49:01,360 und die Art der Gestaltung der Code, den wir haben 1107 00:49:01,360 --> 00:49:04,670 wurde in C tun Wir werden jetzt gelten einige dieser Lehren zu PHP 1108 00:49:04,670 --> 00:49:07,190 so daß schließlich sind wir Umsetzung unserer eigenen Websites. 1109 00:49:07,190 --> 00:49:09,080 Und wenn Sie Art sind hypnotisiert oder staunen 1110 00:49:09,080 --> 00:49:10,954 dass wir tun werden all das so schnell, 1111 00:49:10,954 --> 00:49:13,410 erkennen, dass fast jeder Semester, fast 90% 1112 00:49:13,410 --> 00:49:16,560 von Studenten CS50, einschließlich derjenigen die noch nie programmiert haben, 1113 00:49:16,560 --> 00:49:20,329 Ende macht Abschlussarbeiten, dass werden auf Web-Programmierung. 1114 00:49:20,329 --> 00:49:23,120 Und so werden Sie, dass die Renditen sehen sind hoch in den kommenden Wochen. 1115 00:49:23,120 --> 00:49:24,965 So werden wir Sie dann am Montag zu sehen. 1116 00:49:24,965 --> 00:49:27,260 1117 00:49:27,260 --> 00:49:30,120 >> Sprecher 1: Und jetzt, Tief Thoughts Daven Farnham. 1118 00:49:30,120 --> 00:49:34,055 1119 00:49:34,055 --> 00:49:34,780 Hash-Tabellen. 1120 00:49:34,780 --> 00:49:37,180 1121 00:49:37,180 --> 00:49:38,402 >> [Gelächter] 1122 00:49:38,402 --> 00:49:38,902