[RIPRODUZIONE DI BRANI MUSICALI] DAVID J. MALAN: Così ho solo voluto placare a. Mi associo esattamente quello SCAZ detto di memoria istituzionale. CS50 è stato intorno per circa 20 anni ad Harvard. E la realtà è, da gli anziani in giù, vi è ogni anno rassicurazione che le matricole, gli studenti del secondo anno, e juniores e anche gli anziani di prendere CS50, che si finisce per fare bene. La realtà è, studenti non mancano CS50. Infatti, nei rari casi dove abbiamo avuto Es o Fs, è stato veramente a causa di circostanze estenuanti, che si tratti di medici o personale. Ds sono incredibilmente raro pure. E posso dire comodamente, anche se abbiamo in genere non divulgare statistiche, ma dato che non c'è memoria istituzionale qui di sorta, la maggioranza degli studenti in CS50 non finire per ottenere A gradi gamma. Un pezzo significativo finire finire in serie B anche. Quindi, anche se si potrebbe essere pari nei vostri gruppi di tre mente con 60% e quindi Ds, o Cs, o simili, in realtà non è allineata con la realtà. Infatti, intendiamo esattamente quello che abbiamo dire all'inizio del termine che tanti studenti in CS50, sia a Cambridge e qui a New Haven, non hanno mai seguito un corso CS prima. E che in effetti conta alla fine è dove si finisce in settimana 12 rispetto a se stessi in settimana pari a zero. Ora abbiamo più tracce nel corso come si know-- meno comodo, più confortevole, una via di mezzo. E infatti, quando si arriva statistiche sui quiz di questa settimana, non scoraggiatevi se, soprattutto se si sente che sei intorno alla media o sotto la media o la mediana, soprattutto dal momento che non necessariamente prendere tutti quei dati demografici conto di metà semestre con le statistiche di classificazione. In altre parole, sappiamo statisticamente ogni anno che gli studenti che sono meno confortevoli, fare un po 'peggio sul quiz. E gli studenti che sono più a suo agio fare un po 'meglio sul quiz. Ma per questa promessa nel programma e anche nella prima settimana di lezioni, prendiamo tutto questo in considerazione. Infatti, a fine anni, quello che si finisce per fare è normalizzare tutti gli spartiti di fronte sezioni, sia in Cambridge e ora qui a New Haven, il che significa tenendo conto gli stili più disparati, il disparate durezza, il diverso tipo di personaggi che l'individuo TA hanno qui a Cambridge e in modo che non sei in un svantaggio anche se solo capita di avere avuto un TF o un TA che è stato un po 'più difficile su di voi nella tua mente. Due, prendiamo in considerazione il comfort livello e sfondo reale, o la mancanza dello stesso, durante l'assunzione di punteggi quiz in considerazione. Così quei due sono presi in. E alla fine della giornata, perché è sempre il caso che uno studente ha finito per in una sezione meno comodo quando lui o lei in realtà apparteneva in un in-tra o viceversa, tutto è così incredibilmente individualizzato. In effetti, si otterrà infastidito noi Alla fine del termine, quando siamo in ritardo presentando i tuoi voti perché con SCAZ, e Jason, e Andy, e io, e la squadra avrà fatto a Cambridge è letteralmente avere centinaia di e-mail indietro e avanti con tutte centinaio di corsi TA, qui e in Cambridge, chiedendo loro cosa pensano di tutti i loro studenti sulla base di un progetto di voti. E tutto quello che c'è dopo è incredibilmente individualizzato. Quindi per quanto ci conosciamo te in orario di ufficio, sezioni e di più, Anche tutto questo è preso in considerazione. Quindi, anche se tendiamo ad usare questo cinque scala punto, per favore, staccarsi dall'assunto che un tre è davvero un 60%. E 'pensato per essere buono. E gli assistenti di insegnamento hanno un costo di partenza termine per cercare di mantenere i punteggi nei gruppi di due, o tre, e quattro zampe vanno in modo da in realtà hanno spazio per crescere. E in realtà abbiamo un metro con il quale siamo in grado di darvi utili un feedback su come si sta facendo e come si sta procedendo. Quindi, per favore prendere quella a cuore. Ci sono domande posso aiutare Indirizzo o preoccupazioni che possono aiutare placare? O promesse Posso provare a mantenere? No? OK. Tutto ok. Quindi, con quello detto, questo è CS50. Questo è l'inizio di settimana sei qui a New Haven. Cominciamo con una breve oscuramento delle luci a preparare il terreno per il contenuto di oggi. [RIPRODUZIONE VIDEO] [RIPRODUZIONE DI BRANI MUSICALI] -Ha Venuto con un messaggio. Con un protocollo tutto suo. Egli è venuto per un mondo di firewall freschi, router indifferente, e pericoli ben peggiori che la morte. E 'veloce, è forte, è il protocollo TCP / IP. E ha il vostro indirizzo. Guerrieri della rete. [FINE RIPRODUZIONE] DAVID J. MALAN: Va bene. Questo è CS50. Questo è l'inizio della sesta settimana. E questo è l'inizio del nostro sguardo alla programmazione internet e web. E, cosa forse più eccitante, oggi segna il passaggio per noi dalla nostra linea di comando mondo di C al web basato mondo di PHP e HTML, e CSS, e SQL, e JavaScript, e tanto più che è all'orizzonte. Ma prima, si è giunti alla nostra attenzione in piedi attraverso città universitaria che ci è una certa bagno qui a New Haven chiamato la camera di Harvard, che è un po 'in grigio qui. Ma anzi, qualcuno è andato al tempo e le spese di incisione in camera di Harvard su questo qui stanza. Grazie per questo. Non posso dire che abbiamo un analogo a Cambridge ancora, ma penso che abbiamo un piccolo progetto per noi stessi ora quando torneremo. Quindi grazie per questo. Quindi un rapido sguardo indietro a dove avevamo interrotto la scorsa settimana e dove si sta andando il prossimo settimana con problemi di set five. Quindi, in cinque set problema, sarete sfidati a implementare un correttore ortografico. E per farlo, sarete consegnato un testo abbastanza grande depositarvi come 140.000 parole inglesi. E sarete sfidati a decidere su una struttura di dati con cui vogliono caricare tutte quelle parole in memoria, e nella RAM, e quindi implementare alcune funzioni, uno dei quali sta per essere controllo. Per cui quando passò una discussione, una parola, il vostro controllo funzionale semplicemente sta per avere a dire vero o falso, questa è una parola nel dizionario. Ma si sta andando ad avere un po ' progettazione discrezione e sfide quando si tratta di attuare questo. Nel più semplice attuazione, si potrebbe certamente implementare un correttore ortografico in il dizionario sottostante con che tipo di struttura dei dati? Hai solo bisogno di memorizzare un intero mazzo di stringhe in memoria? Qual è il via per rispondere dalla settimana due, forse? PUBBLICO: Array. DAVID J. MALAN: È possibile utilizzare una matrice. E questo non è poi così male. Ma non necessariamente conosce in anticipo quanto grande di una matrice si sta andando ad avere bisogno, se non lo fai conoscere il file necessariamente in anticipo. Così si sta andando ad avere per usare un po 'di inganno come malloc, come abbiamo iniziato a utilizzare. O potremmo affrontare che riguardano utilizzando quali altri struttura dati che è stata una sorta di miglioramento marginale su un array? PUBBLICO: lista collegata. DAVID J. MALAN: Come un collegato elenco, in cui abbiamo un po 'dinamismo. Ma c'è un po 'più di spesa. Dobbiamo puntatori per mantenere. E non hai ancora codificato questo up, ma c'è sicuramente per essere un po 'più complessità non solo utilizzando le parentesi quadre e saltare un array. Ma il tempo in esecuzione di un array, se siete alla ricerca di una parola, potrebbe essere log di n. Ma ancora una volta, potrebbe essere un po 'non banale per costruire quella matrice non conoscendo la dimensione in anticipo. Una lista concatenata però, se si solo memorizzare un mucchio di stringhe in una lista collegata, qual è il tuo limite superiore al tempo di riproduzione sta per essere alla ricerca per o controllare una parola in quella lista? PUBBLICO: n. DAVID J. MALAN: Sì, grande O di n o lineare perché nel caso peggiore, la parola è come una parola Z fino alla fine. E a causa di una lista collegata, perché quelle frecce per impostazione predefinita, in una lista concatenata semplice, solo andare da una direzione all'altra, non si può saltare in giro. Dovete seguire tutti loro. Così abbiamo proposto alla fine della scorsa settimana, settimana di cinque, che ci sono modi migliori. E infatti, il Santo Graal sarebbe davvero tempo costante per cui quando vuoi per cercare una parola, avere una risposta immediata a prescindere di quante parole sono già nel vostro dizionario. Si tratta di resa di un artista di quello che si potrebbe chiamare una tabella hash. E una tabella di hash è una specie di bella amalgama di un array-- tracciata verticalmente qui, appena perchè-- e poi un linked list-- disegnare qui orizzontalmente. E la tabella di hash può essere implementato in mazzi di modi. Questo estratto da un libro di testo che accade utilizzare date di nascita di queste persone come il mezzo con cui è decidere dove mettere il nome di qualcuno. Quindi questo è un dizionario se si vuole di nomi. E al fine di accelerare la messa nomi in questa struttura dati, guardano, a quanto pare, questa gente di Date nascita rispetto ad un mese. Quindi è 1-31. E dimenticare febbraio e casi d'angolo del genere. E se il vostro compleanno è il gennaio 1, o 1 febbraio o il 1 dicembre si sta andando a finire in la prima in alto a catena su. Se la vostra data di nascita è come il 25 di un mese, si sta andando a finire al numero 25 della benna. E se c'è già qualcuno in una delle posizioni, cosa si inizia a fare con questi collegato liste li sta cucendo insieme in modo da poter avere un arbitrario numero di persone, o di qualsiasi cosa, in tale posizione. In modo da avere una specie di mix di costante di tempo per l'hashing. E per hash qualcosa significa prendere in input come una persona, o il suo nome, o il suo parto la data, e poi decidere su qualche uscita sulla base di tale, come guardare loro compleanno e output da uno a 31. Allora si potrebbe avere un po 'di tempo lineare, ma in realtà, e come in il caso di problema set five, non stiamo andando a essere lavorando in cinque set P tanto di esecuzione asintotico tempo, come la lentezza teorica con la quale un algoritmo potrebbe correre. Stiamo andando a cura di il numero effettivo di secondi e la quantità effettiva di memoria, il numero effettivo di byte di memoria si sta utilizzando. Quindi, francamente, avendo un enorme catena di come un milione di persone è dannatamente lento se siete alla ricerca per un nome in un elenco di dimensioni milioni. Ma cosa succede se si divide che elenco in 31 parti? Cercando 1/31 di quella eccellente lungo elenco, in realtà, è certamente sta per essere più veloce. Asintoticamente, è la stessa cosa. Stai solo dividendo per un fattore costante. E ricordare che noi buttare via le cose. Ma in realtà, sta andando per essere 31 volte più veloce. Ed è quello che stiamo andando a iniziare a leva in P impostare cinque. Così P ha impostato cinque troppo anche propone che si considera leggermente più sofisticato struttura di dati chiamata un trie. E un trie è solo un albero come la struttura dei dati. Ma invece di avere piccoli cerchi o rettangoli come continuiamo a disegnare per i nodi, in realtà ha interi array per i suoi nodi. E anche se questo è un bit astratto qui per guardare, Zamyla nel P set passeggiata vi guiderà attraverso attraverso in modo più dettagliato su questo. Questa è una struttura dati che piuttosto abilmente potrebbe avere ogni nodo sia una matrice di dimensioni 26, da A a Z o pari a zero attraverso 25. E quando si desidera inserire una persona di nome in questa struttura dati o trovare lui o lei, quello che fai, se il nome è come Maxwell, M-A-X-W-E-L-L, in primo luogo guarda M. E poi si passare alla corrispondente posizione M nella prima matrice. È quindi saltare alla A, il primo posizione nell'array successivo, seguendo le frecce. Poi X, allora W, allora E, allora L, quindi L, e poi magari un fine speciale carattere, un po 'sentinella che dice una parola si ferma qui. E che cosa c'è di bello e questo-- tenere a mente che l'immagine qui, Notate come bordi ogni matrice sono tagliati fuori. Questo è solo perché questa cosa sarebbe essere massiccia e orribile a guardare presso sullo schermo. Così è stato estratto. Che cosa è bella di questo approccio è che se c'è un milione di nomi già in questa struttura dati, quanti passi ci vuole mi inserire Maxwell? M-A-X-W-E-L-L-- come sette-ish passi per inserire o cercare Maxwell. Supponete che ci sia un trilione nomi in questa struttura dati. Quanti passi ci vuole me a guardare per Maxwell? M-A-X-- ancora sette. E qui sta il cosiddetto tempo costante. Se assumiamo che le parole sono certamente delimitate da 20 caratteri, o 46 caratteri, o qualche ragionevolmente piccolo intero, quindi è efficace una costante. E così l'inserimento e la ricerca un trie è super veloce. Naturalmente, non abbiamo mai ottenere nulla gratis. E anche se probabilmente non sono tuffato in P impostare cinque ancora, che prezzo stiamo pagando probabilmente a ottenere una maggiore efficienza tempo saggio? PUBBLICO: Memoria. DAVID J. MALAN: memoria, giusto? Voglio dire, non abbiamo trascinati l'intero quadro qui. Questo estratto dal libro di testo non ha tratto tutte le matrici. C'è una grande quantità di memoria e solo puntatori nulli che non vengono utilizzati. Quindi è un compromesso. E sarà lasciato a voi in cinque set P a decidere su quale strada si vuole andare. Ora, questa idea di hashing, come a parte, è in realtà eccellente prevalente. Quindi, per hash un mezzo di valore, piuttosto semplicemente, per prendere qualcosa come input e produrre un'uscita. Quindi una funzione di hash è solo un algoritmo. E, in generale, uno scopo funzioni hash nella vita è quello di prendere qualcosa come input e produrre un numero come output, come la numero uno a 31 o da A a Z, zero a 25. Quindi ci vuole un complesso di uscita e si restringe verso il basso per qualcosa che è un po 'di più utile e gestibile. E così si scopre in una funzione molto popolare che il mondo della sicurezza e il mondo umano usato per anni si chiama SHA1. Questa è una bella fantasia matematica formula che fa in sostanza, che. Si prende una davvero grande pezzo di zeri e ones-- che potrebbe essere un megabyte lungo, un long-- gigabyte e si restringe verso il basso per solo pochi bit, alcuni pezzi, in modo da avere un numero come uno a 31, oppure a Z. Ma in realtà, è un po ' più grande di appena A alla Z. Purtroppo, siamo sul punto di ciò che qualcuno scherzosamente chiamato il SHAppening per cui il mondo sta per concluderà probabilmente in pochi mesi tempo perché i ricercatori, solo la scorsa settimana, pubblicato un rapporto che, contrariamente a quello che i ricercatori di sicurezza hanno pensato per qualche tempo, semplicemente spendendo circa, cos'era, Credo che sia stato $ 175,000-- molti soldi, ma non oltre la portata di cattivi particolarmente cattivi, o particolarmente grave countries-- $ 175.000 potrebbe comprare un sacco di server di affitto spazio nella nuvola. E torneremo a la nube in breve tempo. Ma significa solo l'affitto di server spazio sul come i server di Microsoft, o Google, o Amazon, o il come dove è possibile pagare con il minuto ad usare il computer di qualcun altro. E si scopre se si può pagare qualcun altro di prendere in prestito i loro computer ed eseguire il codice che avete scritto su di esso e utilizzare abbastanza fantasia matematica, si può essenzialmente figura come funzione hash di qualcuno è lavorare, e data la sua uscita, decodificare ciò che il suo ingresso è. E per scopi di oggi, basti dire, questo è male. Poiché le funzioni di hash SHA1 e come si sono super comunemente utilizzato in applicazioni di sicurezza, connessioni crittografate sul web, transazioni bancarie, crittografia cellulare per i vostri telefoni cellulari, e simili. E quindi ogni volta che qualcuno trova un modo per invertire progettare una di queste tecnologie o romperlo, cose brutte possono accadere. Ora il mondo già lo sapeva. Questo era prevedibile. E il mondo ha da allora spostato da SHA1 a SHA256, che è solo un modo elegante per dicendo che usano pezzi più grandi. E infatti, anche CS50 propria sito web aggiornato lo scorso anno a-- Non che ci troviamo di fronte tutto questo molti minacce cercando di ottenere i file PDF e whatnot-- ma il sito web di CS50 utilizza la funzione hash più grande, il che significa che saremo al sicuro. Quindi, tutti i tuoi file PDF sarà sicuro, ma non necessariamente i vostri soldi o niente particolarmente privato o personale usare. Sp verificare che l'URL se si desidera come alcuni dettagli aggiuntivi. Così problema set five è infatti all'orizzonte. Quiz uno è il prossimo Mercoledì. Ma approfittare di ufficio ore, sia stasera e domani. E inoltre usufruire di orari di ufficio, se sei disponibile, subito dopo questo. Il personale e io attaccare intorno e fare Q & A più informale, oltre a stasera. E lasciatemi fortemente notare qui, per quelli di noi qui a New Haven-- quindi è assolutamente al di SCAZ osservazioni feltro, ne sono sicuro, come un po 'di una lotta in salita. E per la reputazione, se Non hanno imparato già o sentito da alcuni amici ad Harvard, conoscere qui ci sono alcune nuove memoria istituzionale. P ha impostato cinque sorta di sorta di tende ad essere la più difficile in CS50, o il più impegnativo per la maggior parte degli studenti. Ma ciò significa che siamo quasi in cima a questa collina. E ho davvero intendo questo. E 'il più impegnativo, ma è anche il più gratificante in tale differenza della maggior parte ogni altra introduttivo informatica corso negli Stati Uniti, che conosciamo, maggior parte degli studenti non finiscono un intro Ovviamente avendo già implementato cose come gli alberi, e cerca, e tabelle hash, e simili. E così mi auguro, e ci auguriamo che tu sia hanno un senso grande di soddisfazione anche se la settimana o due via che si arriva a che la soddisfazione si sente un po 'come questo. Ma permettetemi di rassicurarvi, abbiamo avere solo quattro P set sinistra. Quindi una sorta di superiore che è in vista. Dall'altra parte di esso, fidatevi di noi, è solo dolci colline e nuvole. E diciamo, cuccioli sono sull'altro lato. In modo da avere solo per appendere in là un po 'di più. Voglio dire, anzi come si comincia a transizione nel mondo della programmazione web, troverete che le cose become-- questo è adorabile realtà. OK, postiamo questo URL tardi. Troverete anche che siamo raggiungendo una sorta di altopiano dove tutto è infatti ancora sofisticato e stimolante per disegno, ma non sei andando a sentire come siamo perpetuamente salire questa collina. Quindi prendere un po 'di conforto in questo. Quindi, senza ulteriori indugi, cominciamo per rendere questa transizione di mercato nel semestre per il mondo di il web, e davvero il mondo con la quale tutti noi siamo più familiare. Abbiamo i dispositivi di internet nelle nostre tasche, sulle nostre scrivanie, nei nostri zaini, e simili. Come funziona tutto questo lavoro? E come possiamo iniziare a scrivere codice che non è super arcano e in qualche sollecito testo lampeggiante che nessuno dei tuoi amici o familiari sono sempre andando a voler interagire con, ma qualcosa che si può mettere sui loro telefoni, o nel proprio browser Web, o su qualsiasi dispositivo con cui interagiscono. Così qui è casa di qualcuno. E dentro di questa casa è un paio di computer portatili, un paio di vecchio desktop school computer, una cosa chiamata router o hub al centro, e quindi una sorta di modem via cavo o DSL. E poi c'è internet, generalmente disegnato come una nuvola lassù nel cielo. Quindi questa immagine, anche se un po 'sorta di' datato, certamente coglie ciò che più di probabilmente avete nelle vostre case, o effettivamente ciò che tutti avete nelle vostre stanze del dormitorio, o appartamenti, o simili. Così che cosa sta realmente succedendo quando si tenta di utilizzare Internet oggi? Così ogni computer della Internet, si scopre, deve avere un indirizzo univoco, proprio come noi del mondo reale necessità un indirizzo postale, come 51 Prospect Via, New Haven, Connecticut, o 33 Oxford Street, Cambridge, Massachusetts. Così fanno i computer su Internet hanno bisogno di un modo di affrontare in modo univoco se stessi. Questo è in modo che quando un computer vuole parlare con un altro, può inviare un messaggio e informare il destinatario a cui dovrebbe inviare la risposta indietro. Così si fa solo una sorta di senso intuitivo forse che tutto hanno un indirizzo di qualche tipo. Ma come si fa a ottenere un indirizzo? Beh, se si arriva qui su campus, o si va a casa e si accende il computer portatile o desktop, e sia collegarlo o connettersi al Wi-Fi, si scopre che c'è un server speciale sulla maggior parte delle reti chiamato un server DHCP. Non ha molta importanza ciò che questo rappresenta, ma è Dynamic Host Configuration protocollo, che è solo un modo elegante per dire, questo è un computer che o Yale ha, o Harvard ha, o Comcast ha o Verizon ha, o la vostra azienda ha, il cui scopo nella vita, quando sente qualcuno di recente ha aggiunto alla rete, è da dire, Usa questo indirizzo. Quindi noi esseri umani non devono codificare in nostri computer ciò che il nostro indirizzo univoco è. Abbiamo appena accenderlo, aprire il coperchio, e in qualche modo questo server sulla rete locale appena mi dice che il mio indirizzo è 51 Prospect Street, o 33 Oxford Street, o simili. Ora non sta andando a essere così verbose come quello. Piuttosto quello che ho intenzione di ottenere un indirizzo numerico chiamato un indirizzo IP. IP significa Internet Protocol. E le probabilità sono da questo momento nella tua vita, probabilmente sentito o visto la parola IP, o in generale gettati in giro, forse. Ma in realtà, è piuttosto semplice una cosa. Un indirizzo IP è solo una numero decimale con punti, il che significa che si tratta di qualcosa di punti qualcosa dot qualcosa dot qualcosa. E ciascuna di queste quarantina succede essere un numero tra 0 e 255. Quindi, sulla base di cinque più settimane di CS50, se questi numeri ogni intervallo da 0 a 255, quanti bit è ogni di quei segni numerici? PUBBLICO: Otto. DAVID J. MALAN: Deve essere di otto. Quindi, in totale, quanti bit è un indirizzo IP? PUBBLICO: 32. DAVID J. MALAN: So 32. 8 più 8 più 8 più 8 è 32. Quanti indirizzi IP totali ci può essere nel mondo? PUBBLICO: 4 miliardi. DAVID J. MALAN: Così circa quattro miliardi perché è 2 il potere 32. E se non si può sorta di Grok che nella vostra mente, è sufficiente sapere che i valori a 32 bit può essere grande come 4 miliardi se è tutti i valori positivi. In modo che significa che c'è 4 miliardi possibili indirizzi IP del mondo. E divertente storia, siamo genere di correre fuori di essi. E in effetti si tratta di un problema enorme in quel il mondo ha visto anche questo problema a venire, ma non è necessariamente risposto nel modo più veloce possibile. E infatti, una volta che hai finito CS50 e ha iniziato prestando attenzione a il mondo tecnologico, ti vedere questo è molto comunemente tematica. Ad esempio, se andiamo veramente vecchia scuola al giorno d'oggi, Y2K. Non era davvero una sorpresa. Come tutti sapevano per 1.000 anni che quel era-- più di un migliaio che anni-- che è stato alla fine sta per accadere. Eppure, abbiamo risposto ad esso molto all'ultimo minuto. E questo sta accadendo di nuovo. Così oggi parleremo di IP versione 4. Ma sapere che il mondo è arrivare finalmente in giro per l'aggiornamento a qualcosa chiamato IPv6, che invece di 32 bit indirizzi, uses-- chiunque vuole prendere una supposizione, quanti bit? PUBBLICO: 64? DAVID J. MALAN: buona congettura, ma no. Stiamo finalmente cercando di ottenere davanti alla curva. PUBBLICO: 128. DAVID J. MALAN: 128, che è un enorme numero di impazzendo di indirizzi IP, perché che è come volte, 2 volte 2, 2 volte, un sacco di volte due a due su da 4 miliardi. Quindi, se curioso. Si scopre fuori-- e ho appena googled questo per trovare questo fuori-- computer Yale, qui a Yale, tendono a iniziare con questi numbers-- 130,132 puntino qualcosa, e 128.36 dot qualcosa. Ma c'è sicuramente eccezioni su tutta la linea a seconda di cosa reparto e costruzione e campus siete su. Harvard tende ad avere 140,247 o 128,103. E in generale si tratta di informazioni inutili, ma è qualcosa che si potrebbe notare ora. Quando si avvia rovistando impostazioni sui computer, si potrebbe iniziare a notare questi tipi di modelli in breve tempo. Ma quando sei a casa e avere un Apple AirPort o un dispositivo di Linksys, o un D-Link, o quello che è i vostri genitori o fratelli installati nella vostra casa, ben ciò che probabilmente avete è ciò che è chiamato un indirizzo IP privato. E questi erano in realtà un bello, soluzione temporanea al problema della corsa a corto di indirizzi IP. E che cosa si può fare con reti domestiche, typically-- e francamente, anche Yale e Harvard stanno iniziando per fare questo in diversi areas-- sei tu può dare un sacco di computer un indirizzo IP fino a quando si mette uno speciale dispositivo di fronte a loro, qualcosa chiamato un router, oppure può essere chiamato un proxy o un qualsiasi numero di altre cose. Ma un certo dispositivo che ha che un indirizzo IP. E poi dietro quel dispositivo, all'interno di un edificio, all'interno di una casa o un appartamento, può essere qualsiasi numero di computer, ognuno dei quali avere un indirizzo IP che iniziano con uno di questi numeri qui. E fino a quando quel computer sa come convertire l'indirizzo pubblico di l'indirizzo privato, tutto può ordinare di lavoro come previsto. Ma l'inverso di questo è che se siete a casa e avete un fratello, e entrambi sono visitare qualche sito web, che il sito web non sa se è lei o il vostro fratello visitando il sito web, perché sembrano essere la stessa persona a causa tutti i dati sta attraversando quel router o quel punto centrale. Ma basta su questi dettagli di livello inferiore. Diamo uno sguardo a come indirizzi IP a volte venire forse dai media e come ora possiamo iniziare a rovinare, francamente, anche più spettacoli per voi. Se potessimo ridurre la luminosità luci per alcuni secondi. [RIPRODUZIONE VIDEO] -E 'Una a 32 bit su IPP 4 indirizzo. -IP ES internet-- Rete Privata, Rete privata di Tamia. Lei è così sorprendente. -Dai Charlie. DAVID J. MALAN: E ' un indirizzo IP specchio. Sta facendoci guardare che lei sta facendo in tempo reale. [FINE RIPRODUZIONE] DAVID J. MALAN: OK. Così un paio di problemi con questo. Così uno, quello che stiamo cercando a qui sullo schermo è un codice scritto in un linguaggio chiamato Objective-C, che è una specie di un successore il linguaggio C che stiamo facendo. Questo non ha assolutamente nulla a che fare con la programmazione. In realtà, come meglio posso dire, questo è un programma di disegno che qualcuno scaricato dal Internet in qualche modo coinvolge pastelli. Forse meno eclatanti è che questo indirizzo IP, valido o non valido? PUBBLICO: non valido. DAVID J. MALAN: Non valido, perché 275 è, naturalmente, non tra 0 e 255. Anche questo è probabilmente OK però, perché non si vuole di gruppo di matti che sono come pausa la TV sul proprio TiVo e poi visitare la IP per vedere se c'è realmente qualcosa. In modo che uno è un po 'meno eclatanti. Ma si rendono conto che è troppo sorta di tutto intorno a noi. Così, naturalmente, nessuno di noi ha mai davvero digitare indirizzi numerici nei nostri browser. Sarebbe una specie di brutta cosa se Google, per visitare Google, si doveva andare a 123.46.57.89. E il mondo intero ha avuto a ricordare proprio questo. E, francamente, abbiamo tipo di visto questo problema prima. Indietro nel giorno in cui la gente non lo fanno avere i telefoni cellulari ed elenchi di contatti, e le aziende in realtà still-- realtà, Credo che le aziende hanno ancora 800 numeri e il like-- ma è generalmente vedere i numeri pubblicizzati come 1-800-RACCOGLIERE, C-O-L-L-E-C-T. Perché nessuno può davvero ricordare, quando vede una pubblicità su un autobus o cartellone pubblicitario, quello che qualcuno di numero, ma possono probabilmente, con una maggiore probabilità, ricorda una parola. Così abbiamo adottato la stessa tipo di sistema al mondo di Internet per cui c'è un sistema dei nomi di dominio in modo che noi umani possiamo digitare google.com, facebook.com, yale.edu, harvard.edu, e lasciare che la cifra computer ciò che il relativo IP indirizzo è per un determinato nome. E il modo di fare questo nel mondo reale è che per $ 10 all'anno, forse $ 50 all'anno, è possibile acquistare un dominio nome, o realmente affittare un nome di dominio. E poi chi si sta pagando affittare quel nome a dominio, dite loro che nel mondo sa che cosa il vostro indirizzo IP. E noi non entreremo nei questi particolari, ma molti di voi potrebbe desiderare, per finale progetti, a firmare in realtà su per il proprio web hosting società, o gratuito per o per un paio di dollari al mese. Alcuni di voi potrebbero desiderare di comprare, per un paio di dollari, il proprio nome di dominio, solo per divertimento o per avviare un'impresa o un sito personale o simile. E rendersi conto che tutto di che in ultima analisi bollire fino a che ti dice il mondo ciò che l'indirizzo IP del server è. E poi questi DNS server effettivamente prendere cura di informare il resto del mondo. Quindi tutto un server DNS ha, insomma, dentro della sua memoria è come la equivalente di un foglio di calcolo di Google o un foglio di calcolo Excel con almeno due colonne, una delle quali nomi, come harvard.edu, e yale.edu, e google.com. E l'altra colonna ha la corrispondente indirizzo IP o IP indirizzi. E possiamo realmente vedere questo. Così il mio Mac-- e si può fare questo su computer Windows come well-- se apro una finestra di terminale qui, del tutto simile a quella di CD50 IDE, maggior parte dei computer hanno un comando chiamato nslookup, il nome del server sguardo. E se digito qualcosa del genere yale.edu e premere Invio, cosa Vorrei vedere se la mia rete collabora come lo ha fatto per più test prima classe began-- proviamo google.com. Naturalmente ora nulla funziona. È fantastico. D'accordo, una pausa per un momento. nslookup google.com. Bene, vediamo se la attuale internet-- no. Questo è quello che è successo. Oh mio Dio, va bene. Il Wi-Fi è rotto. Ehi, volete sapere qual è il mio indirizzo IP è? Tutto ok. YaleSecure. Questo è il modo di risolvere cose come un informatico. Giriamo la connessione Wi-Fi spento. OK. E in realtà, SCAZ, ti dispiace noi accedendo quello sicuro? In caso contrario, più prove are-- OK, grazie si Yale-- o è sul punto di rottura. Voglio andare in YaleSecure. Oh, e forse saremo OK. Forse siamo indietro. Ed è così che, come un computer scienziato fissare un computer. [Applausi] Tutto ok. Allora, dove sono stato in questo cosiddetta finestra di terminale, e se io NSLOOKUP yale.edu, ci andiamo. Così torno prima l'indirizzo IP il server DNS che il mio computer portatile sta usando. Quindi, oltre a un server DHCP che abbiamo parlato un momento fa raccontare qual è il mio IP mio portatile indirizzo è, che il server DHCP mi dice anche quale server DNS da utilizzare. Altrimenti avrei digitare manualmente questo. Ma non è tutto ciò che interessante. Quello che mi interessa è che questo è il Indirizzo IP del sito web di Yale a quanto pare. Quindi, in realtà, proviamo questo. Lasciami andare su in un browser e andare a http: //, e quindi tale indirizzo IP, e premere Invio. E vediamo. Questo è in quale altro modo si può visitare i siti web di Yale. Ora non è tutto ciò che memorabile. Come, il pre-frosh probabilmente non stanno andando a ricordare questo particolare indirizzo se ha detto di visitare lì dopo aver visitato. Ma non sembra funzionare. E così DNS davvero ci permette solo di avere indirizzi molto più umano amichevoli. Ma non lo fanno necessariamente solo dare una risposta. In realtà, quando sei un davvero grande tech, probabilmente si desidera hanno un sacco di server. E anche questo è fuorviante. Quindi Yale probabilmente non lo fa avere un solo server web. Google probabilmente non ha a soli 10 o giù di lì server web. Google in particolare, probabilmente ha migliaia di server web in tutto il mondo in grado di rispondere alle richieste da parte di persone come noi. Ma usano anche una tecnologia chiamata il bilanciamento del carico, che per farla breve, ha solo pochi dispositivi nel mondo distribuendo il carico su più server. Quindi è un po 'come una tela di ragno, se si dispacciamento le richieste. Ma per ora, tutto ciò che è interessante per oggi che è un nome di dominio come google.com anche possibile avere più indirizzi IP del genere. Ma come fa tutti i nostri dati effettivamente andare avanti e indietro poi alla fine? Beh, si scopre che ci sono questi cose chiamati router su internet. E che cosa è un router per la tanto che già conoscete? E ho usato la parola un paio volte nel contesto di una casa, ma in termini semplici, cosa fa un router fare? Dammi solo una supposizione basata sul suo nome? PUBBLICO: Quindi una strada o un percorso? DAVID J. MALAN: So si tratta di una strada o un percorso. Quindi un percorso è una strada o il percorso, assolutamente. E un router, quindi un dispositivo che in realtà informazioni percorsi, sarebbe spostare i dati tra i punti A e B. E così nel fact-- e questo è forse quando voi Google raffigurazioni di router sul mondo, tutti si ottiene sono diagrammi di marketing di formaggio. E così questo è una sorta di più un rappresentante che ho trovato che sembrava moderatamente interessante. Ognuno di questi punti o barlumi di speranza nel mondo rappresenta un router. E ciascuno di essi ha una linea tra qualche altro router. Perché in effetti, ci sono migliaia, probabilmente milioni di router in tutto il mondo, alcuni dei quali sono nelle nostre case e sui nostri campus, ma un sacco di che sono di proprietà di grandi aziende e sono interconnesse in modo che se desidera inviare alcuni dati da qui a Yale torna a casa a Cambridge, Yale probabilmente non ha un singolo cavo, certamente, andando direttamente a Harvard. E Yale non ha un unico cavo che va al MIT, o di Stanford, o a Berkeley, o di Google, o un qualsiasi numero di destinazioni. Piuttosto, Yale, Harvard e, e tutti gli altri su internet non ha uno o più router ad esso collegato, forse alla periferia della città universitaria. In modo che quando i miei dati vuole lasciare campus di Yale, va a quel router più vicino, come rappresentato da uno di questi punti. E poi che i dati del router fuori se per inviare in questo modo, o in questo modo, o in questo modo, o in questo modo basano su un altro tavolo nella sua memoria, un altro file Excel o Google foglio di calcolo in una colonna dice, se il vostro indirizzo IP inizia con il numero uno, andare in questo modo. Se l'indirizzo IP inizia con un numero di due, andare in quel modo. E così si può abbattere numericamente di avere il router invio i dati in tutte le direzioni. E possiamo tipo di vedere questo. Andiamo avanti in questo terminale di nuovo la finestra, e mi permetta di andare avanti e tracciare la rotta verso, diciamo, www.mit.edu, che è un paio di centinaia di miglia di distanza. E 'stato davvero dannatamente veloce. Allora cosa è successo? Quindi, in soli sette passi, e in soli quattro millisecondi, Ho inviato i dati su Internet da qui a Yale al MIT. Ognuna di queste righe, è possibile forse indovinare rappresenta ora che cosa? PUBBLICO: Un router. DAVID J. MALAN: Un router. Così in effetti, sembra che ci sia circa sette o giù di lì router, o sei router tra me fisicamente a scuola di diritto di Yale qui e il sito web del MIT laggiù. E cosa possiamo ricavare da questo è come follows-- e fammi pulirlo. Ho intenzione di eseguire nuovamente con un comando argomento della riga di q 1 a proprio dire, dammi solo una query. Per impostazione predefinita, trace route fa tre. Ed è per questo che abbiamo visto mazzi di numeri. Voglio vedere un minor numero di numeri solo per mantenere il pulitore uscita. E vediamo cosa succede. Quindi per qualsiasi motivo, qualcuno al pensiero di Yale che sarebbe stato divertente per chiamare il vostro arubacentral router di default, che è su VLAN o virtuale LAN, locale virtuale 30-- rete in modo da probabilmente almeno 29 router.net.yale.internal others--. Ed .internal qui è una specie di falso dominio di primo livello pensato per essere utilizzato solo nel campus. E notare l'indirizzo IP corrispondente di quel router, ovunque esso sia qui nel campus, è 172.28.204.129. E ci sono voluti 36 millisecondi per andare da qui a lì. Storia divertente. Torneremo a che in un attimo. Ma ora il secondo router-- a che a quanto pare arubacentral ha un certo tipo di fisico collegamento più likely-- gli esseri umani non si sono preoccupati nominarlo. Gli umani Yale non si sono preoccupati di denominazione perché è all'interno della vostra rete sembra. E quindi ha solo un indirizzo IP. Ma poi una terza router qui sulla rete di Yale questo è probabilmente un po ' più lontano ancora si chiama cen10g qualunque cioè asr.net.yale.internal. E ha anche un indirizzo IP. Ora, perché sono questi i numeri tipo di fluttuanti? 2.9, 1.4, 36? I router affollata. E ottengono congestionato e backup. Ci sono migliaia di persone su questo campus utilizzando internet in questo momento. Ci sono un centinaio di persone in questo camera con internet in questo momento. E così quello che sta succedendo è che i router potrebbero ottenere congestionato. E così quei tempi potrebbe variare un po '. Ecco, questo è il motivo per cui non lo fanno necessariamente aumentare semplicemente. Ma le cose si fanno tipo di interessante in fase quattro. A quanto pare tra Yale e punto quattro è un altro hop. E dov'è il router nella fase quattro, probabilmente? PUBBLICO: [incomprensibile] DAVID J. MALAN: JFK forse, forse in aeroporto. Ma per qualsiasi motivo, gli amministratori di sistema, in modo da geek che corrono per i server anni hanno chiamato router dopo il codice aeroporto più vicino. Così JFK probabilmente significa è solo un posto a New York, forse a Manhattan o uno dei quartieri. nyc2 denota, presumibilmente, un altro router che da qualche parte a New York. Io non so bene dove fila sei è qui, numero di router a sei. quest.net un grande ISP, fornitore di servizi Internet, che fornisce connettività internet ai grandi luoghi come Yale e altri. E poi quest'ultima, esso sembra che il MIT non ha nemmeno hanno un proprio sito web in necessariamente Cambridge, ma essi hanno in outsourcing il loro sito web, o almeno le server fisici, ad una società denominata Akamai. E Akamai in realtà è proprio in fondo la strada dal MIT a Cambridge si scopre. Ma rendersi conto anche che anche il pensiero si sta andando a www.mit.edu, potremmo davvero essere inviati ovunque nel mondo. E vediamo da qualche parte altra parte del mondo. Lasciami andare avanti e cancellare questa schermata e invece tracciare il percorso, solo una volta, in modo interrogare uno, per www.cnn.co.jp, home page giapponese per la CNN, il sito di notizie. E se ho colpito Entra subito, vediamo cosa succede. Stiamo di nuovo a partire da arubacentral. Stiamo quindi andando al router senza nome, qualcuno in più. Così ci sono voluti 12 luppolo raggiungere il Giappone questa volta. E vediamo cosa possiamo raccogliere. Così lo stesso hop, hop stesso. Leggermente diverso ora. Di interessante questo. Quindi immagino qui, stamford1 è un alcune città di distanza nel Connecticut anche. Questi router in fila sei e sette non hanno nomi. Ma questo è una specie di sorprendente. Quindi, quello che sembra essere tra i router passo sette e otto? E perché dici tanto? Sì? PUBBLICO: Ocean. DAVID J. MALAN: Probabilmente un oceano. Noi sappiamo che è vero come, intuitivamente, giusto? Ma possiamo confermare quanto tipo di specie di empiricamente perché? Che cosa è cambiato tra righe sette e otto? Ci è voluto molto più tempo per andare a qualunque cosa questo router senza nome sette è, probabilmente da qualche parte nel Uniti continentali, a un passo otto, che è probabilmente da qualche parte in Giappone in base al nome di dominio del .jp lì. E così quelli supplementari centinaia di qualcosa di millisecondi o 90 o giù di lì è millisecondi il risultato dei nostri dati in corso su una bella grande specchio d'acqua. Ora curiosamente, sembra che forse che il cavo attraversa il territorio della federazione. Se stiamo davvero andando oltre la West Coast per raggiungere il Giappone, è una specie di lungo strada se andiamo nella direzione opposta. Quindi non è tutto chiaro cosa sta succedendo fisicamente. Ma il fatto che ogni hop aggiuntivo davvero ha preso nettamente più lungo di ogni altro, è abbastanza bene la conferma che CNN Web server giapponese è probabilmente davvero in Giappone. Ed è certamente più lontano via di MIT è stato. E vale la pena notare troppo, i dati non sono necessariamente andando a viaggiare per il più breve possibile. In realtà, se si gioca in giro con trace route a casa semplicemente prendendo in siti web casuale, è possono scoprire che solo invia un'email o visitare un sito web che è qui a New Haven, a volte i dati potrebbero primo fare una deviazione, scendere a DC, e poi tornare su. E questo è solo a causa di le decisioni di routing dinamico che questi computer stanno facendo. Ora solo per divertimento, il team di produzione rifilato uno di questi video per noi di essere solo un po 'più succinto. Ma a noi dare un senso rapido qui-- e siamo in grado di lasciare le luci on-- da quanta cablaggio è in realtà portando tutti i nostri dati. [RIPRODUZIONE VIDEO] [RIPRODUZIONE DI BRANI MUSICALI] [FINE RIPRODUZIONE] DAVID J. MALAN: Tutti i video di rete avere la musica dal suono fresco a quanto pare. Ecco, questo è per ottenere solo un senso di quanta avere sta succedendo sotto il cofano. Ma diamo un'occhiata a un livello leggermente inferiore ora a quali dati è in realtà attraversare quelle linee, e andando anche in modalità wireless in una camera come questo. Così si scopre quando si richiede una pagina web, o inviare una e-mail, o ricevere una pagina web, o una e-mail, o un messaggio Gchat, o un messaggio di Facebook, o simili, che non è solo uno grossa fetta di bit che scorre in modalità wireless attraverso l'aria o elettronicamente su un filo. Invece, tale domanda o risposta è generalmente chunked in pezzi separati. Quindi, in altre parole, quando si dispone di una chiedere di fare di un altro computer, o si torna una risposta da un altro computer-- come supponiamo, per esempio, se unfamiliar-- come troppe persone sembrano essere questi days-- se non hanno familiarità con questo-- Non questo fellow-- costui. Quindi supponiamo che questo è un messaggio che Voglio inviare a qualcuno dietro. Chi ha nel retro vorrebbe ricevere un'immagine di Rick Astley oggi? OK, come ti chiami? PUBBLICO: Cole. DAVID J. MALAN: Che cosa è? PUBBLICO: Cole. DAVID J. MALAN: Holt? H-O? PUBBLICO: C-O-L-E. David J. MALAN: C-O-L-E, Cole. Scusate. C-O-L-E. Tutto ok. Quindi, se voglio inviare questo Cole immaginare qui, lo sai è una specie di un grande quadro, giusto? Questo potrebbe essere un qualche kilobyte, pochi megabyte, soprattutto se si tratta di alta risoluzione. E io in realtà non voglio smettere tutti gli altri di usare Internet proprio mentre io mando questo davvero grande, immagine di alta qualità di Rick Astley in tutta la stanza. Mi piacerebbe vostri dati per continuare a attraversare la rete e il Wi-Fi anche. E così fa sense-- e questo è recuperabili elettronicamente, non tanto nel mondo reale. In realtà, questo sta per avere più significati se si prende la mia uscita audio. Quindi, se mi strappo questo il mezzo come questo qui, questo ora può viaggiare il Internet in modo più efficiente, perché è un pezzo più piccolo. Quindi, con minore probabilità sta andando entrare in collisione con il traffico di qualcun altro su internet. E così ciò che il computer fa davvero quando si vuole inviare un messaggio a Cole è pezzi di un messaggio come questo in piccoli pezzi, frammenti per così dire. E poi li mette dentro di ciò che chiameremo sorta di buste virtuali. Così ho quattro buste di carta qui. E ho li pre-numerati, uno, due, tre e quattro. E quello che ho intenzione di fare sul fronte di questo, proprio come un normale mailing, è ho intenzione di mettere il nome di Cole lì. E poi nella parte superiore, sono andando a mettere il mio nome lì, David, in modo che il primo tale pacchetto Sto inviando là fuori su internet sembra un po 'qualcosa di simile queste, le caratteristiche salienti di cui sono che ha un affrontare, un dall'indirizzo, e anche un numero, così che che si spera sono informazioni sufficienti per Cole per ricostruire questo messaggio. Così mi permetta di fare la stessa cosa qui, il stesso qui, e lo stesso qui, scrivere il suo nome nella Per campo su ognuna di esse. E allora andiamo avanti e mettere queste immagini all'interno. Così qui è un pacchetto che è pronto ad andare. Ecco un altro pacchetto che è pronto ad andare. Ecco un terzo pacchetto che è pronto ad andare. Ed ecco una quarta pacchetto che è pronto ad andare. E ora che cosa è interessante come internet in funziona la realtà è che, anche se ho quattro pacchetti, tutte sono destinate a uno stesso posizione, non sono necessariamente andando a percorrere la stessa strada. E così, anche se avrei potuto consegnare questi pacchetti all'esterno al router più vicino diciamo che, se si desidera inviare loro in tutte le direzioni, vediamo ciò che effettivamente accade, l'obiettivo di che è quello di ottenere loro in ultima analisi, a Cole. E in effetti, non sono già procedere necessariamente nella stessa direzione. E questo è bene. Questo è un po 'scomodo e lo stile Oprah oggi. E ora lasciatemi deliberatamente prendere quella posteriore. E ora Cole, se piacerebbe rimontarlo nel miglior modo possibile. Naturalmente, tutti possiamo indovinare che cosa la conclusione qui sta per essere. Si sta andando ad avere 3/4 di Rick Astley in un attimo. E qual è però la implicazione di questo? Si vuole cercare di tenere in su? Abbiamo una macchina fotografica puntato su di te se vuoi a posare con Rick Astley qui. Ci siamo. Bello. Ma ti sembra di essere dispersi un frammento di Rick Astley. Così si scopre che Internet è generalmente guidato da non solo IP, ma in realtà abbiamo sentito per lo inizio della lezione in quel video-- e probabilmente avete visto questo acronimo di più often-- ciò che realmente è il protocollo si tende a sentir parlare? PUBBLICO: TCP / IP. DAVID J. MALAN: TCP / IP, che è solo una combinazione di due protocolli, uno chiamato IP. Che ancora una volta, è solo il set delle convenzioni attraverso la quale noi affrontare ogni computer in internet. E poi TCP, che serve un altro scopo. TCP è un protocollo che tipicamente utilizzare in combinazione con IP, che tra l'altro cose, garantisce la consegna. Infatti, TCP è il protocollo nota che uno dei pacchetti a quanto pare non arrivare a Cole, perché sembra per essere il numero quattro dispersi su quattro. E così quello che il TCP, un protocollo lo fa, è dice Cole, hey Cole, se si riceve solo tre su quattro pacchetti, mi quale dire mancano, in sostanza, e poi la mia ragione di vita dovrebbe essere quello di ritrasmettere quello. E così, se anch'io, il mittente, si utilizza il protocollo TCP, Dovrei quindi creare un nuovo packet-- Non questo rugosa uno qui-- ritrasmettere proprio questo pezzo di , in modo che alla fine ha Cole un ricordo completo, se non altro. Ma in ultima analisi, in modo che i dati in realtà arriva a sua corretta destinazione. Ma, purtroppo, scrivendo il nome di Cole sul fronte non è sufficiente, di per sé. E davvero, non vorrei scrivere Nome di Cole, ma probabilmente il suo indirizzo IP sulla busta. E non vorrei scrivere David. Mi piacerebbe scrivere il mio indirizzo IP sulla busta in modo che i computer possono realmente comunicare avanti e indietro. Ma si scopre che i computer può fare molto più di servire fino immagini di Rick Astley. Essi possono anche inviare nuovamente e ricevere e-mail, messaggi di chat. Possono fare cose come il trasferimento di file, e qualsiasi numero di altri strumenti si utilizza su Internet, server possono fare in questi giorni. E solo perché una società, o una scuola, o di una persona vuole avere un web server, e un server di posta elettronica, e un server di chat, non significa che avete bisogno di tre computer. Si può avere solo un computer che esegue più servizi, per così dire. E così, quando Cole riceve un messaggio del genere, come fa il suo computer sa se dimostrare che la foto nel proprio browser, o in Gchat, o in Facebook Messenger, o in qualsiasi numero di altri strumenti? Così si scopre anche che come busta pezzo aggiuntivo delle informazioni note come numero di porta. E un numero di porta è solo un numero davvero, ma non identifica univocamente il computer, ma il servizio. E ci sono grappoli di questi. Così si scopre che nel mondo, gli esseri umani hanno deciso su alcuni tale convenzioni, alcune delle quali sono questi. Quindi c'è qualcosa chiamato File Transfer Protocol. E 'piuttosto datato. E 'completamente insicuro. Un sacco di persone ancora utilizzano. E utilizza il numero di porta 21. In altre parole, se invio di un file tramite FTP, la busta avrebbe non solo la mittente e l'indirizzo IP del ricevitore, avrebbe anche il numero 21 in modo che il computer ricevente sappia oh, questo è un file, non una e-mail o un messaggio di chat. 25 è SMTP. Quanti di voi hanno mai usato SMTP? Sbagliato. Quasi tutti voi avere. Se avete mai usato e-mail, che hai usato SMTP, Simple Mail Transfer Protocol, che è solo un modo elegante per dire, questo è il tipo di computer o servizio che invia i messaggi e-mail in uscita. E se hai mai visto sigle come POP o IMAP, e ci sono pochi altri, quelli sono per la ricezione e-mail, in genere. Questo significa solo che è un servizio diverso. E 'un software che qualcuno scrisse che invia o ascolti su un numero di porta specifico così che non confonde e-mail con qualche altro tipo di dati. Ora il web è HTTP, che è il numero 80, e anche la porta 443. Ed infatti, anche se Noi esseri umani per fortuna non c'è bisogno di fare questo, ogni volta che si visita un sito web come http://www.yale.edu, il browser è solo di essere di tipo utile in quanto è partendo dal presupposto che si desidera la porta numerica 80. Sappiamo già che il DNS riesce a capire ciò che l'indirizzo IP è di www.yale.edu. Ma il computer è solo andando a dedurre che si vogliono porta 80 perché si sta utilizzando Chrome, o IE, o qualche altro browser. Ma potrei fare tecnicamente colon 80. E poi posso dire in modo esplicito mio browser, inviare un pacchetto o più di informazioni per www.yale.edu chiedendo home page di oggi. Ma in particolare, indirizzo a IP di Yale a porta 80 in modo che io realmente ottenere eseguire il server web di Yale. Ora scompare subito perché i browser solo Decidiamo che non lo facciamo hanno bisogno di confondere gli esseri umani avendo ancora più arcane informazioni come i due punti 80. E, francamente, i browser come Chrome non fare ancora mostrarvi Http più, o il colon, o la barra barra, o la barra finale, in un certo senso, perché stanno cercando per rendere le cose più semplici per gli utenti. In un altro senso, è solo un po ' di un'esperienza utente cosa-- cerchiamo di liberarsi di alcuni del disordine. Ma sta nascondendo alcune delle questi dettagli sottostanti. Ed infatti, nessuno di noi probabilmente mai più scrivere http. Basta digitare in qualcosa come www.harvard.edu. E ancora, deduce Chrome che si desidera HTTP. Ma vi sono altri protocolli che potremmo sicuramente utilizzeremo. Quindi, dato tutto questo, se ora sorta di mettere sul cosiddetto cappello engineering, come stanno le cose chiamati firewall funzionano? Quindi probabilmente stai in genere familiarità con il firewall, non tanto in senso fisico. Così back in the day, e ancora oggi, se hai come centri commerciali per esempio che hanno un sacco di negozi, generalmente le pareti tra singoli negozi o negozi sono i firewall nel senso che hanno isolamento speciale in modo che se un incendio scoppia in un negozio, non è così necessariamente diffuso al negozio accanto. Il mondo dei computer ha anche firewall che fare qualcosa di diverso. Cosa fa una palla di fuoco fare? Sì? PUBBLICO: Fondamentalmente hanno tagliato la connessione se incontrano qualcosa come, per esempio, hanno numero di istruzioni id. E se succede qualcosa, tagliano la connessione. Come se questo attacco dannoso [Incomprensibile] il computer, or-- DAVID J. MALAN: buono OK. Sì, e infatti si è anche andando un po 'più lontano nel descrivere qualcosa che potrebbe essere chiamato un sistema di rilevamento delle intrusioni, o IDS in breve, per cui si effettivamente avere regole definite. E se si inizia a vedere sospetto comportamento, si tenta di mettere fine a tutto questo. E un firewall, francamente, a livello rete, è anche più stupidi e più semplice Oltre a questo, in genere. E c'è diversi tipi dei firewall nel mondo. Ma quelli che operano a il livello di cui stiamo parlando oggi-- IP e TCP-- lavorare ancora più semplicemente. Per esempio, se tu fossi sistema di Yale amministratori, o il sistema di Harvard amministratori, o qualche grande Fratello a qualche azienda, e si voleva per evitare che tutti i vostri studenti o tutti i dipendenti di andare a facebook.com, tutto quello che dovete fare è fare in modo che tutti i loro traffico di rete, prima di tutto, passa attraverso un dispositivo speciale. Chiamiamolo un firewall. E va bene, perché potete fare il vostro router la stessa cosa come un firewall se si mette lo stesso tipo di software sulla stessa macchina. Quindi, se tutti gli studenti o traffico dipendenti sta attraversando questo firewall centrale, come dovremmo bloccare le persone dall'andare a facebook.com, per esempio? Cosa sarebbe il sistema amministratore ha a che fare? Chiunque altro? Cerchiamo di andare in giro. PUBBLICO: [incomprensibile] DAVID J. MALAN: Dire che ancora una volta? PUBBLICO: Si deve solo ottenere raggiunto all'interno del sistema. Così appena messo in Facebook 127.0.0-- DAVID J. MALAN: Oh, interessante. Così si può effettivamente poi incidere il vostro sistema DNS. Questo è davvero un modo che si potrebbe fare questo per cui ogni volta che un studente di Yale tira www.facebook.com up, tutto di noi qui oggi nel campus stanno utilizzando server DNS di Yale, perché il server DHCP della Yale ci ha dato tale indirizzo. Quindi sì, si potrebbe tipo di rompere le cose o convenzione pausa da solo dicendo, sì, indirizzo di facebook.com è falso, è 1.2.3.4, che è in realtà non legittimo. O forse è 278. tutto ciò che era in una trasmissione televisiva Poco fa in modo che nessuno di noi può effettivamente visitare il sito facebook.com. Quindi supponiamo Yale ha fatto. Supponiamo di Yale ha voluto mantenere fuori di facebook.com. E quindi, cambiato le impostazioni DNS per darvi un IP falso indirizzo per facebook.com. Come rispondete? Tecnicamente, not-- oh, ora tutti vogliono partecipare. OK, sì. PUBBLICO: Basta digitare nella indirizzo IP effettivo di Facebook. DAVID J. MALAN: OK, bene. Così potremmo semplicemente digitare il indirizzo IP effettivo di Facebook, proprio come ho fatto con il sito web di Yale. E se il server di Facebook è configurato per sostenere che, si dovrebbe effettivamente funzionare. È un dolore minore il collo, perché ora siamo sono da ricordare qualche casuale Valore a 32 bit, ma che potrebbe funzionare. Che altro si potrebbe fare? Già. PUBBLICO: Si potrebbe cambiare tali impostazioni [incomprensibile]. DAVID J. MALAN: Sì, si potrebbe anche modificare le impostazioni DNS. Quindi, in realtà questo è in realtà molto utile, francamente, se siete in un aeroporto, o se sei in un caffè, o qualcosa che dispone di connessione internet per cui a volte traballante il server DNS ferma proprio lavoro. Così anche io ogni tanto faccio questo, non per cattivo, io vogliono usare Facebook scopi, ma in realtà perché mi sembra di avere una rete collegamento, ma nulla funziona. E così uno dei primi cose che try-- e voi può fare questo su Windows too-- ma sul mio Mac, se vado a rete. E ho scelto la mia connessione internet Wi-Fi. E vado ad avanzato. E vado a DNS. Questi sono i tre Indirizzi IP Yale mi dà per tre server DNS. Lo scopo quindi è per me cercare qualsiasi uno di questi per risolvere gli indirizzi. Ma posso ignorare questi facendo un plus. E chiunque vuole proporre un server DNS? PUBBLICO: 8.8.8.8? DAVID J. MALAN: Oh, sei incredibile. Sì, 8.8.8.8. Così Google, benedire i loro cuori, comprato l'indirizzo IP 8.8.8.8, perché di tipo sembra Gs probabilmente, ed è facile da ricordare. Ma anzi, ora ho configurato il mio computer di utilizzare server DNS di Google. Così ora se vado a yale.edu, è ancora in corso a lavorare. Ma io non sto usando Yale I server DNS più. E se vado a facebook.com, tutti coloro look up stanno per passare attraverso Google. Così, da un lato, ho abilmente eluso il sistema locale amministratori solo per capire come funziona in rete. Ma sto pagando un prezzo. Niente è gratis. Cosa ho appena rinunciato? Cosa ho appena rinunciato? Tutti di voi persone intelligenti che hanno state utilizzando 8.8.8.8, perché è cool o risolve i problemi, quello che hanno hai fatto tutto questo tempo? PUBBLICO: Viaggiando più lontano? DAVID J. MALAN: Forse viaggiare più lontano, perché Google probabilmente non abbastanza vicino come il server in fondo alla strada. Ma più worrisomely. Sì? PUBBLICO: Così ora Google sa dove si sta andando. DAVID J. MALAN: Google sa letteralmente ogni sito web che si sta visitando, perché si è letteralmente chiedendo loro, hey Google, si può tradurre yale.edu per me? Oppure ehi Google, si può tradurre questo altro indirizzo del sito web per me in un indirizzo IP. E così they're-- non ho idea di cosa stai parlando. E in modo che sappiano tutto di te. Quindi rendersi conto che questo è un servizio gratuito con uno scopo da loro punto di vista anche. Ma si può certamente si uscire da un vicolo cieco. Ora basta per affrontare un altro problema che spesso si presenta tra gli studenti, in particolare quando si viaggia all'estero in alcuni paesi come Cina, dove anzi è un Great Firewall of China per cui il governo ci blocchi abbastanza un po 'di traffico a diversi livelli. Non c'è bisogno di solo blocco del traffico a livello stiamo parlando qui, DNS o altrimenti, è possibile bloccarlo in altri livelli. Ed infatti, solo essere chiari, un firewall può funzionare anche più semplicemente di un semplice con gli amministratori di sistema cambiano Impostazioni DNS. Un firewall, un dispositivo tra noi e il resto del mondo, potrebbe semplicemente bloccare qualsiasi uscita richieste all'indirizzo IP Facebook sulla porta 80, o l'indirizzo IP per harvard.edu, o l'indirizzo IP di qualsiasi cosa. Quindi, un firewall può guardare il tuo buste 'indirizzi IP e anche porto numeri, e se Yale ha voluto, potrebbe semplicemente smettere di tutti noi da anche utilizzando più FTP, che avrebbe probabilmente una buona cosa perché è infatti un protocollo insicuro. Yale potrebbe addirittura impedirci visitando la totalità del web solo bloccando tutto porto traffico sul numero 80 come pure. Quindi questo potrebbe essere un altro modo. E c'è anche modi fantasiosi pure. Ma quando sei in viaggio all'estero per esempio, o se sei in un internet café, o se siete ovunque dove c'è blocchi o minacce, cosa si può fare? Beh, se si va giù per la strada a Starbucks o si viaggia in un aeroporto, generalmente si può solo salire sul Wi-Fi scegliendo come, JFK Wi-Fi di LaGuardia Wi-Fi, o Logan Airport Wi-Fi, o cosa non. E non è criptato, giusto? Non c'è alcuna icona lucchetto. E probabilmente non richiesto un nome utente e una password. Stai solo richiesto con una qualche forma di stupido per dire come, sono d'accordo di utilizzare questo solo per 30 minuti, o qualcosa di simile. Ma non c'è la crittografia tra voi e Starbucks accesso Wi-Fi punto, le cose con le antenne sulla parete. Non c'è la crittografia tra voi e segnali Wi-Fi dell'aeroporto. E quindi tecnicamente, quella persona raccapricciante seduto pochi posti a sedere giù da voi in Starbucks o in aeroporto potrebbe essere, con il giusto software, guardando tutti i vostri fili traffico sul suo computer portatile. Non è così difficile mettere un computer portatile in ciò che è chiamata modalità promiscua, che come suggerisce il nome, significa che sei tipo di sciolto con le regole. E ascolta semplicemente non solo per il traffico destinato per esso, ma anche per tutti gli altri è traffico nel raggio d'azione. E con questa logica, si può vedere tutti i pacchetti di informazioni si sta ricevendo. E se quei pacchetti non sono crittografati, è state mettendo a rischio di le e-mail, o messaggi, o qualsiasi altra cosa farsi esposto. Quindi, anche se non siete all'estero ma sei solo a Starbucks, o siete su qualche persona a caso di Wi-Fi che non è crittografato, una VPN è una buona cosa. Una VPN è una rete privata virtuale. Ed è una tecnologia che permette di avere un crittografato, un connection-- strapazzate più elaborato rispetto Cesare o Vigenere-- tra il vostro computer portatile, o il telefono, o il vostro desktop, e un server altrove, come un server nel campus di Yale. E se si viaggia abroad-- e in effetti, si trova questo in alberghi tutto il tempo. E soprattutto come aspiranti gli informatici dove voi ragazzi potrebbe, come geek, desidera utilizzare porte diverse da 80, e porti diversi e 443-- infatti per il problema definito sei, stiamo andando a giocare con più Porte TCP solo da scelta-- un sacco di alberghi e negozi, e reti solo bloccare questo genere di cose perché un po 'ingenuamente, o per ignoranza, basti pensare che nessuno ha bisogno di quelle altre porte. E così, utilizzando una VPN può voi aggirare questo tipo di restrizioni, perché ciò che fa è una VPN esso permette a Starbucks, o l'aeroporto, o in qualsiasi parte del mondo per connettersi a encryptedly yale.edu, ad un server qui nel campus, e poi tunnel, per così dire, tutto il traffico da dovunque siete attraverso Yale, a questo punto va poi alla sua destinazione finale. Ma mediante la crittografia, si evitare qualsiasi di questi tipi di filtri o di imposizione che qualche rete locale ha imposto. E in più, si ha un difesa molto più robusto contro le persone raccapriccianti intorno a voi che potrebbe essere cercando di ascoltare a sul traffico. Ci potrebbe essere ancora persone raccapriccianti qui ritorno a casa a Yale a guardare il traffico come si esce dalla VPN, ma almeno hai spinto la minaccia più lontano. Ed è anche qui, un compromesso. Ora, naturalmente, se si è in Cina o anche nel caffè, e si sta tunneling tutto il vostro traffico attraverso Yale, che prezzo stiamo pagando forse? PUBBLICO: Velocità. DAVID J. MALAN: Velocità, giusto? Ci deve essere qualche matematica o qualche fanciness coinvolto nella crittografia effettiva. Ci potrebbero essere migliaia di miglia di distanza o migliaia di miglia di cavi tra voi e Yale. Ed è davvero male se siete in Cina, per esempio, e si desidera visitare un sito web in Cina. E così i dati sta per gli Stati Uniti, e poi di nuovo in Cina solo perché si sta cifrando attraverso questo tunnel. Ma si risolve tecnico e lavorare problemi simili. Ma tutto si riduce a queste idee molto semplici. E Harvard, per i curiosi, ha uno anche qui, a vpn.harvard.edu, che opera proprio come Yale. Quindi, con tutto ciò che ha detto, perché è tutta questa rete utile? E cosa possiamo iniziare a fare con esso? Bene, facciamo questo ora più reale. Questo è l'acronimo con cui la maggior parte di noi sono probabilmente eccellente familiar-- HTTP-- che sta per Hyper Text Transfer protocollo. E questo significa solo questo è la lingua, il protocollo che i browser web e server web parlano. Il P in HTTP è infatti un protocollo. E un protocollo è solo un insieme di convenzioni. Abbiamo visto IP-- internet protocol-- Controllo della trasmissione TCP-- protocol-- e HTTP. Ma che cosa è questo stupido cosa di un protocollo? E 'solo un insieme di convenzioni. Quindi, se ho una sorta di scendere qui, e voglio salutarvi. Direi ciao, il mio nome è David. PUBBLICO: Luis. DAVID J. MALAN: Luis. Abbiamo questo stupido umano convenzione di stringere la mano qui. Ma questo è un protocollo, giusto? Ho esteso la mia mano. Luis tese la mano. Lo abbiamo fatto. E poi completo, fatto. E questo è esattamente lo stesso spirito di un protocollo informatico dove come in HTTP, ciò che accade è questo. Se siete il computer sulla lasciato qui, e c'è qualche web assistente lì sulla destra. E il computer sulla sinistra vuole richiedere informazioni da tale server. E 'una specie di un'operazione bidirezionale. Il browser a sinistra chiede qualche pagina web. Il server a destra risponde con qualche pagina web. E vedremo quale forma quelli prendono in un attimo. E si scopre che quei computers-- che il browser e il server, o un client e il server, per così dire. Proprio come un ristorante dove il cliente sta chiedendo qualcosa, e il server sta portando lui o lei something-- ottenere è una specie di la parola chiave. Letteralmente all'interno della busta il mio browser invia da qui a un web server è la parola get. Come voglio avere notizie di oggi. Voglio ottenere il mio News feed di Facebook, o io vuole ottenere qualche pagina dal server. In particolare, questo è ciò che è succedendo all'interno di quella busta. Così io, con Cole, essenzialmente inviato Cole una risposta. Se si immagina che in realtà Cole ha voluto una foto di Rick Astley, egli mi avrebbe inviato una richiesta simile nello spirito a questo. All'interno della sua busta per me, dove Ora sto giocando il ruolo di Google, sarebbe una richiesta che letteralmente dice, ottenere, e quindi un slash-- avanti e probabilmente avete visto slash negli URL prima. Significa solo darmi il default pagina, il default Rick Astley foto in questo caso. E tra l'altro, Cole parla la lingua Versione HTTP 1.1, o il protocollo 1.1. E si scopre là del una vecchia versione 1.0. Ma i computer tendono ad usare 1.1. La seconda linea è una cosa utile che tornerà a forse tra non molto. Ma è solo una specifica per me, il destinatario, che la cosa che voglio è www.google.com. Perché è molto probabile in questi giorni per decine, centinaia di siti web con diversi i nomi di dominio a tutti vivere sullo stesso server. Non sta andando per essere vero tanto nel caso di Google. Ma in una società più piccola di caso, potrebbe assolutamente essere. Così Cole è solo tipo di mettere nella busta, tra l'altro, quando questo raggiunge il tuo indirizzo IP sulla porta 80, tanto per essere sicuro che conoscete Voglio www.google.com, non qualche altro sito web casuale sullo stesso server. Quello che ho poi rispondo a Cole con, alla fine della giornata, è un quadro. Ma in cima a quella foto all'interno della busta è in realtà una parte di testo, dove dico io, OK. Parlo versione HTTP 1.1 anche. 200. Il che è un codice di stato che la maggior parte di noi hanno probabilmente mai visto, perché significa OK. E questo è un bene, perché significa che sto rispondendo con successo alla richiesta di Cole. Quali numeri avete probabilmente visto sul web che non sono OK? PUBBLICO: 404. DAVID J. MALAN: 404-- Impossibile trovare il file. Così in effetti, ogni volta che hai visto uno di quei fastidiosi file non errori trovati, perché la pagina web è morto, o perché siano state digitate correttamente un URL, che significa semplicemente che la piccola busta che il vostro calcolatore ricevuto dal server conteneva un messaggio HTTP 1.1, 404-- non trovato. Il file o la richiesta hai fatto non è stato trovato. Inoltre, all'interno della busta in genere è questa linea, tipo di contenuto. A volte è HTML, qualcosa che vedremo presto. A volte è un JPEG. A volte è un GIF. A volte è un filmato, un file audio, qualsiasi numero di cose. Così all'interno della busta è solo un piccolo suggerimento su ciò che sto ricevendo. Ci sono altri codici di stato troppo, un po ' di cui esploreremo in P definito sei, e ti imbatte in P set sette e / o otto. Ma alcuni qui, come 404 che abbiamo visto. Proibizione, 403, mezzi come i permessi sono sbagliati, come se non si dispone di tipo di configurato correttamente. 301 e 302, raramente vediamo visivamente. Ma significano reindirizzare. Ogni volta che sei andato a uno URL e sei stato magicamente inviato da qualche altra parte, questo è perché il browser ha inviato indietro una busta contenente il numero 301 o 302, e l'URL che vuole il browser per andare invece. 500 è orribile. Lo vedrete fra poco, probabilmente in P definito sei o P impostato sette. E significa generalmente c'è qualche bug nel codice, perché infatti saremo scrivendo codice che risponde alle richieste Web. E tu hai appena avuto un po ' errore nella logica o la sintassi, e il server non è in grado di gestirlo. Così vediamo come ora possiamo sfruttare e capire queste richieste come segue. Se vado a, diciamo, google.com. Lasciami andare a www.google.com. E per amor di dimostrazione, diamo vedo, ho bisogno di andare a Impostazioni qui. Ho intenzione di andare in Impostazioni di ricerca. E Google ha sempre più fastidioso caratteristiche, ma caratteristiche utili. Così Google ha questa cosa come istante risultati in cui si inizia a digitare, e automaticamente le cose cominciano ad apparire. E questo è tutto bene e tecnicamente utili, e capiremo in breve tempo come funziona. Ma per ora, sto girando off risultati immediati, perché voglio che il mio browser per tipo di lavoro così vecchia scuola che posso vedere quello che sta succedendo. Così ora sono tornato qui. E voglio cercare per i gatti. E noto che vedo alcuni suggerimenti, alcuni suggerimenti molto benigne per fortuna. E ora se ho colpito Enter, vediamo cosa succede. Così ci sono alcuni gatti. E il colpo superiore è su Wikipedia. Ma oggi ci preoccupiamo la tecnologia qui. Così l'URL a cui ho stato inviato è questo qui. E ci sono alcune cose che in realtà non capire. Quindi ho intenzione di andare avanti, perché I tipi di sapere come funziona Google, e ho intenzione di distillare questo URL nella sua forma più semplice. E ora sto andando a colpire di nuovo Invio. E funziona ancora. Ho una pagina di risultati di tutto sui gatti. Meno di notare la semplicità del mio URL. Si scopre in questo modo gran parte delle opere web. Il web è solo un intero gruppo di computer l'esecuzione di software che prendono in ingresso. Non è ottenere ingresso stile stringa. Non è da riga di comando argomenti come siamo abituati a. Prendono di ingresso, questi server web, a titolo di URL molto spesso. E ogni volta che avete cercato qualcosa, ogni volta che hai effettuato l'accesso Facebook, ogni volta che hai fatto nulla interattivo con una pagina web, quello che stai facendo è effettivamente inviare un modulo, in modo da a speak-- caselle di testo, caselle di controllo, piccoli cerchi, e quant'altro che inviano informazioni su di voi al server. E si scopre che il web server sa guardare quella URL e analizzarlo, come sguardo carattere che per carattere cercando qualcosa interessante dopo un punto di domanda. Perché dopo un punto interrogativo, si scopre, sta per venire un gruppo di coppie di valori chiave. Voglio dire chiave = valore. E poi se c'è multiple-- forse una e commerciale, qualche chiave altro = valore, commerciale, chiave = valore. Così abbiamo tipo di visto questa idea prima dove qualcosa ha un valore. E 'solo un nuovo formato qui. E so solo, per convenzione, Google utilizza q per query. E poi se voglio cercare per i cani, io può cercare manualmente per i cani del genere. E poi mi pare sempre alcuni risultati di ricerca che coinvolge i cani. In modo che sembra essere interessante. E in effetti, che cosa sta succedendo sotto il cofano è presente. Permettetemi di fare questo. Questo è il a-- vediamo. Torniamo su qui solo per un momento. Vedremo che non c'è altro il modo di presentare le informazioni. Quindi se sto login in Facebook, o Gmail o qualsiasi altro sito web popolare, sembra tipo di male, se tutto ciò che ho scritto nella casella di ricerca finisce in mio URL, nella barra degli indirizzi del mio browser. Perché? Perché è così leggermente preoccupante? Sì? PUBBLICO: digitare una password. DAVID J. MALAN: Sì. E se quello che ho digitato la mia password? I tipi di non lo voglio così ovviamente visibile nella barra degli indirizzi del mio browser. Uno, perché il mio compagno di stanza fastidioso tende a guardare oltre la mia spalla, e lui o lei può ora vedere, anche se era pallottole quando sto scrivendo in, piccoli cerchi. Ora è nella mia barra degli indirizzi. Inoltre, ciò che è vero di cose si tende a digitare nella barra degli indirizzi. PUBBLICO: [incomprensibile] DAVID J. MALAN: Che cos'è? PUBBLICO: Essa viene inviato. DAVID J. MALAN: Essa viene inviato. E inoltre, viene ricordato. Poiché la prossima volta si digita le cose lassù, spesso autocompletes e ricorda ciò che hai scritto prima. E così non c'è questa vera e propria storia che il fratello, o il vostro compagno di stanza, o chi può camminare fino alla praticamente vedere ogni sito web avete visitato perché è registrati in quella barra degli indirizzi. Inoltre, si supponga di voler caricare una foto su Facebook. Come in tutto il mondo che si sono andando a mettere una foto in un URL? Beh, si scopre che si può fare in qualche modo, ma è certamente non ovvio. E così non c'è questo altro modo di invio di informazioni in una busta, non tramite un GET, ma via qualcosa chiamato POST. E in teoria, sembra praticamente lo stesso. Al posto della parola GET, POST diciamo, e quindi lo stesso tipo di formato. Per esempio, questo è uno screenshot di quello che potrebbe apparire come se cerco di registrazione in Facebook, che mi manda in un file chiamato login.php, che è in realtà ancora oggi chiamato come tale. E 'lo stesso Mark nome ha dato a molti anni fa. E 'il programma che ha scritto in PHP via cui gli utenti possono accedere al sito web. Ma è necessario inviare alcuni input aggiuntivo. E piuttosto che andando dopo il il nome del file come ha fatto prima con cats-- q = cats-- si può andare più bassa nella richiesta, più in profondità all'interno della busta, se si sarà dove nessuno può vederlo, e dove non finire nella barra browser dell'utente, e quindi Non ricordo per le persone a curiosare intorno. Ed ecco il mio indirizzo e-mail e la mia password falso effettivamente andare. E se Facebook sta usando Non HTTP, HTTPS ma, tutto questo sarà criptato, strapazzate, ala Cesare o Vigenere, ma più fancily modo che nessuno può effettivamente vedere questa richiesta. E così in effetti, ogni volta che avete un URL che inizia con https, significa solo che è criptato. Ma alla fine della giornata, cosa in realtà all'interno di queste buste? Questo era super basso livello. E per fortuna, non siamo andando ad avere necessariamente andare così basso livello ogni volta per iniziare a scrivere software interessante. Siamo in grado di iniziare a prendere le idee di una settimana attraverso cinque, assumere che vi è ora che questa infrastruttura consente di scrivere software che opera sul web, e sta andando per permetterci la prossima settimana per iniziare guardando qualcosa chiamato HTML. Questa è la roba che è ancora più all'interno della busta, ma è la roba siamo sta per iniziare a scrivere. Ed è la roba più interessante, siamo intenzione di scrivere programmi che inizia generando automaticamente in modo che i nostri siti web non sono codificati, ma prendere in ingresso e produrre output. Questo è forse il più semplice web pagina è possibile fare nel mondo. Posso davvero aprire qualcosa di stupido come TextEdit sul mio Mac, il che mi dà solo una finestra di testo semplice come questo. Gli utenti PC hanno Notepad.ext, che è molto simile nello spirito. E posso letteralmente digitare fuori questo-- HTML DOCTYPE, che sembra un po 'criptico. Ma torneremo a questo. HTML, con questi strani parentesi angolari e barre, all'interno del quale ora ho intenzione di dire ecco che arriva il capo della mia pagina web. All'interno di questo, ho appena Sai, e presto sapere, che posso mettere il titolo della mia pagina web. E poi sotto il head della pagina web è per andare al cosiddetto corpo della pagina web. E sto solo rientri solo come in C per tipo di mantenere cose ben leggibile stilisticamente. E ora ho intenzione di salvare questo come un file sul mio desktop, chiamato hello.html. E ho intenzione di dire che sì, usare l'HTML. Non cambiare a txt, anche se tutto questo è un file di testo, proprio come un programma in C scritto con un editor di testo. Anche se non in CS50 IDE al momento, proprio qui sul mio Mac. E se io ora vado al mio desktop, vedrete hello.html. Se faccio doppio clic su questo, si aprirà Chrome. E anche se questo file succede a vivere sul mio desktop, che è forse la più semplice pagina web ho potuto fare. Si noti che il titolo della top scheda salita è ciao mondo. Il corpo della pagina web è davvero ciao mondo. E tutto quello che ho fatto per arrivare a questo punto è implementare, o è scrivere un nuovo linguaggio, chiamato HTML. Non è una programmazione linguaggio come il C. C'è Non sta per essere le condizioni, e loop, e funzioni. Si tratta di un linguaggio di markup, in cui caso basta solo far sapere il ricevente programma di ciò che si vuole fare. Ciò significa hey del browser, ecco che arriva una pagina HTML. Ehi del browser, ecco che arriva il capo della mia pagina. Ehi del browser, ecco che arriva il corpo della pagina. Ehi del browser, questo è tutto per il corpo. Questo è tutto per la pagina HTML. E con queste definizioni da solo, vedremo presto che uno, possiamo rappresentare questo come un albero. Ma ne riparleremo più avanti. Quindi questo sarà tutto interconnessione a le nostre strutture dati più recenti. Due, introdurremo questo stupido scherzo. Questo è un tatuaggio reale che questo ragazzo ha avuto sul suo collo. E 'probabilmente divertente la prima settimana o due, e successivamente, forse non tanto. Ma HTML, e anche il web Pagina Ho appena fatto, mente eccellente numbingly disappointing-- solo dicendo ciao mondo in nero su uno sfondo bianco. Sicuramente possiamo fare molto meglio. E faremo così introducendo un altro linguaggio chiamato CSS. Anche questo non è un language-- programmazione nessun cicli e le condizioni, o per cicli, ma in realtà, solo sintassi con la quale possiamo dire, fanno di questo testo di grande. Rendere questo testo piccolo. Destra allinearlo. Sinistra allinearla. Rendono rosa. Rendono viola. Rendere blu. O di fare qualsiasi numero di altri effetti visivi. E quindi vedremo come avviare stilizzazione pagine web in modo che si guardano in un modo più vicino a quello che vogliamo. E, infine, abbiamo davvero rovinato forse molto di TV e del cinema per voi. Ho pensato che saremmo finiti qui con i nostri secondi finali su una clip finale che si mostra come l'hacking sulle opere di internet. Se potessimo ridurre la luminosità accende un'ultima volta. [RIPRODUZIONE VIDEO] -Nessun modo. Mi sto violato. -Okorsky? -No-- No, questo è importante. Hanno già bruciate il firewall pubblico NCIS. -Bene, Isolare il nodo e discarica li sull'altro lato del router. -Sto cercando. Si sta muovendo troppo in fretta. Oh, questo non va bene. Stanno usando la nostra connessione [Incomprensibile] questo database. Sever esso. -Non Può. E 'un attacco punto. Lui o lei è solo andare dopo la mia macchina. -Non è possibile. C'è crittografia DOD il mio livello. Ci vorrebbero mesi per get-- Ehi, che cos'è? Un videogioco? -No Tony, stiamo ottenendo violato. -Se Si mettono in computer di Abby, l'intera rete NCIS è accanto. -Non Può fermarlo. Fare qualcosa di McGee. -Ho Mai visto codice come questo. Oh. -Dove Sta a finire? Abby? -Io Non ha fatto nulla. Ho pensato che hai fatto. -No. -Ho fatto. [FINE RIPRODUZIONE] DAVID J. MALAN: Il migliore parte è di due persone che digitano sulla tastiera contemporaneamente. Quindi questo è tutto per CS50. Restiamo sempre in giro per l'orario di ufficio. E noi vediamo la prossima volta. [MUSICA GIOCO - "TEMA Seinfeld"] Questo è CS50. Non voglio essere un pirata. SPEAKER 2: Yarr David. Si tratta di una bella doppietta voi indossare. Lotto di orzare quel soffio.