[Powered by Google Translate] [Settimana 7, continua] [David J. Malan, Harvard University] [Questo è CS50.] [CS50.TV] Bene. Welcome Back. Questo è CS50, e questa è la fine della settimana 7. Quindi, una di queste piccole cose stupide che va su Internet e noi slurped, e ora dovrebbe fare un po 'di senso geeky per voi. Beh, è ​​stato più divertente di questo ragazzo di quanto non fosse a voi ragazzi. Parlando di, beh, ragazzi, oggi è il compleanno di Nate. Per darvi un'idea di quanto bene Nate e io siamo allo sviluppo web in base alla classe Lunedi e basato ora su questo, Ho pensato di tirare su home page di Nate, se non lo avete ancora visto. Questo qui ia Nate HTML. Quindi, vedere il suo codice sorgente, se vuoi vedere come fare questo, e Nate, se potessimo imbarazzo brevemente, il personale hai un po 'di qualcosa se volete condividere un po 'di dessert con alcuni dei ragazzi della classe qui. Se vuoi venire in giù. Voi tutti applaudono e sono molto bello, ma nessuno si è seduto da nessuna parte vicino a Nate, per qualche ragione, in quella zona posteriore. Così forse si possono trovare alcune persone di godere di questi con. Buon compleanno, Nate. Saluti supplementari: Abbiamo mostrato un paio di clip dai nostri studenti CS50x. Se volete vedere chi altro è in tutto il mondo che sta seguendo lungo, è possibile testa a questo URL, dove Giuseppe, uno dei nostri TF, ha messo insieme una sorta di montaggio di tutti coloro che sono stati la presentazione questi video, tra cui Rick Astley. E se si scorre attraverso questi, è davvero molto stimolante per vedere la diversità dei paesi e città di cui le persone stanno salutando. Quindi, se volete dare un'occhiata a questo, che sarà fino fino alla fine del semestre. Oggi continuiamo il nostro sguardo al Web, programmazione web, HTML e simili, e abbiamo anche il pranzo in arrivo questo Venerdì se si desidera, e, in particolare, non lo hanno fatto prima. Il tema di Venerdì sarà il compleanno di Nate, quindi se si desidera avere pranzo di compleanno con Nate ed altri, alcuni dei nostri amici da industria, si prega di testa a tale URL lì. Spazio, come sempre, è limitata. Inoltre, se hai dimenticato, rendersi conto che la prossima settimana è il termine ultimo per il problema impostato 4 di caccia al tesoro, per cui dopo aver recuperato tutti quei file JPEG da card.raw, tu ei tuoi compagni di sezione, se si desidera, può provare a fotografare il maggior numero di scienziati informatici di che scheda di memoria il più possibile, e voi e la vostra sezione poi vincere un premio favoloso. Fare riferimento alla pset 4 del disciplinare di cosa presentare e da quando. Inoltre, se si desidera avere la vostra opera immortalato sul sito web del corso e la sua storia di abbigliamento, sapere che hai il benvenuto ora per iniziare a presentare progetti per quest'anno T-shirt e felpe e simili. Faremo del nostro meglio per includere il maggior numero possibile, ma avremo alcuni membri del personale della revisione di tutti i progetti per assicurarsi che siano in linea con le specifiche, e poi scegliere in genere una manciata di loro di essere esposti. Quindi, se siete il tipo di costruzione, è sufficiente sapere che i requisiti per la grafica sono PNG, almeno 200 DPI, non dovrebbe essere più di 4000 x 4000 pixel, e non più di 10 MB, ma siete invitati a utilizzare le cose come Photoshop o GIMP o vari programmi di grafica, ciò che avete a vostra disposizione. Anche all'orizzonte è il progetto finale. Il progetto finale è davvero il culmine di 50, in cui tutte le assegnazioni in corso, è la vostra occasione davvero di fare le proprie cose. E che può essere semplicemente quello di fare qualcosa per divertimento, può essere quello di risolvere un problema pressante tuo gruppo di studenti ha, per qualche nuovo sito web, un meccanismo nuova collezione per i dati. Può essere una applicazione mobile per Android, per iOS. In realtà, il cielo è il limite, e nel corso delle prossime settimane, come transizione da C a questi linguaggi di alto livello come PHP e JavaScript, vi troverete sempre più familiarità con alcuni reali tecniche, alcuni strumenti del mondo reale, e ad integrarla, sapere che il corso ha una storia di seminari, in base al quale nelle prossime settimane diverse, una parte del personale docente e nostri amici da campus offrirà seminari facoltativi che vanno al di là di ciò che è in genere fatto in sezione per farvi conoscere le cose come programmazione Android, per farvi conoscere le cose come iOS di programmazione o più avanzate tecniche di sviluppo web. C'è tutta una storia di questi già online. Se andate a cs50.net/seminars, abbiamo fatto questo per diversi anni, e vedrete che ha archiviato qui con i PDF e video e simili sono i video diverse decine di seminari. L'anno scorso, per esempio, abbiamo avuto un seminario sul acing vostri colloqui tecnici, se si sta effettivamente cercando di andare fuori e fare uno stage o tempo pieno concerto. Windows Mobile sviluppo, sviluppo Android, Google Maps, API, CSS, lo sviluppo per il BlackBerry, Emacs. Davvero, siete invitati a dare un'occhiata a uno qualsiasi di questi seminari a vostro piacimento. E saremo in possesso di nuovi in ​​questo semestre, pure. Così che cosa è avanti con il progetto finale? Beh, in primo luogo, anche se questa data è un po 'imminente, questo è davvero solo l'occasione per iniziare a pensare il progetto finale molto realistico. Sappiamo solo l'inizio di qualcosa di quello che ci sarà ancora da coprire nel corso, HTML, PHP e simili, ma siete tutti familiarità con il Web, e pregiudizi questa conversazione verso il Web solo perché maggior parte delle persone finisce per fare progetti finali basate sul Web, ma che non è affatto necessario. Utilizzo di C va bene, obiettivo C, Java, qualsiasi altra lingua si potrebbe sapere o voler sapere è abbastanza bene. Ma per ottenere i succhi di frutta che scorre inizialmente, ci aspettiamo che la presentazione di una proposta preliminare che, per il PDF sul sito, che è ora a cs50.net, e in alto a sinistra vedrete progetto finale è la specifica per il progetto definitivo, e ci sono dettagli sulla proposta preliminare e simili. Si riduce praticamente giù a una e-mail al tuo compagno di insegnamento solo per intavolare una conversazione con lui o lei a quello che stai pensando. Su projects.cs50.net è un deposito di idee da persone del campus se stai lottando per venire con qualche idea, e manual.cs50.net/APIs è un repository di link alle API. Che, però, è un API? Che cos'è un API? L'ho già detto almeno due volte, secondo le trascrizioni delle ultime settimane. Che cos'è? [Studente, incomprensibile] >> Ok, bene. Quindi qualcosa di interfaccia di programmazione. Application Programming Interface, e questo può assumere diverse forme, ma ciò che questa realtà si riduce a è il codice che qualcun altro hs scritto o dati che qualcun altro ha raccolto che viene messo a disposizione in qualche modo programmatico. È possibile scrivere codice in C, PHP, Python, Ruby, qualunque sia la vostra lingua scelta è tipicamente, e in qualche modo si può costruire su qualcun altro la funzionalità o qualcun altro set di dati. Per esempio, se vado a questo link qui, e vedrete un paio di link nella pagina successiva per cui abbiamo API proprio CS50, che sono molto Harvard-centrica, e quindi le API di terze parti. Tra le API di terze parti sono cose veramente utili come essere in grado di inviare SMS il popolo a, essere in grado di ricevere messaggi di testo SMS da persone. E cose del genere che si possa avere la minima idea di come implementare voi stessi, ma grazie a servizi, alcuni, libera e un po 'di commerciale si può costruire in cima a quelli e fare qualcosa di vostro interesse. Tra le API CS50 sono questi campus-centric cose come Corsi di Harvard, energia, eventi, cibo, mappe, notizie, tweet e Shuttleboy proprio, e questi sono API che guardare un po 'di qualcosa come questo. Vorrei tirare su l'API HarvardFood. Se siete mai stati al sito HUD, probabilmente siete stati lì per vedere che cosa c'è per cena o per vedere quali sono le ore per un po 'd-hall. Beh, non è particolarmente facile da navigare, e così quello che abbiamo fatto qualche tempo fa è stato scritto che il software, capita di essere in PHP, che in realtà schermo raschia la totalità del sito HUD. Per lo screening raschiare qualcosa significa scrivere un programma in un linguaggio come PHP che finge di essere un browser, anche se potrebbe funzionare a un prompt dei comandi, che finge di essere un browser, si collega a un sito Web, scarica il suo codice HTML, la lingua in cui è scritto, e poi legge, o più precisamente, lo analizza verso il basso, da sinistra a destra. E quello che abbiamo fatto è stato che abbiamo scritto il nostro codice in modo tale che ogni volta abbiamo visto qualcosa in quel HTML che sembrava qualcosa sul menu, come hamburger, ci sarebbe quindi importare che nel nostro database. E ogni volta che abbiamo visto il contenuto nutrizionale, ci importa che nel nostro database. E quello che abbiamo fatto è stato sfruttare il fatto che il sito web HUD, anche se potrebbe essere un po 'una sfida per noi esseri umani per navigare sotto la cappa, tutto il codice HTML viene generato dai rispettivi programmi informatici. Quindi tutti i loro HTML, anche se potrebbe sembrare disordinato, come la maggior parte dei siti sotto il cofano che segue un modello. Quindi abbiamo appena trascorso un paio d'ore per capire che modello in modo che alla fine, buttiamo via tutto il codice HTML disordinato, tutte l'estetica del rivestimento in grassetto e corsivo e simili, e cosa siamo poi in grado di fare è esporre gli stessi dati. Ad esempio, in questo modo. Così abbiamo, secondo la documentazione qui, hanno informato il mondo che, se si richiede un URL che appare così, food.cs50.net / qualcosa, e di fornire alcuni parametri, che ci parla di oggi, come data finale di tempo, data di inizio tempo, pasto e così via, ciò che i nostri server tornerà a voi, per esempio, è un file CSV, comma separted valori come un file di Excel, contenente tutto il necessario per la prima colazione in questa data particolare nel marzo dello scorso anno quando mi è capitato di scrivere questa documentazione. Per chi ha familiarità, CSV non è l'unico formato di file. C'è un altro formato che è ancora più versatile chiamato JSON, JavaScript Object Notation. I dati possono tornare in quel formato. Quindi l'asporto è che se ci si immerge in questa API o qualsiasi altro CS50 o qualcosa là fuori su Internet, o non a tutti, si rende conto che il mondo è sempre più avviato a standardizzare come le macchine di comunicare tra loro. Usiamo formati di dati standard come CSV o JSON. E che cosa significa questo per voi è che si può scrivere la parte interessante di un programma che consente l'utente cercare un sala da pranzo menu, che permette loro di creare liste di preferiti che permette loro di ricevere avvisi di testo quando il loro piatto preferito sta per essere servito in qualche d-hall utilizzando qualcun altro set di dati e la costruzione in cima alla loro API. Quindi, più su che in forma di seminari e la documentazione che avete qui online. Così quelli, poi, sono le API. Questo ci riporta a HTML. Riassunto veloce. Cosa è l'HTML? [Studente, incomprensibile] Buono >>. HyperText Markup Language. Qualcun altro, ciò che è Hypertext Markup Language? HyperText Markup Language. Va bene. Così HTML, HyperText. HyperText riferisce solo al Web, per la maggior parte. Markup significa che non è in realtà un linguaggio di programmazione, HTML. Non è una lingua che si può esprimere la logica trovi Non ha cicli. Non ha condizioni. Non ha funzioni, di per sé. Piuttosto, ha queste cose chiamati tag, o più propriamente, elementi. E questi elementi hanno tag di inizio e di fine, o tag di apertura e tag chiusi, e che cosa questi tag intende generalmente per un browser è, iniziare a fare qualcosa e poi smettere di fare qualcosa, anche se ci sono eccezioni a tale. A volte è solo 'mettere una interruzione di linea qui,' per esempio. E abbiamo visto esempi di che l'altro giorno, tra rivestimento in grassetto, interruzioni di riga, e poi un paio di altri tag. Così HTML è il linguaggio in cui sono scritte le pagine web. Quindi, se vado a qualcosa come Google.com e tirare solo la loro home page, Ricordiamo che se si fa clic destro o controllare clicca e guardare alla fonte visualizzazione di una pagina, in genere è un casino completo in questi giorni sotto il cofano, ma è perché computer non si preoccupano di spazio bianco, quindi questo non ha bisogno di guardare piuttosto. Ma se ci ingrandire parti di esso, notare che Chrome, solo per essere bello, ha colori diversi le cose. In effetti, questo è il tag prima che abbiamo visto in una pagina web. E ancora, HTML 5, l'ultima versione di questo linguaggio, ha questa cosa all'inizio, > Si, abbiamo risolto questo prima esplicitamente dicendo al browser 'mettere una interruzione di linea qui.' E questo perché, ancora una volta, un browser è solo andare a fare in modo esplicito ciò che il linguaggio di marcatura che dice di fare, quindi, anche se si potrebbe aver colpito inserire una o due volte o anche dieci volte, sta andando a combinare che tutti in un unico spazio, solo per convenzione. Quindi, se si vuole veramente un interruzione di linea, è necessario utilizzare il tag br, e ora avviso, come Lunedi, ho messo la / all'interno di questo tag, solo perché questo proprio non mi sembra giusto per avviare una interruzione di linea quindi fermarlo con niente in mezzo. Così la convenzione in formato HTML è quello di aprire e chiudere un tag contemporaneamente. Per inciso, vedrete un sacco di siti web nei libri non farlo. È giusto fare o di non farlo, ma dovremmo che il design-saggio e stilisticamente, questo è solo meglio perché allora ogni tag è sia aperto e chiuso in qualche modo. Quindi ora cerchiamo di salvare e ricaricare. Torna al browser, va bene. Ora stiamo facendo qualche progresso, ma non è abbastanza. Andiamo avanti e iniziare a digitare in un corpo di testo più lunga. Quindi diciamo, 'A quick brown fox salta un cane pigro.' E ora vorrei solo copiare e incollare un paio di volte in modo da avere un paragrafo di testo. Torniamo qui. Quindi, non è alla ricerca molto buona. Io ho una interruzione di linea, quindi è bene, ma ora, una volta che stiamo arrivando al punto di avere una pagina web che ha un sacco di contenuti e linee non solo singoli per dimostrare HTML, possiamo cominciare a pensare a queste cose come punti reali. E possiamo cominciare a strutturare la nostra pagina web un po 'più pulito. E in effetti, quello che posso fare è andare qui all'interno del mio tag body, e sai una cosa, se 'Questo è CS50. . . ' demarks davvero l'inizio di un paragrafo, beh, diciamo etichettare come tale. Permettetemi di rientrare il testo, solo per convenzione, lasciatemi dire che questo paragrafo finisce qui, e allora piuttosto che fare questo interruzione di linea, vorrei solo dire che vi appartiene e come un nuovo paragrafo, e mi limiterò a presto trattino semplicemente sovrascrivere tutta questa roba. Così ora abbiamo un paragrafo rientrato lì, e ora il nostro markup sta iniziando a farsi un po 'di più semanticamente coerente con quello che stiamo cercando di fare. Abbiamo un punto, quindi cerchiamo di chiamare un paragrafo con il tag p. Abbiamo un secondo paragrafo, quindi cerchiamo di chiamare un paragrafo con il tag p. E ora, che cosa il browser in genere non è proprio come in un libro inglese o un saggio, dove in genere vedere alcune interruzioni di riga tra i paragrafi. I browser lo farà automaticamente per voi. Così ora abbiamo due punti e possiamo continuare questo. Ma, naturalmente, sul Web, quando si hanno i corpi di testo non è in genere solo macchie enormi di testo. Ci sono spesso collegamenti ipertestuali in là. Quindi, se si vuole, ad esempio, sono alcuni link lì, Immagino quello che potrebbe essere di interesse in qualsiasi pagina web che sto creando qui è - lasciami andare a Google.com, e lasciami cercare un quick brown fox. Vai alle immagini di Google, e, che ne dici - questo è carino. Andremo con questo. Quindi qui abbiamo un quick brown fox che salta su un cane pigro. Così che cosa ho intenzione di fare qui, solo per il gusto di dimostrazione, si supponga che questa immagine era sul mio server, e mi era stato la creazione di queste immagini. Ciò che ho appena fatto è stato fare clic destro o controllare clicca sull'immagine, e quello che vedrete nella maggior parte dei browser è un piccolo menu - smettere di farlo - un menu che vi permette di scegliere Copia indirizzo o URL copia. Quindi vorrei tornare indietro al mio HTML, e supponiamo che io voglio a collegamento ipertestuale ad un'altra pagina web. Qual è stato il tag chiamato per questo? [Studente, incomprensibile] >> Si '. Così a href riferimento iper. Lasciatemi andare avanti e incolla che trovi Si tratta di un URL piuttosto lunga, per cui vorrei zoomare verso l'esterno. Chiudi parentesi, così ora sono noti fin qui perché tale URL è successo a essere piuttosto lungo. Vorrei scorrere qui alla fine del quick brown fox, e poi voglio chiudere questa tag con . Quindi tutto in alto in blu è solo un commento. Questa è la mia dichiarazione doctype, che ancora una volta, si può semplicemente copiare e incollare sulla fede, per ora. Questo dice al browser, 'Ecco che arriva un po' di HTML 5. ' Al di sotto, sulla linea 14, è il primo dei miei tag reali, e questo dice solo, come prima, ecco che arriva un po 'di HTML, ecco che arriva il capo della mia pagina, ecco che arriva il titolo, e poi, al contrario, che è per il titolo, che è per la testa. Arriva ora il corpo della pagina. Quindi un paio di nuovi tag h1: ora sta per la rubrica 1. C'è una tradizione in HTML per molti anni indietro di avere diverse dimensioni di testo. E di nuovo nel corso della giornata, ognuno voleva dire, in generale, solo grandi e in grassetto. Ma c'è anche h2, che è grande, ma non è così grande e in grassetto. C'è h3, che è una specie di grande, ma non così grande e in grassetto, e così via, tutta la strada fino a h6. In questi giorni, però, h1, h2 e h3 devono realmente di avere un significato più semantico a loro, per cui h1 è davvero un titolo: il titolo di una pagina web, l'intestazione di una colonna o qualcosa del genere di testo. Così ho volutamente detto h1 CS50 ricerca> h1 in modo da precisare che questo è davvero il titolo, il titolo della mia pagina. Non il titolo nel senso barra del titolo, ma il titolo che in realtà vedere nella pagina web stessa, nel corpo. Ora, questo, si può intuire quello che è, anche se abbiamo alcuni pezzi nuovi di sintassi. Questa è una forma. Così il web diventa davvero interessante quando i siti web l'input da parte degli utenti. In questa classe, il problema posto sulla programmazione web, non stiamo andando a fare un sito web, di per sé, con contenuto statico che mostra le fotografie che hai preso, o questo è il mio curriculum, e le cose su di me, perché queste cose sono relativamente facili da mettere insieme. E 'difficile fare le cose belle sul Web, ma almeno tirare su il contenuto è piuttosto banale. Ma le cose si fanno davvero interessanti quando qualcuno può visitare il tuo sito web e fornire input e possono compilare i moduli, può spuntare caselle di controllo e può interagire con il tuo sito web. E in effetti, probabilmente, ogni sito web che ti interessano in questi giorni, in ogni dettaglio, è in qualche modo interattivo. Facebook, Google, e simili, che prendono l'input dell'utente e produrre output personalizzati. Quindi cerchiamo di iniziare a farlo ora. Transizione Let ora da solo usando HTML per il markup di contenuti statici come invece un meccanismo di consegna per il contenuto dinamico. E verso questo fine, cerchiamo di implementare il nostro motore di ricerca. Facciamo come segue. Ecco il tag form. L'attributo azione specifica che quando l'utente compila questo modulo con la loro tastiera, sarà presentato a questo URL qui. Quindi sono tipo di imbroglio. E 'intenzione di portarci un po' di più di una classe per implementare l'intero motore di ricerca, quindi ci basta fare il front-end, per così dire. Faremo la parte che permette all'utente di cercare, e noi sorta di punt a Google la parte più difficile di trovare i risultati della ricerca, ma, in particolare, ho intenzione di parlare al server web di Google utilizzando uno dei due metodi molto popolare. Una fase di arrivare, un altro, che saremo finalmente vedere, di essere posta, anche se ci sono altri che sono meno spesso utilizzati. Quindi, ottenere solo evoca l'idea di, voglio ottenere alcuni contenuti, ottenere alcuni risultati di ricerca. Questo, si può forse intuire cosa fa. Questo è un tipo di input, è, infatti, andando a guardare come un campo di testo, e il nome di tale ingresso, il nome della variabile che, per così dire, sarà q per la query per convenzione. E ancora, il tipo di questo ingresso non sarà una casella di controllo; non sarà un menu, ma sarà un campo di testo come indicato da questo attributo qui, e questa casella di testo, come un'interruzione di riga, è o c'è o non c'è. Quindi abbiamo un elemento vuoto con la barra all'interno di quel tag. Poi ho intenzione di mettere una interruzione di linea, e si può, forse, indovinate un po 'questo sta per fare. Questo è un altro tipo di input del form. Questo sta per essere utilizzato per l'invio del modulo. Quindi questo sarà il grosso pulsante che l'utente può fare clic per inviare il modulo, e l'etichetta su questo pulsante sarà 'CS50 ricerca.' Chiudi forma, corpo vicino, vicino HTML. Vediamo cosa abbiamo in forma di questa pagina web. Permettetemi quindi di andare al mio browser, lasciami andare, ancora, per host locale. Questo è ancora index.html, quindi se voglio vedere il file chiamato search0, Posso semplicemente fare / search0.html, immettere - e il primo dei miei errori. Cosa sta succedendo? Io chiaramente non hai il permesso per accedere a questo file, per qualche ragione. Ma questo perché, a differenza del lavoro che abbiamo fatto finora in C, in cui i programmi che scrivi si presume che siano runable da te, eseguibile da te, che non è proprio il caso sul web, per cui a volte si potrebbe desiderare di creare file su un server, ma non si desidera che il mondo intero di essere in grado di vederli. Piuttosto, si desidera che il mondo a vedere alcuni file ma non gli altri, solo per amor di privacy. Quindi è più di un opt-in base a quando si sta facendo le cose sul web. E adesso lasciatemi in realtà digitare ls qui, e vedere i file che ho, a meno di ricordare che se faccio ls-l per lungo tempo, Vado a prendere una lista più lunga che mi dà qualche dettaglio in più su questi file che ora sono, in realtà, per la prima volta importanti per noi. Si noti che in fondo a destra sono i nomi dei miei file, e poi il momento in cui essi sono stati da ultimo modificati o copiati. Questo numero: ecco che cosa? Ti ricordi? La dimensione in byte, quanto è grande il file è. Quindi, mi sembra di avere un qualche tipo di logo qui che è più grande di tutti gli altri file. Questo è quello che sono, questo è quello che sono e quello che sono dentro di gruppo Ma poi, qui a sinistra è un po 'criptico della sequenza, e abbiamo parlato, credo, brevemente in passato, ma questo ha a che fare con le autorizzazioni. E anche se questo è un po 'confuso, RW significa probabilmente lettura e scrittura. Così si scopre che questi trattini denotano diversi set di autorizzazioni per persone diverse. E il modello è, essenzialmente, come segue. Quando si vede una sequenza di trattini qui, hanno il seguente aspetto. C'è un trattino, poi ci sono altri tre trattini, poi c'è un altro tre, poi ci sono altri tre. Il primo è un trattino orizzontale o il suo annuncio per directory. Così che si è abbastanza facile. Se si tratta di una cartella, si dice d, altrimenti è un trattino. Ci sono un paio di altri casi, ma per ora ci interessa solo i file e le directory. Questi tre trattini - e ho inserito artificialmente gli spazi. Erano, ovviamente, non c'è quando li abbiamo visti poco fa. Queste sono le autorizzazioni del proprietario del file, e richiamare da un secondo che fa è stato lettura e scrittura. Quello era perché io, come la persona che ha creato questo file poco fa, Io, solo per impostazione predefinita, su un computer Linux, hanno la capacità di continuare a leggere e scrivere il file. Quindi il sistema operativo dà solo a me RW automaticamente. Quelli centrali appartengono al mio gruppo, quello degli studenti, che è una sorta di senso sull'apparecchio perché io sono l'unica persona che utilizza l'apparecchio. Quindi lasciatemi semplicemente agitare le mani a che per ora. Ma questi ultimi sono più importanti per il web. Si tratta di tutti gli altri nel mondo, e il fatto che ciò sia --- significa che nessun altro al mondo dispone di tutte le autorizzazioni a questo file. Chiaramente un problema, quindi ho bisogno di risolvere questo problema in qualche modo da dare al mondo ciò? Lettura e scrittura? Probabilmente è stupido, giusto? Io non voglio che nessuno sul Web per andare a visitare la mia pagina e in qualche modo modificare quel file, anche se in realtà non poteva con un file HTML, ma solo in linea di principio, probabilmente vogliono solo loro di essere in grado di leggerlo. Che cosa significa per leggerlo? Non vuol dire che stanno andando a cuore il codice HTML vero e proprio, ma il browser deve essere in grado di analizzare il linguaggio di markup, verso il basso, da sinistra a destra. Quindi qualcuno sul web deve essere in grado di leggere, così ho minimamente bisogno di dare r. Posso farlo in diversi modi, ma forse il più semplice è quello di eseguire questo comando qui. Chmod, change mode, quindi a + r in modo che tutti, tutti nel mondo + leggere, e poi il nome del file, search0.html. Ora, se faccio ls-l di nuovo, si noti che il file è stato modificato, e in effetti, ho acceso r per tutti. Ho anche acceso per il mio gruppo, ma va bene, perché se ho ripiegato su per tutti, il mio gruppo è un sottoinsieme di questo. Quindi va bene anche. Questo significa che solo il computer ha ora reso leggibile. Ora vorrei tornare al mio browser, fare clic su ricaricare. Ah-ah. Ora abbiamo CS50 ricerca. Ho ingrandito un po 'artificialmente - Motore di ricerca piuttosto orribile. Ma vediamo se funziona realmente. Primo luogo, vorrei fare un rapido controllo sanità mentale, mi permetta di controllare mouse e visualizzare il codice sorgente della pagina. Si noti che all'interno di Chrome che stiamo vedendo ora il codice HTML stesso che io stesso ho creato. Da non confondere qui, però. Non posso iniziare a cambiare il codice qui, perché il browser ha una visualizzazione in sola lettura di questo codice. Il browser ha appena chiesto dell'host locale per un file chiamato search0.html. Ora è pura coincidenza che l'apparecchio sembra essere sullo stesso computer come browser. Ho potuto solo, equivalentemente, hanno digitato www.facebook.com/search0.html, e se Facebook ha un file chiamato così, mi sarebbe poi vedere la loro HTML. E, naturalmente, non è possibile modificare il file che torna da Facebook, sia. Così ora siamo una sorta di sfocatura delle linee. L'apparecchio è sia un server, le pagine web, ma è anche un cliente, nel senso che sto usando un browser per parlare in realtà a quel server. Quindi cerchiamo di vedere se il mio motore di ricerca Google funziona. Lasciatemi andare avanti e cercare quick brown fox, entrare. E voilà, ora ho il mio motore di ricerca. Ma come funziona? Un po 'di un tratto, ma - e ora non si può vedere, appunto, la parte che è di interesse. Notate cosa succede. Si noti l'URL. Si scopre che tale metodo, chiamato ottenere, è super-semplice. Quando si specifica in una forma che si desidera 'ottenere' risultati da alcuni server, che cosa sta andando a fare è prendere quello che digitato nel modulo e metterlo nella URL. E 'intenzione di standardizzare come viene messo in l'URL come segue. Si noti che questo è l'URL che era il valore del mio attributo action. Ecco dove volevo il modulo per finire. Ma poi notare questo punto di domanda. Si tratta di una convenzione sul Web in base al quale per fornire l'input dell'utente a un sito Web, si aggiunge all'URL un punto interrogativo, e poi ci sono un sacco di coppie chiave-valore. Il nome di una chiave, altrimenti noto come parametro nel Web, allora si ha un segno di uguale, allora si ha il valore di tale parametro. Quindi è essenzialmente un nome di variabile e un valore variabile, ma i nomi di quelli delle variabili e dei valori provenienti da form HTML. Perché sono i plus lì, cosa ne pensi? Perché non è stato digitato + tra le mie parole. [Studente, incomprensibile] >> Si ', e' solo per la spaziatura. Le probabilità sono, ogni volta che hai visto un URL, non c'è mai gli eventuali spazi in esso, se non altro perché se non ci fosse, non si poteva davvero copia e incolla in una chat o in una e-mail, perché si spezzerebbe. Si desidera che il tutto sia una stringa di caratteri contigui. Così il browser è abbastanza intelligente per capire, uh-uh. Non basta mettere uno spazio lì. Permettetemi di codificare lo spazio in qualche modo standard. Una delle convenzioni per farlo è quello di avere il browser automaticamente messo un + in cui si sarebbe altrimenti uno spazio. Così ora, avviso di Google è stato un po 'user-friendly. Io certamente non ha creato questa pagina web, ma hanno precompilato proprio campo di testo con quello che, appunto, ho digitato trovi Supponiamo che io voglio cercare qualcosa di diverso, come un cane pigro. Posso solo digitare questo qui, ri-cerca. Si noti che l'URL cambia qui, a meno di notare poi che posso effettivamente la ricerca di tutto quello che voglio solo da capire come funzionano gli URL. Ho potuto fare gatto pigro, entrare, e notare ora mi sto molto pigro - dovremmo? Mi sento come dovremmo. Ho un gatto molto pigro. Bene. Questa è una delle cose più stupide che abbiamo fatto. Ma questo è un gatto pigro. In ogni caso, qual è la chiave qui da asporto? Ora siamo una sorta di gioco nel mondo di HTTP. HTML è proprio questo linguaggio di markup, tag di apertura, tag di chiusura, che indica al browser come visualizzare il contenuto di una pagina web. Ma quando si inizia la trasmissione dei dati attraverso la rete Internet tra browser web e server, è lì che questo protocollo noto come HyperText Transfer Protocol prende il sopravvento. Questo è il tipo di convenzione umana, quando Sam e ho stretto la mano il Lunedi, avviando una connessione e quindi chiudendo un, idea stessa connessione qui. Come sono i risultati di Google di tornare da me? Come il mio invio del modulo di andare a Google? Beh, richiama l'altro giorno che quello che sta realmente accadendo sotto la cappa quando si richiede una pagina web è, il vostro browser invia un po-criptico messaggio del tipo GET / HTTP/1.1 per la home page predefinita. Oppure, in questo caso, perché specificatamente richiesto precedentemente search0.html, questo allora sarebbe il po-criptico messaggio che il mio browser invia all'apparecchio. O, in questo caso di Google, ciò che è effettivamente inviato è una richiesta per / di ricerca, e quindi? q = gatto pigro, con un più lì. Quindi questo messaggio, che io, l'umano, non sto scrivendo, ma è stato inviato dal mio browser, questo è il modo HTTP accade. Questo è l'equivalente delle nostre mani che hanno scosso. Questa è la richiesta, e il server sta per inviare una risposta. Quindi, diamo uno sguardo a questo sotto la cappa. Come prima, siamo in grado di aprire questo campo speciale in un browser. Visualizza pagina, controllare gli elementi. Così sotto ispezionare elemento, notare che quello che è successo in Chrome, e IE e Firefox hanno meccanismi simili, abbiamo questi strumenti di sviluppo accessibili a noi. Le persone normali non utilizzare queste schede. Ma noi, oggi, sono interessati a quello che sta succedendo sotto il cofano a livello di rete. Quindi, se mi tiro su il livello di rete qui, lasciatemi andare avanti e ampliare questa finestra, aprire questa voce qui, e guardare le intestazioni. Che cosa succede quando richiedo un file da un server web è il mio browser invia un sacco di cose. E lasciate che visualizzare il codice sorgente. Così sotto intestazioni di richiesta, e questo è solo un po 'di Chrome mi mostra uscita di diagnosi, un po 'come un debugger di qualche tipo, notare che quello che ho messo in evidenza qui è proprio quello che Chrome sta inviando al server per richiedere un file chiamato search0.html. È significativo il server quello che pensa il suo nome è, grazie a questo campo due punti di accoglienza, poi c'è un po 'di roba abbastanza esoterico qui dentro, come qualcosa a che fare con le date e gli orari, qualcosa a che fare con le lingue che il browser capisce, ma le linee veramente importanti sono questi i primi due qui. Che cosa significa il server risponde con? Beh, se scorri verso il basso qui e visualizzare il codice sorgente di questa cosa, si noti che il server ha risposto con un messaggio un po 'criptico e, non 304 modificato. E 'un po' strano, in realtà vorrei provare a risolvere il problema. Vorrei tenere premuto MAIUSC e fare clic ricaricare qui per forzare il browser per rendere effettivamente richiesta per la prima volta. Allora lascia che lo zoom in, e vedremo ora che la risposta del server, perché ho tenuto turno, è 200 OK. Quindi, probabilmente non avete mai visto il numero 200 in numeri il contesto del Web, ma quello che hai visto a volte inaspettatamente da un server? 404, file not found, 403, proibito, 500, errore del server. Quindi ci sono questi codici numerici che il mondo utilizza nel Web per indicare gli errori, proprio come funzioni C può restituire errori e principale può restituire i codici di uscita. 200, però, si vede raramente perché significa che tutto va bene. E 304 è probabilmente mai vedere perché ciò che sta a significare? Che nulla ha - vediamo se riusciamo a simulare di nuovo - Oh, ora non hanno collaborato. 304 ha dichiarato non modificato, e allora perché è stato il server anche rispondere? Beh, per l'efficienza, un server web automaticamente per voi, se il file non è stato modificato, non ritrasmettere l'intero file HTML. Sarà solo dire al browser non è cambiato. Basta usare la copia che hai già. Quindi c'è questo concetto di caching sul Web per le prestazioni, in modo da non perdere tempo e larghezza di banda rifiuti download di file più e più volte inutilmente. Ma questa pagina web, ora, era super-semplice, e si limita a mostrarmi il codice HTML che è tornato. Facciamo effettivamente utilizzare la scheda di rete ora di fare una ricerca su Google come quick brown fox. Vorrei quindi fare clic su CS50 ricerca, e ora, notate in fondo qui un sacco di roba è tornato perché quando visito un sito web vero e proprio come Google.com, hanno immagini, hanno testo, hanno un linguaggio chiamato JavaScript lì. Così ogni riga della tabella qui sotto rappresenta qualcosa che Google sputare in risposta alla mia richiesta singola. Quello che importa, però, è il primo. E se vado alla ricerca, richiesta, fare clic qui visualizzare il codice sorgente, notare che, in effetti, il messaggio criptico che il mio navigatore ha inviato a Google era queste due righe qui, seguito da alcune informazioni arcano qui che ignoreremo per ora. Ma notate, anche, ciò che Chrome è piuttosto comodo con, è anche a me mostra la stringa di query che è stato inviato in Quindi, piuttosto che mostrare più questo, che è stato letteralmente mandato, se vederlo decodificato, Chrome, solo per scopi di debug, per gli sviluppatori come noi, è solo mi mostra un essere umano-friendly versione di - non è così che si scrive volpe, a quanto pare. Sto notando adesso - ma è che vi mostra quello che, a quanto pare, digitato. Nel frattempo, la risposta che è tornato dal server è di nuovo 200 OK. Ma inclusi in tale risposta, ovviamente, se effettivamente visualizzare HTML della pagina - spiacenti, questo è un tasto di scelta rapida po 'andato storto oggi. Mi occupero 'di questo più tardi. Quindi, se abbiamo effettivamente visualizzare il codice sorgente della pagina, che posso fare qui cliccando risposta, questo è ciò che è stato effettivamente sputato indietro, in aggiunta a quello criptico messaggio 200 OK dal server. Un enigmatico, ma dove sta tutto questo proviene da? Bene, facciamo un'altra cosa qui. Un altro po 'criptico-comando, ma questo tipo di pulito, in quanto ci rivela esattamente quello che sta succedendo sotto il cofano. Così sono tornato sul mio Mac qui, ho collegato un programma chiamato SSH, Secure Shell, a un altro server perché la maggior parte dei computer di Harvard bloccare il comando che stiamo per eseguire perché c'è questo comando su alcuni server chiamato traceroute che permette di tracciare il percorso tra i punti a e b, e finora abbiamo preso tutto per scontato che posso digitare Google.com e in qualche modo ottenere i dati dalla metà strada in tutto il paese o dall'altra parte del mondo. Con traceroute possiamo realmente immergersi in un po 'più profonda su come funziona Internet, e vedere cosa sta succedendo sotto il cofano. Quindi cerchiamo di andare avanti e arbitrariamente tracciare un percorso, per esempio, Stanford.edu, che è in tutto il paese, e premi invio. Questo comando può essere super-veloce o super-slow, ma quello che stiamo vedendo ora, linea per linea, è ogni uno dei passi del luppolo e tra noi e Palo Alto, o Stanford, dove hanno il loro server web. Che cosa fa ognuna di queste linee rappresentano più concretamente, però? Un pezzo di gergo da Internet? [Studente, incomprensibile] >> Che cos'è? [Studente, incomprensibile] >> Ah, quindi non ci sono i tempi, ma che cosa ogni riga - cosa intendo per hop? Beh, ci sono queste cose su Internet chiamato router. E router, come suggerisce il nome, le informazioni sul percorso dal punto a al punto b. Ma ci sono diversi punti oltre a e b. Ci sono c e d, e ed f tra la riga 1, che risulta essere l'indirizzo IP del mio computer, o il mio indirizzo numerico, che identifica in modo univoco il mio computer, e la fase 15, che è in realtà il server web sesto, a quanto pare, che sto dedurre da questo, o la versione 6 del server Web a Stanford. Ma che specie di pulito è, si può vedere il percorso che la mia 0 e 1 sono prendendo dal mio computer a Stanford. Quindi il punto 1 è l'indirizzo del mio computer. Ogni computer su Internet ha un identificatore univoco che assomiglia a questo. Numero.numero.numero.numero. Da qualche parte in questo campus, probabilmente nel centro scientifico, è un router gateway chiamato Core 2-te83, qualunque cosa significhi, quindi questo è uno dei router grandi Harvard fantasia che indirizza un sacco del loro traffico. Ecco un altro dei router di Harvard, questo è Border Gateway, significato di confine è probabilmente alla periferia della città universitaria da qualche parte. Poi c'è nox uno, riga 4, che è Crossroads del Nord, che è un grande ISP, Internet Service Provider, che posti come Harvard collegare fino a. Ma poi le cose si fanno un po 'interessante in linea 6. Dove sono i miei bit tutto ad un tratto? Kansas. Il mondo ha l'abitudine di usare codici aeroportuali in un sacco di queste cose, o almeno abbreviazioni per gli Stati o città, così sembra che, in soli 60 ms, un pacchetto di informazioni, 0 e 1 e 'dal mio computer portatile ottenuto fino a Kansas, e di nuovo, in 60 ms. Inoltre, dopo Kansas, hanno preso un tour attraverso Houston, probabilmente, come suggerisce il nome di questo server. Così come un server su Internet deve avere un indirizzo numerico, può anche, eventualmente, avere un indirizzo un po 'più human-friendly che l'uomo si avvicinò con. Ora, nel passaggio 8, non sappiamo di cosa si tratta. A volte solo tipo di router ti ignorano, e solo che non rispondere alle domande, in modo che va bene. Quello dopo il punto 8 è apparentemente dove? L.A. Si noti che in soli 78 ms, ciò che ci porta gli esseri umani come 6 + ore per fare fisicamente, prende i pacchetti di informazioni su Internet ms da 78 a viaggiare così lontano. Passo 10 è a Los Angeles come bene, e passo 11 sembra essere andato a nord, nei pressi di Stanford. Questo è il loro router di confine, o un router di confine. Un paio di passi di Stanford che ci stanno ignorando, e, infine, si raggiunge il server web in solo 87 ms. Ora, tutti questi numeri, per inciso, solo dirvi quanto tempo ci vuole per ottenere i dati da me a ciascuno di questi router, e non è cumulativo. Ciò che questo programma non è, invia prima un messaggio, in sostanza, il primo router. Poi uno al secondo router, poi una terza al router, misurare ogni volta. Quindi, in teoria, questi tempi saranno sempre più o almeno molto vicini l'uno all'altro, e, in effetti, quelle che sono proprio qui nel campus sono super-piccole. Non appena si iniziano ad andare in tutto il paese, si prende i dati un po 'di più per viaggiare, più vicino a 100 ms, prendere o lasciare. Ma andiamo nella direzione opposta ora. Che ne dici di Università di Cambridge nel Regno Unito? Meglio invece di eseguire traceroute www.cam per Cambridge, . Ac per accademico,. Uk, e premi invio qui. E 'stato dannatamente veloce. I miei dati letteralmente andato a Cambridge, in Inghilterra, in quella frazione di secondo di tempo. Quindi cerchiamo di vedere il percorso che ha preso. Harvard, Harvard, Harvard, Crossroads del Nord, che è un provider di servizi Internet, e quindi questo è Crossroads del Nord, e poi bam. Qual è tra i punti 6 e 7, router 6 e 7? L'Oceano Atlantico. E stiamo dedurre questo dal fatto che si va da 20 ms a 80 ms qui qui. Quindi, qualcosa ha preso 60 ms, più o meno, da superare. E questo era probabilmente un corpo d'acqua. Cosa succede dopo? Bene, eccoci qui a Londra, solo dopo 88 ms. More London, più Londra, non so dove sia, ma si suppone che sia al di fuori di Londra, Cambridge qui, e finalmente - letteralmente, Università di Cambridge . Something.net, e poi, finalmente, nella riga 16, il loro server web è apparentemente chiamato Scorpius sotto il cofano, anche se noi lo conosciamo come www. Tipo di mind-blowing, credo. La prima volta che ho fatto questo, totalmente saltato la mia mente. Purtroppo, Harvard blocca questo tipo di traffico, tipicamente, sulla rete. Così non si può farlo facilmente eccellente. Rendetevi conto, però, questo qui è possibile. Bene. Prendiamo la nostra pausa di 5 minuti qui. Torneremo e tuffarsi nel profondo. Così siamo tornati, e abbiamo tipo di lemme lemme in merito qualche indicazione differenti qui. Quindi cerchiamo di riassumere esattamente quello che sta succedendo qui. Abbiamo iniziato la conversazione a parlare di questo linguaggio chiamato HTML. Anche in questo caso, non è un linguaggio di programmazione. E 'solo un linguaggio di markup che è in gran parte di estetica e di strutturazione dei contenuti in forma di una pagina web. Ma HTML, quindi, ha bisogno di qualche tipo di meccanismo per viaggiare tra browser web e server. HTML quindi una sorta di corse in cima a questa lingua, o più propriamente, un protocollo, noto come HTTP. E HTTP, come abbiamo visto finora, è una specie di analoga a questa convenzione umana di stringere la mano. Quando un browser vuole per richiedere una pagina da un server, invia questa richiesta "get" dal browser al server, e poi il server risponde con un numero come 200, tutto è ok, così come l'HTML o un numero cattivo come 404, file non trovato. Ma nel frattempo, HTTP sé non è Internet, per sé. HTTP è solo un servizio, una funzionalità di Internet molto simile a G chat è un altro servizio, molto simile a e-mail è un altro servizio. Ci sono un sacco di cose che si possono fare su Internet. HTTP è solo una di quelle applicazioni. Così in cima - HTTP è in cima a qualcosa d'altro che non ha menzionato per nome, si potrebbe avere sentito parlare per nome, il protocollo TCP / IP. Così la storia che abbiamo appena detto che non è tutto come i dati viaggiano dal punto a al punto b. E in questo caso, abbiamo visto ad un livello molto basso router a router a router a router, come i dati sono effettivamente trasmessi. Ma lungo la strada, che sta per incontrare impedimenti vari. Oltre a questi router, ci sono cose chiamate firewall su Internet, e così i dati, come quella stavamo trasmettendo da me a Stanford, da me a Cambridge, viene inviato, a questo livello, qualcosa chiamato un indirizzo IP. Lo abbiamo visto poco fa, e un indirizzo IP è solo un indirizzo numerico del w.x.y.z forma, dove ognuno di questi è tra, prendere o lasciare, 0 e 255, anche se non riesco a utilizzare tutti quei numeri. Ma ognuno di questi segnaposto è un numero compreso tra 0 e 255. Quindi un indirizzo IP questi giorni è di 32 bit. Ora, che ci dà gli indirizzi IP quante possibili in tutto il mondo? Circa 4 miliardi, perché ogni volta contiamo in potenze di 2 tutta la strada fino a 32 di qualcosa, che di solito dà noi 4 miliardi di euro. Ecco, questo è un sacco di indirizzi IP, ma si potrebbe aver letto, oppure si può ora notare nella stampa popolare, una spinta verso una nuova versione di IP chiamato IPV6. In questo momento stiamo utilizzando la versione 4. In realtà non è stata una versione 5, stiamo solo saltando diritto a 6. Versione 6 userà 128 bit per gli indirizzi IP, che è dannatamente enorme. Non dobbiamo correre fuori per un bel po 'di tempo, ma abbiamo iniziato a corto di indirizzi IP versione 4, perché tutti noi le cose non solo come computer portatili e desktop, molti di noi hanno i telefoni, molti di noi hanno altri dispositivi come TiVo e simili che hanno indirizzi IP se stessi. Harvard stessa ha decine di migliaia di computer. Così il mondo è veramente a corto di indirizzi IP, almeno di questo modulo. Così nel corso dei prossimi anni, si sta andando a vedere gli indirizzi sui propri computer probabilmente lentamente cambiare come sempre più aziende e università iniziano a supportare la versione più recente. Ma un indirizzo IP non è sufficiente per un computer per richiedere dati a computer b. Poiché il computer B potrebbe essere un server, e un server, come ho già detto in precedenza, possono fare mazzi di cose. Può ospitare pagine web, può essere un server di posta, esso può essere un server Skype, può essere un server di chat G. Tutti questi diversi servizi che possono essere forniti su un server potrebbero tutti, fisicamente, sia sulla stessa macchina. Quindi, oltre a indirizzi IP, il mondo ha cose chiamate porte su Internet. Una porta è solo un numero, per cui vi è un numero univoco per HTTP. Il suo numero è 80. HTTP utilizza anche il numero 443, ma più in particolare, per HTTPS criptati. Ogni volta che si vede la s, per la sicurezza, che sta usando un numero diverso. Ci sono altri numeri, come 25, utilizzati per qualcosa chiamato SMTP, altrimenti noto come e-mail. C'è qualcosa che si chiama 22 per SSH, e c'è un sacco di altri porti là fuori. Ora, noi esseri umani raramente vedono questi numeri. Tuttavia, quando si digita un indirizzo come http://www.facebook.com, il browser è segretamente l'inserimento 80, perché si sta utilizzando il protocollo HTTP. Se, invece, di tipo HTTPS, è segretamente l'inserimento di 443. E siamo in grado di vedere questo tipo manualmente se mi tiro un brower e andare a http://www.facebook.com:80. Pertanto non citando esplicitamente solo il nome del sito web ma la porta che voglio parlare, e premi invio. Notate scompare, perché il browser assume, oh, 80, non ho nemmeno intenzione di dimostrare che fastidio a voi. Ma la ragione di questo è che se io in realtà volevo inviare una e-mail a qualcuno, Vorrei davvero essere il suo invio a loro sulla porta 25, che essere SMTP. Un po 'di una semplificazione eccessiva, ma alcuni di voi hanno amici che in realtà il lavoro su Facebook, e che, allo stesso modo, hanno i server che ricevono e-mail. Ogni volta che si invia una e-mail, gmail cosa sta facendo per voi o Outlook o qualsiasi altro programma che si utilizza, è una specie di segreto di inserire quel numero anche, 25, in questo caso. È questa combinazione di indirizzo IP e numero che identifica univocamente un computer su Internet e un servizio specifico su quel computer. Ora, naturalmente, la maggior parte di noi hanno probabilmente mai digitato manualmente un indirizzo IP. Forse avete in macchina, ma nel mondo reale, non così tanto. Perché non digitare gli indirizzi IP nel browser? E avrebbe funzionato, infatti, siamo in grado di vedere questo, lascia che ti mostri uno altro comando che dovrebbe funzionare quasi ovunque nel campus di Harvard su un Mac o un PC. C'è questo comando chiamato nslookup, ricerca del nome del server. Se alzo gli occhi www.cnn.com, si scopre che la CNN ha - oh, interessante. CNN ha iniziato ad usare Amazon Web Services. Si potrebbe sapere di cloud computing, uno di Amazon dei grandi giocatori in cloud computing. Quello che ho fatto è stato solo, ho detto, 'Dammi l'indirizzo del server web della CNN,' ma si scopre che il server Web della CNN è gestito da Amazon, Amazon Web Services, questo suggerisce. E l'indirizzo del server è questo qui. Quindi non sono sicuro se questo funziona, perché non usava Amazon. Ma proviamo questo: http://, l'indirizzo IP, immettere, e - sta andando a lavorare? Sì. Si sta andando a lavorare. Internet è super-lento oggi. Ma, in un attimo, si vedrà un po 'di notizia. Ecco fatto. Bank of America è stato citato in giudizio. Bene. Questo perché questo indirizzo IP sembra appena da sinonimo di www.cnn.com. Naturalmente, sarebbe di marketing orribile da dire, visitare il sito Web all'indirizzo 50.112.94.127. Non avresti mai ricordare. Quindi, anche in questi giorni si potrebbe ricordare le cose come 1-800-COLLECT o mnemonica il mondo si avvicinò con i numeri di telefono. Che, prima di telefoni cellulari, erano piuttosto difficile da ricordare fino a quando si può semplicemente digitare e non pensarci più. Così il Web, anche, ha questa convenzione di nomi e indirizzi IP, e ci sono queste cose là fuori chiamato server DNS, sistemi di dominio nome server, che traducono gli indirizzi IP in nomi e viceversa. Quindi questo è quello che sta succedendo sotto il cofano. Alla fine, abbiamo il protocollo TCP / IP, che è il protocollo di livello molto basso che, in realtà, ottiene solo 0 e di 1 su Internet, e lo fa mettendoli in una busta virtuale, se si vuole, e scrivere all'esterno della busta l'indirizzo IP di destinazione, così come il numero di porta numerica del servizio su tale destinazione che si vuole parlare. Nel frattempo, sulla busta c'è anche qualcosa di noto come l'indirizzo del mittente, che è il vostro indirizzo IP, in modo che quando la CNN ottiene un pacchetto di informazioni da voi, apre questa busta virtuale, vede che si desidera che la home page, sa dalla parte mittente di questa busta virtuale a chi inviare la schiena HTML. Quindi diamo un'occhiata a questo in dettaglio un po 'di più. Si tratta da una società denominata Ericson, da qualche anno fa. E hanno preso qualche libertà con come funziona Internet in realtà, ma dipinge un quadro molto più visiva che semplice gesso qui. Quindi vi do "Un po 'di Internet." [Narratore] Per la prima volta nella storia, le persone e le macchine lavorano insieme, realizzando un sogno. Una forza unificante che non conosce confini geografici. Senza distinzione di razza, credo o colore. Una nuova era in cui la comunicazione porta veramente le persone. Questo è L'alba della rete. Vuoi sapere come funziona? Clicca qui per iniziare il vostro viaggio in rete. Ora, esattamente quello che è successo quando hai cliccato su quel link? Hai iniziato un flusso di informazioni. Queste informazioni viaggiano in giù nella tua mailroom personale dove i pacchetti IP Sig. esso, etichetta, e lo invia sulla sua strada. Ogni pacchetto è limitato nelle sue dimensioni. La camera posta deve decidere come dividere le informazioni e come confezionarlo. Ora, il pacchetto richiede un'etichetta contenente informazioni importanti come l'indirizzo del mittente, l'indirizzo del destinatario, e il tipo di pacchetto è. Perché questo particolare pacchetto è di uscire su Internet, si ottiene anche un indirizzo per il server proxy, che ha una funzione speciale, come vedremo più avanti. Il pacchetto viene ora lanciato su rete locale, o LAN. La rete è utilizzata per collegare tutti i computer locali ' router, stampanti, eccetera, per lo scambio di informazioni tra le mura fisiche dell'edificio. La LAN è un posto abbastanza incontrollato, e, purtroppo, gli incidenti possono accadere. La strada della LAN è dotato di tutti i tipi di informazioni. Si tratta di pacchetti IP, Novell pacchetti, i pacchetti AppleTalk. Stanno andando contro il traffico, come al solito. Il router locale legge l'indirizzo e, se necessario, alza il pacchetto a un'altra rete. Ah, il router. Un simbolo di controllo in un mondo apparentemente disorganizzata. [Router borbottando e parlando a se stesso] [Narratore] Eccolo, sistematica, incurante, metodico, conservatore, a volte non del tutto a regime. Ma almeno è esatto, per la maggior parte. Come i pacchetti lasciano il router, si fanno strada in Internet aziendale e la testa per lo switch del router. Un po 'più efficiente del router, lo switch router gioca a tira e molla con i pacchetti IP, abilmente loro instradamento lungo il loro cammino. Un digitale 'mago del flipper,' se volete. [Interruttore Router parlando a se stesso] [Narratore] Come i pacchetti arrivano a destinazione, stanno raccolto dalla interfaccia di rete, pronto per essere inviato al livello successivo. In questo caso, il proxy. Il proxy è usato da molte aziende come una sorta di un uomo di mezza al fine di ridurre il carico sulla connessione Internet e per motivi di sicurezza, come pure. Come si può vedere, i pacchetti sono tutti di dimensioni diverse a seconda del loro contenuto. Il proxy si apre il pacchetto e cerca l'indirizzo Web o l'URL. A seconda se l'indirizzo è accettabile, il pacchetto viene inviato a Internet. Vi sono, tuttavia, alcuni indirizzi che non rispondono con l'approvazione della delega. Vale a dire, le linee guida aziendali o di gestione. Questi sono sommariamente trattati. Avremo niente di tutto questo. Per coloro che lo fanno, è di nuovo sulla strada. Il prossimo, il firewall. Il firewall aziendale serve a due scopi. Previene alcune cose piuttosto brutte da Internet di entrare in alla Intranet, e può anche impedire che le informazioni sensibili vengano inviati su Internet. Una volta attraverso il firewall, un router preleva il pacchetto e lo colloca su una strada molto più stretta, o larghezza di banda, come si dice. Ovviamente, la strada non è sufficientemente ampio per prenderli tutti. Ora, ci si potrebbe chiedere che cosa succede a tutti quei pacchetti che non ce la fanno lungo la strada. Beh, quando il signor IP non riceve un riconoscimento che un pacchetto è stato ricevuto in tempo utile, manda semplicemente un pacchetto sostitutivo. Siamo ora pronti per entrare nel mondo di Internet. Una ragnatela di reti interconnesse che abbracciano il nostro globo. Qui, router e switch stabilire collegamenti tra le reti. Ora, la Rete è un ambiente completamente diverso che troverete entro le mura protettive della propria LAN. Qui fuori, è il selvaggio West. Un sacco di spazio, un sacco di opportunità, un sacco di cose da esplorare e luoghi da visitare. Grazie ad un controllo molto poco e regolazione, nuove idee trovano terreno fertile per spingere la busta delle loro possibilità. Ma a causa di questa libertà, anche certi pericoli in agguato. Non saprai mai quando si incontra il ping temuta della morte, una versione speciale di un ping normale richiesta, che qualche idiota pensato per rovinare host ignari. Il percorso dei pacchetti può essere prendere via satellite, linee telefoniche, wireless o via cavo, anche transoceanica. Non prendere sempre le rotte più veloci o più breve possibile, ma ci arriveremo alla fine. Forse è per questo che a volte è chiamato "Il World Wide Wait." Ma quando tutto funziona senza problemi, è possibile aggirare il mondo cinque volte alla goccia di un cappello, letteralmente. E tutto al costo di una chiamata locale o meno. Verso la fine della nostra destinazione, troveremo un altro firewall. A seconda del punto di vista come un pacchetto di dati, il firewall potrebbe essere un baluardo di sicurezza o un avversario temuto. Tutto dipende da che parte stai e quali le vostre intenzioni sono. Il firewall è stato progettato per far entrare solo i pacchetti che soddisfano i criteri. Questo firewall è in funzione sulle porte 80 e 25. Tutti i tentativi di entrare attraverso altre porte sono chiuse per le imprese. La porta 25 è utilizzata per i pacchetti di posta, mentre la porta 80 è l'ingresso per i pacchetti da Internet al server web. All'interno del firewall, i pacchetti vengono proiettati in modo più approfondito. Alcuni pacchetti di farlo facilmente attraverso la dogana, mentre altri cercano solo un po 'dubbioso. Ora, l'ufficiale firewall non è facilmente ingannare, ad esempio quando questo ping pacchetto di morte cerca di travestirsi come un pacchetto ping normale. [Ufficiale Firewall parlando con i pacchetti] [Narratore] Per i pacchetti la fortuna di arrivare fin qui, il viaggio è quasi finita. E 'solo una line up sull'interfaccia da prendere fino al server web. Al giorno d'oggi, un server web può essere eseguito su molte cose, da un mainframe a una web cam al computer sulla scrivania. Perché non è il tuo frigorifero? Con la configurazione corretta, è possibile scoprire se si ha la stoffa per Chicken Cacciatore, o se dovete andare a fare shopping. Ricordate, questa è l'alba della rete. Quasi tutto è possibile. Uno per uno, i pacchetti vengono ricevuti, aperto, e disfatto. Le informazioni che contengono, cioè, la tua richiesta di informazioni, viene inviato all'applicazione server web. Pacchetto stesso è riciclato, pronto per essere usato di nuovo, e riempito con le informazioni richieste, affrontato, e inviato sulla via del ritorno a te. Indietro oltre il firewall, router, e attraverso l'Internet. Indietro attraverso il firewall aziendale e sulla vostra interfaccia, pronti a fornire il vostro browser web con le informazioni che hai richiesto. Cioè, questa pellicola. Soddisfatto con i loro sforzi, e confidando il mondo migliore, i nostri pacchetti di dati fidato cavalcare beatamente nel tramonto di un altro giorno, sapendo pienamente hanno servito i loro padroni bene. Ora, non è che un lieto fine? [Malan] Ok, adesso basta. Ci vediamo la prossima settimana. [CS50.TV]