[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,
<! Doctype html, se minuscolo o maiuscolo,
ma questo è solo una sorta di standard che dice: ehi mondo, ecco che arriva un file HTML in versione 5.
>> La parte interessante comincia qui. Così <html, e poi ci sono stati due bambini
degli elementi HTML ultima volta.
Quali erano i due figli principali?
Testa e corpo, proprio come il ragazzo con il tatuaggio di un attimo fa.
Ci sono due parti della pagina web, la testa e il corpo,
e richiamo, quindi, che forse la pagina web più semplice potremmo fare simile a questa.
E ho rientrato solo per essere una sorta di pulito e ordinato con il mio codice,
ma quello che è veramente importante è che vi è una certa gerarchia a questo.
E qualsiasi tag che ho aperto ho chiuso e che c'è quindi questa simmetria
a tutto il codice che ho creato.
Così l'ultima volta abbiamo iniziato a scrivere le pagine web sul mio computer portatile.
Ho aperto modifica del testo, ho salvato il file come hello.html,
Poi ho trascinato il file sul mio browser, e voilà, avevo una pagina su Internet.
Ora, non è proprio il caso, avevo una pagina sul mio hard disk,
e io ero letteralmente l'unica persona al mondo che avrebbe visto quella pagina web in un browser.
>> Così oggi, si introduce un server web reale
e la nozione di servizio effettivamente contenuti su Internet
e come tutto questo inizia a combaciare.
Così si scopre che tutto questo tempo l'apparecchio CS50
hai avuto un server Web sul computer.
Abbiamo, in tutta onestà, usato solo per gedit, per Clang, per GDB e simili,
ma anche installato da noi per voi in macchina è un server web,
e che server web capita di essere libero, un open source,
uno di quelli più popolari al mondo, chiamato Apache.
Il suo nome più tecnico è HTTPd, d essendo per il demone qui,
che è un termine tecnico per un server.
Così installato nell'apparecchio CS50 è un server web, e che cosa vuol dire?
Beh, un server web è, concettualmente, alcuni server su Internet che serve contenuti web.
Quando è stato chiesto per un file, sputa il codice HTML che compone quel file, e voilà.
Vedete un po 'home page del sito web.
Ma è un server, più precisamente, un pezzo di software.
Essa non deve essere su una macchina fisica, deve solo essere un pezzo di esecuzione software.
Quindi l'apparecchio CS50, naturalmente, è un pezzo di software
anche se è una sorta di fingere di essere una macchina.
E 'finta di essere un elaboratore all'interno di un computer,
ma questo significa solo che l'apparecchio può certamente funzionare le cose come server web.
E 'in grado di eseguire i server di posta.
Potremmo eseguire un server di messaggistica istantanea all'interno dell'apparecchio se volevamo,
e in effetti, facciamo eseguire un altro tipo di server, noto come un server di database, mySQL.
Ma più su che la prossima settimana.
Questo significa che posso effettivamente visitare le pagine web
interno della macchina utilizzando un browser all'interno dell'apparecchio
o anche sul mio portatile, il mio Mac o il PC.
Che cosa significa questo? Si scopre che ogni volta che si sta eseguendo un computer Linux,
il suo soprannome è "host locale".
Non ha un nome di dominio, perché non abbiamo acquistato un nome di dominio
per qualcosa come l 'apparecchio, per cui il suo nome di default è host locale.
>> Ma, al fine di ottenere l'apparecchio per iniziare a pubblicare le pagine web,
dobbiamo creare loro per primi.
Allora, facciamo così. Lasciami andare in una finestra di terminale qui
e notare che io sono al mio tipico John Harvard prompt.
Lasciatemi andare avanti e digitare ls, e vedremo alcune cose familiari di questo semestre,
desktop, download, set e così via,
ma ora cominciamo rivolgere la nostra attenzione ad una coppia.
Su molti server web Linux c'è questa cartella chiamata html pubblica,
ma stiamo andando a saltare quella per ora e concentrarsi su questo, vhost.
Qualcuno sa che cosa è un vhost?
Solo gergo stupido per host virtuale,
e che cosa questo significa è che su un server tipico
si può effettivamente ospitare più siti web.
È possibile acquistare un nome di dominio come foo.com, ed è possibile ospitare su un server.
Ma si può anche acquistare bar.com e ospitare sul server stesso.
Il motivo è, i browser sono abbastanza intelligente per informare il server
quando un utente richiede un po 'di pagina web, nome del dominio che cosa l'utente vuole il homepage.
Così che cosa è bella di questo è non è necessario un server fisico
o uno CS50 apparecchio per ogni sito web si potrebbe desiderare di creare.
È possibile utilizzare lo stesso server e sviluppare un centinaio di diversi siti web.
E in effetti, se sei una persona che cerca di avviare un sito web,
sia per divertimento o per lavoro, in genere si va su Internet,
e si paga qualcuno dieci dollari al mese, un centinaio di dollari al mese
per ospitare il tuo sito web per voi.
E il modo in cui funziona è che fanno pagare altre persone
dieci dollari al mese o di un centinaio di dollari al mese
per ospitare siti web di altre persone sul loro stesso server.
Il motivo per cui può farlo è a causa di questa caratteristica chiamata bhosts,
ma più che quando arriva il momento per i progetti finali.
>> Per ora, limitiamoci a tuffarsi dentro. Così vhost cd, e se digito ls ora,
notare che c'è una cartella dentro chiamato host locale.
Questo perché, per impostazione predefinita, i dati dell'apparecchio
siete mai andando a correre un sito web su un apparecchio.
Questo non è davvero il mondo reale, non è un mondo reale server web.
Permettetemi quindi di andare in host locale, e adesso vedremo in là
una directory ultimo chiamato HTML.
Quindi è un po 'profonda, la gerarchia, ma se e quando
si decide di iniziare a sviluppare siti web nei prossimi mesi o anni n,
questo tipo di struttura di cartelle tende ad essere utile.
Ora andiamo in HTML come ho appena fatto,
digita ls, e non c'è nulla.
Così ora andiamo avanti e farlo. Vorrei aprire Chrome
all'interno dell'apparecchio, e lasciatemi andare a http://localhost.
Quindi letteralmente il nome per il mio apparecchio, entrare, e ho indice di /.
Questo non mi sta davvero mostrando qualcosa di interessante,
ma si scopre che quello che stiamo vedendo è che la cartella, HTML.
Non c'è niente all'interno di tale cartella in questo momento,
così, invece, che cosa ho intenzione di fare è creare prima un file.
Creare un file HTML come abbiamo fatto il Lunedi, ma questa volta è messo all'interno dell'apparecchio.
Per quelli di voi che stanno cercando di seguire ora con i computer portatili,
vorrei fare una parte che sarà coperto nella web-based pset,
ma per ottenere questo a lavorare per la prima volta,
si sta andando ad avere per eseguire questo comando: sudo service httpd start.
E questo, di nuovo, si ripeterà nel pset ultimo,
ma se stai giocando insieme a casa ora, il server web
è disattivata nel dell'apparecchio, e che è così che non fiaccare la RAM
e la memoria per 7 settimane fuori del semestre quando non ne abbiamo bisogno.
Quindi è necessario eseguire questo comando una volta, e si otterrà un output del genere.
Poi si dovrebbe essere in grado di suonare qui.
Ora torniamo in questa cartella.
Questa cartella è vuota, per cui vorrei iniziare a creare un file,
gedit hello.html.
>> Bene. Gedit è aperto, come di consueto. Lasciami fare doctype, html,
html, lasciami andare avanti di me stesso e iniziare a chiudere i miei tag in anticipo.
Ora ho la testa. Lasciatemi andare avanti e chiudere la testa,
vorrei ora fare il titolo della pagina, ciao mondo come l'ultima volta,
titolo vicino, ora mi permetta di fare un corpo.
In qui dirò ciao, mondo con alcune exclams
a precisare che si tratta di una stringa differente.
Corpo vicino, e ora lasciami andare avanti e salvare il file.
Vorrei tornare alla mia finestra di terminale, e se digito ls,
Dovrei, presumibilmente, vedere hello.html. E lo faccio.
Così ora torniamo al mio browser, fare clic su ricaricare,
e si può vedere siamo davvero all'interno di questa cartella HTML.
Non riesco a visualizzare una pagina web ancora, questo è Apache, il server web,
mi mostra il contenuto della lista di questa directory.
Proprio come Mac OS o Windows in genere fare da soli disco rigido locale.
Quindi, se voglio vedere questa pagina web, posso fare clic su questo collegamento po 'qui, hello.html,
e in effetti, questo è quello che mi aspettavo di vedere.
Ora, ancora una volta, questo non è un URL che qualcuno di voi può visitare in questo momento,
perché per voi, host locale, se si dispone di un computer portatile qui,
si fa riferimento all'istanza propria dell'apparecchio.
Questo è sulla mia macchina personale,
ma questo è una specie di stupido per me avere, per avere
un utente come me clicca su hello.html per vedere effettivamente il contenuto di questa pagina.
Si scopre che i server web come Apache ti permettono di avere un file di default per qualsiasi server web.
Notate che abbiamo hello.html.
Qual è il comando in Linux per rinominare un file?
>> MV, per mossa. Cerchiamo quindi di fare a me,
e fammi rinominare hello.html a index.html.
Permettetemi di digitare ls per confermare che è stata rinominata.
Ora, questo sta andando - se dovessi tornare a host locale,
notato ora che sto vedendo automaticamente la pagina web.
Questo è identico al mio in realtà facendo / index.html,
ma la cosa bella è che il web server è capire,
oh, se si dispone di un file che, dalle convenzioni umane, si chiama index.html,
lasciate che vi mostri l'utente che il file di default
piuttosto che un elenco di directory, che stupido non è affatto user-friendly.
In effetti, la maggior parte dei siti web visitati su Internet non si dispone di un elenco di file fare clic su,
si limitano a mostrare il contenuto. Ecco, questo è il modo in cui può farlo, index.html.
Quindi questo è tutto divertimento e buona, ma questa è una pagina web piuttosto semplice.
Lasciatemi andare avanti e aprire il file index.html nella mia vhosts,
host locali, directory html, e cerchiamo di aggiungere qualcosa di maggiore interesse.
Quindi c'è ciao mondo, lascia invece dire 'Questo è CS50, Harvard College. . . '
Così l'inizio della descrizione naturalmente catalogo di qualche tipo lì.
Ora, se io ricaricare, che dovrebbe vedere nella mia home page.
Va bene, e io vedo che, ma supponiamo che voglio elencare ora ancora un po 'il contenuto in questo file.
Potrei andare qui e dire, nessuno prerequisiti,
anche se alcuni di voi sono probabilmente come, 'Ha ha ha, prerequisiti.'
Ma - ufficialmente. Quindi ricaricare, e ora abbiamo la stranezza stessa che abbiamo visto l'ultima volta.
Ma perché? E 'stata una semplice correzione.
Perché questa pagina rotto?
[Studente, incomprensibile] >> 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 </ a,
dove ho chiuso solo il nome del tag.
Ora lasciatemi andare avanti e salvare il file, ricaricare la pagina web,
e ora, per impostazione predefinita, che sta per essere sottolineati in blu per me,
ma anzi, ora posso cliccare su questo e voilà. C'è l'immagine.
E non deve essere un immagine, ma potrebbe essere collegato
ad un altro sito casuale su Internet.
Ho potuto fare questo, per esempio, con CS50, quindi un ultimo esempio qui.
'Questo è CS50' potrebbe avere un senso di andare a, href =
http://www.cs50.net, citazione chiudere, ancora vicino.
Quindi, ora che è un URL ancora più breve, e questa volta non stiamo andando a un collegamento ad un'immagine.
Stiamo invece andando a collegarsi a un'altra pagina.
Ora, abbiamo un immagine qui.
Mi sento come si può fare un po 'meglio di un semplice collegamento a un'immagine.
Che cosa succede se si vuole realmente incarnare nella nostra pagina web?
>> Beh, quello che posso fare è, invece di link a questo grafico,
vorrei invece tagliare l'URL, e noi provvederemo a sbarazzarsi di quel collegamento ipertestuale e pulire questo.
E andremo qui e sbarazzarsi di questo.
Non abbiamo davvero bisogno di tutte queste frasi ora, quindi vorrei accorciare la pagina un po '.
E poi qui mi lasci andare avanti in un nuovo paragrafo,
dire che non desidera che il testo ora, io voglio l'immagine la cui origine sta per essere tale URL.
L'immagine, come una interruzione di linea, può esserci o non lo è.
Permettetemi quindi di chiudere immediatamente quel tag.
Lasciami andare avanti ora e chiudere il paragrafo che sono dentro,
e se tutto va bene ciao, mondo, se ricaricare ora,
Io, in effetti, vedere a destra nella mia pagina web un'immagine.
Così ora abbiamo un tag di immagine, un tag di ancoraggio e simili,
e per buona misura, fammi fare un'altra cosa che è spesso trascurato
sui siti web in questi giorni: Facciamo fornire un testo descrittivo per questa immagine
per le persone che si trovano su un dispositivo mobile
e pertanto potrebbero non essere in grado di scaricare questa immagine molto velocemente,
per le persone non vedenti e potrebbero non essere in grado di vedere l'immagine
ma potrebbero avere un lettore di schermo che può dire loro ciò che questa immagine è di.
E per fare ciò, vi è un altro attributo per il tag immagine
chiamato alt, per il testo alternativo.
E quello che posso fare qui è dire, 'Questo è un quick brown fox.'
Modo che anche se l'umano non può vedere l'immagine sullo schermo,
lui o lei può almeno sentire, come con qualche pezzo di software,
quello che c'è realmente sullo schermo.
>> Che non cambierà l'estetica della pagina,
ma è certamente buona pratica per gli utenti.
Va bene, lasciamo questa pagina web nella sua forma attuale,
ma vediamo se non possiamo ora introdurre
alcuni approcci migliori per la scrittura di queste pagine web,
alcune lezioni che stanno per servire noi e le nostre pagine diventano sempre più complesse.
Quello che non avete intenzione di fare nei prossime settimane
è a piedi attraverso tutti i tag HTML diverse decine che ci sono.
Molto simile a zero torna a settimana 0, probabilmente sarà sufficiente
per dare una panoramica generale di alcuni dei concetti,
un rapido giro di alcuni dei blocchi che si erano probabilmente in grado,
abbastanza comodamente, per navigare da soli, i pezzi del puzzle diversi.
E che sta per accadere di nuovo in HTML, molto probabilmente,
per cui ci sono ampie risorse sul Web che ti indicheremo a,
vari libri di testo, se si preferisce leggere un libro di testo,
che vi guiderà attraverso tutte le varie cose che si possono fare con HTML,
ma in realtà, si è visto finora in HTML la maggior parte dei concetti fondamentali.
Abbiamo il concetto di tag aperti, i tag chiusa.
Alcuni tag che sono entrambi aperti e chiusi
nel senso che sono vuote; ci dovrebbe essere nulla all'interno di essi
come un tag di immagine o di una interruzione di linea, che sono proprio lì.
Abbiamo anche cercato già la nozione di un attributo, come alt o fonte.
Si noti che queste parole tendono, per convenzione, di essere breve e concisa.
>> Noi non hanno il potere su ciò che queste cose si chiamano,
qualcun altro che ha inventato HTML si avvicinò con questi nomi.
Quindi, non resta che iniziare a conoscere o cercare, ogni volta che ne avete bisogno,
quali sono i nomi di questi tag e attributi.
Nel caso di questi attributi, attribuisce generalmente
modificare il comportamento di alcuni tag.
In questo caso, l'attributo fonte dice il tag immagine
ciò l'origine dell'immagine deve essere.
L'attributo href dice al tag di ancoraggio quello che dovrebbe essere effettivamente il collegamento a.
Ma in termini di struttura di una pagina web, anche se Facebook
e Google e lo sguardo come come un pasticcio completo
sotto la cappa a prima vista, se si inizia a leggere attraverso di essa
più metodicamente, tutti seguono questa base, struttura di base.
Ma siamo in grado di migliorare la stilizzazione di queste cose.
Quindi lasciami andare ad alcuni esempi che ho preparato in anticipo.
Lasciatemi andare avanti e copiarli da un'altra cartella qui
e metterli in questa directory.
In anticipo, quello che ho fatto è stato preparare alcuni file:
search0, ricerca1, SEARCH2 e search3 e 4.
Lasciatemi andare avanti e aprire il primo di questi file,
e vediamo se non possiamo cominciare a creare il nostro motore di ricerca.
Nella parte superiore di questo file, come di solito avviene in classe, solo un mucchio di commenti.
In HTML, però, il mezzo con cui si inizia un commento
è <- e poi si è all'interno di un commento, un multi-riga di commento.
Quando si è pronti a interrompere quel commento, si può fare ->.
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]