Va bene >>.
Quindi cerchiamo di tuffarci in qualche particolari tecnici.
Speriamo che con qualche cosa di una domanda softball.
HTTP, l'obiettivo di oggi è semplicemente non ci danno mentale
modello per i tipi di applicazioni
e progetti che stiamo andando ad attuare.
Mercoledì scorso, faremo transizione in modo più approfondito a cose come MVC
e in particolare Laravel e ORM
grazie al quale potremo parlare con un database.
Ma per oggi, cerchiamo di impostare il in scena per quelle conversazioni.
HTTP è che cosa?
Hypertext Transfer Protocol?
OK che cosa significa?
Già.
[Inaudible Osservazione]
OK. Chiudi.
È l'altra.
Non HT - che è che l'HTML.
HTTP è quella che fa che cosa esattamente?
>> E 'questo il servizio che come trasmette il testo indietro
e indietro tra i server?
>> Sì esattamente.
È il server.
Quindi, in realtà è il protocollo.
E 'l'insieme di convenzioni che vengono utilizzati
per trasmettere informazioni indietro e indietro tra client e server.
E che le informazioni di solito prende la forma di HTML,
Hypertext Markup Language, che è il tag di apertura e tag di chiusura.
Quindi, se avete qualche client rappresentata qui a sinistra
e alcuni server rappresentato qui a destra.
Le frecce avanti e indietro
tra di essi rappresentano che HTTP lingua.
E se familiarità con 50 per esempio l'anno scorso o una coppia
di anni fa, si potrebbe Ricordiamo che abbiamo descritto si
come protocollo nel senso che quando ho incontro qualcuno,
Potrei prolungare la mia mano e dici ciao e si potrebbe dire -
>> Ciao.
>> Ciao. E ora, quel genere di transazione tra client
e il server è completa.
Bene.
Così HTTP è solo un set di convenzioni.
E tra tali convenzioni è quella di inviare determinati messaggi.
Così, per esempio, apriamo Chrome.
E per il corso, è possibile certamente utilizzare più qualsiasi browser,
ma Chrome tende ad essere probabilmente il più popolare in questi giorni.
Perché ha un intero suite di strumenti costruito pollici
Andiamo avanti e Inspect Element.
Lasciatemi andare alla scheda di rete e lasciami andare a qualcosa
come http://www.cs164.net e premere Invio
dopo la prima colpito Record in caso otteniamo reindirizzato.
E ora stiamo andando per vedere un intero gruppo
di righe in questa tabella.
Che cosa fa ciascuno di queste righe rappresentano
quando si visita una pagina web?
Sì?
[Inaudible Osservazione]
Esattamente. Tutti i file Ho appena richieste sono riportati
come una singola riga in quel tavolo lì,
ma aspetta i file.
Ho chiesto solo un tale file, a destra,
presumibilmente index.html o index.php.
Potrebbero essere collegamenti, giusto?
Certo, c'è l'immagine tag all'interno di lì,
ci sono tag di collegamento per CSS, ci sono tag script
per Javascript e tutta una serie di altri tag
che potrebbe effettivamente tirare
in ulteriori file una sorta di modo ricorsivo.
Ed è quello che stiamo vedendo.
Se scorriamo fino adesso cima di questi,
Notiamo che abbiamo prima vediamo uno che in realtà è abbastanza curioso.
Dice il nostro sito spostato temporaneamente,
il codice di stato così a parlare è 302.
Ce n'è un altro simile, 301, che si è mosso in modo permanente.
E se si sposta temporaneamente o definitivamente che cosa significa?
Che cosa dovrebbero i tuoi occhi essere alla ricerca di onde
per rispondere a dove abbiamo spostiamo a?
La corrente e la lunghezza.
OK. Così potrebbe certamente dedurre dove abbiamo finito.
E a quanto pare ho finito a canvas.harvard.edu / qualcosa
che è molto più difficile da ricordare.
Ma, più tecnicamente, voglio per diagnosticare un problema di reindirizzamento.
Voglio capire dove sto andare dal punto A al punto B
ad un punto punto, dot, dot canvas.harvard.edu
in questo più arcano interfaccia di intestazioni.
Come faccio a rispondere a una domanda di il modulo per cui si mi muovo?
Posizione. Bene.
Quindi, se ho scorrere qui alle intestazioni di risposta,
notare che questi sono i intestazioni e mi permetta di cambiarlo.
Questa è una sorta di bella versione stampata di Chrome.
Facciamo clic su Visualizza sorgente.
Questo è il testo crudo il server web Apache.
E so che da guardando questa linea qui.
E Apache è appena libero e di software open-source.
E 'probabilmente il più popolare software del server web là fuori.
Questo è il risultato della stretta di mano tornando a me.
E se una sorta di guardo quello che era all'interno della mano
o la busta virtuale che rappresenta i pacchetti,
attraversando il filo interno
di che sono questi alcune righe di testo.
E poiché i browser si parlano HTTP,
essi sono preprogrammati da Google e Microsoft
e altre società a cercare questa linea.
E quando vede posizione: che cosa fa con l'URL
dopo i due punti presumibilmente?
Va ad esso.
E possiamo vedere questo in qualsiasi numero di modi.
Infatti, molto pratico strumento particolarmente su Linux
Mac OS è che se apro una finestra di terminale qui
e faccio arricciare e faccio-I e quindi incollare l'URL lì.
E 'una buona abitudine di utilizzare le virgolette
perché se mai avere punti interrogativi
o altri caratteri funky, si può effettivamente ordinamento
di confondere la linea di comando.
Ma se si cita l'URL lì, ora vedremo esattamente tutto
delle intestazioni che tornarono indietro.
E in questo caso, in realtà Ho fatto quella sbagliata.
Ho fatto l'URL Canvas.
Facciamo http://www.cs164.net.
Invio. Ci sono esattamente quelle stesse intestazioni.
E se voglio vedere prossimo ciò che ritorna,
Posso solo fare questo manualmente.
Così arricciatura è solo tipo di pratica e sporco strumento diagnostico qui,
curl-I e ora di nuovo l'URL e questi sono tutte le intestazioni
che ormai tornati da canvas.harvard.edu.
Quali informazioni aggiuntive ci stanno mandando?
E 'un po' di cut-off.
Permettetemi di spostare questo sopra.
Così una di queste linee è interessante.
Lunghezza in modo contenuto, che è quanti byte erano all'interno
della busta virtuale che è tornato.
Tipo di contenuto è HTML, potrebbe essere qualcosa di diverso
se è un PNG o una GIF o JPEG.
Infatti, in generale, che cosa è questa stringa chiamato?
Ci sono questi unici stringhe nel mondo
che descrivono in modo univoco diversi tipi di dati.
Questo è un cosiddetto Tipo MIME, di tipo M-I-M-E.
Così il mondo ha standardizzato
che. png credo è "image / png".
Il mondo ha standardizzato che nel file HTML è text / html.
Il mondo ha standardizzato che un mp4, filmato è video/mp4.
Quindi questi sono i gettoni unici che i browser di solito usano
per stabilire se giocare come un film, per visualizzarlo
come immagine, per rendere come HTML o simili.
Cosa server fa - Instructure la società dietro Canvas
a quanto pare usare?
Così Apache troppo, quindi stanno utilizzando lo stesso strumento e possiamo vedere
che attraverso questa linea qui.
Per inciso, hanno in realtà fatto qualcosa che è intelligente
che non tutti i siti web fanno.
Molto spesso i siti web sputare,
non solo che sono esecuzione di Apache ma anche
che stanno eseguendo Apache versione 2.1.3.
Ma questi ragazzi sono stati intelligenti e disabilitato il numero di versione.
Perché è così intelligente?
Già.
>> Forse perché alcuni versione potrebbe essere scoperto
e hanno particolare vulnerabilità
[Incomprensibile] ovvio.
>> Esattamente.
E 'un potenziale minaccia alla sicurezza.
Se sei essenzialmente trasmettendo il mondo, hey,
stiamo eseguendo questa versione.
Ehi, stiamo eseguendo questa versione.
Non è così duro con Google o semplicemente leggere anche per attizzare
indirizzi IP casuali intorno
e di trovare persone in esecuzione buggy software e poi attaccarli
con qualsiasi documentato significa che ci sono.
Ora, perché è ancora dicendo Apache?
Probabilmente, cioè una sorta di informazione gratuita.
Beh, Apache, è facilissimo disattivare il numero di versione
ma non la loro sorta di dietro le scene marchio in questo modo.
Ed è così che Google e gli altri aziende sanno quali server web
persone sono in esecuzione perché sono solo raccontare al mondo intero
ogni volta che li visita.
Così cookie verranno troppo indietro.
Ma si può ricordare che i cookie sono una sorta di grandi numeri unici
che sono in genere piace un timbro sulla mano dell'utente.
È un po 'di file o un pezzo di dati piantati nel browser
per ricordare chi è l'utente.
Stato 200 è buono.
X-tela-Meta, così cosa è tutto questo?
Beh, per farla breve, la mondo ha anche permesso il mondo
a venire con arbitraria, HTTP intestazioni e se li prefisso
con X, che appena significa che sono personalizzati.
Ed è un bel modo anche per scopi diagnostici
se si sta sviluppando una applicazione web-based
e si vuole essere in grado
di vedere dietro le quinte si sapere quali eseguire il server di sputo end
questo tipo di risposta o cosa viene eseguito il numero di versione
su questo server.
O qual è il suo interno Indirizzo IP,
qualsiasi cosa dove si potrebbe vuole qualche scorcio interno
a qualcosa che è in corso, si può sputare
la vostra propria arbitraria Intestazioni HTTP in quel modo.
Ma la storia ha avuto inizio con aprendo il sito del corso.
E abbiamo visto tutti questi righe della scheda di rete.
Il primo era di più interesse che ci reindirizzato
per il prossimo e poi abbiamo ottenuto tornare a questa risposta qui.
Allora, dove è canvas.harvard.edu?
Facciamo spingere un po ' ulteriormente e ordinamento
di seguire queste briciole di pane.
Canvas.harvard.edu è apparentemente di proprietà di Harvard.
Hanno creato questa sub-dominio chiamato canvas.harvard.edu.
Come faccio a capire dove
nel mondo canvas.harvard.edu vite?
O forse più specificamente qual è il suo indirizzo IP?
Come possiamo capirlo?
Sì?
[Inaudible Osservazione]
Assolutamente.
Ecco, questo è effettivamente rispondere alle un paio di domande lì.
Il primo di questi strumenti semplice sarebbe essere qualcosa che si chiama NSlookup
se si chiama altre cose.
Nameserver di ricerca e Posso digitare qualcosa
come canvas.harvard.edu.
Invio. E questo sta per dare mi riporta a quanto pare un intero gruppo
di risposte.
Ma vediamo se non è possibile dare un senso a questo.
Quindi a quanto pare,
canvas.harvard.edu è un nome canonico
per questo atroce guardando cosa,
harvard-vanity.instructure.com.
Allora, che cosa sta succedendo qui?
Mentre nel frattempo, se continuiamo a leggere,
harvard-vanity.instructure.com ha un nome canonico
di qualcosa di ancora più criptico,
harvard-170 qualcosa -Us-est-1.elb.amazon.aws.
Inoltre, che cosa si risolve
apparentemente a tre indirizzi IP diversi.
Quindi, ciò che nel mondo fa tutti questi media?
Sì?
[Inaudible Osservazione]
OK. Buona. E lasciatemi tweak una cosa che hai detto,
in realtà non è una Content Delivery Network.
Perche 'è in genere che significa che è contenuto statico
e perché la maggior parte sito web è guidato in modo dinamico,
Non vorrei descrivere questo come un CDN
ma è Amazon ospitati i server.
Amazon offre un servizio chiamato Amazon Elastic Compute Cloud,
EC2 in breve.
E questi sono solo web spesso i server con Apache
o altri pezzi di software che si possono affittare essenzialmente
pagando Amazon pochi centesimi o pochi dollari l'ora
e in realtà si esegue il codice sui loro server.
Ed i mezzi con cui essi fare questo è danno una criptica
guardando nome di dominio come questa che a sua volta deriva da una
o più indirizzi IP come questi tre qui.
E a sua volta, è può creare alias
che sono molto più umana amichevole
per che altrimenti totalmente memorabile indirizzo Amazon.
E in questo caso l' società Instructure deciso
per creare una leggera indirizzo più memorabile,
harvard-vanity.instructure.com
ma che sarebbe un sorta atroce cosa per noi
da visitare per i siti web del corso.
Così Harvard a sua volta creato un altro alias che è più
semplicemente canvas.harvard.edu.
E tutte queste tecniche sono sfruttando qualcosa chiamato DNS,
il Domain Name System.
E finché il sistema amministratore ha accesso
a Harvard o di Instructure di Server DNS,
è possibile creare questi alias.
E se voi ragazzi, per i vostri progetti,
decidere di acquistare un dominio nome per 5 dollari,
10 dollari o qualsiasi altra cosa.
E anche pagare per un host web
o semplicemente usare liberamente disponibile web host e si desidera
per non vivere realmente a qualcosa random.com
ma presso il proprio dominio il nome che hai comprato per 5
o 10 dollari, questi sono i tipi di dettagli di configurazione
che esploreremo verso la fine del semestre.
Se e quando arriva il momento per spedire qualcosa pubblicamente
in modo che possa vivono a un più interessante URL.
Lasciatemi pausa per un momento Perche 'voi ragazzi sono liste
di inutilmente raggrupparsi in là.
Vuoi goffamente solo tipo di entrare e sedersi
nella parte posteriore o nel mezzo?
Non dovrei disegnare attenzione a voi?
Vieni dentro
Questo è probabilmente più disagio lì.
[Pausa]
Bene.
OK. Benvenuti.
Bene.
Così dove che ora ci lascia?
Così in qualche modo noi siamo loro e attraverseremo il ponte se
e quando arriva il momento in termini
di DNS come si farebbe in realtà configurare tutto questo.
In qualche modo o l'altro, questa richiesta HTTP,
questo handshake iniziale raggiunge un server in un'altra
di tali indirizzi IP.
Su questo server è qualcosa chiamato un server web.
Nessuna sorpresa.
Ma ciò che veramente tecnicamente è un server web?
Si ordina di prendere la frase per scontato, ma che cos'è?
Che cosa è un server web?
Sì?
[Inaudible Osservazione]
OK. Quindi, è solo un computer con la memoria e ingressi.
Sai che potrebbe avere guardato
come quella foto in precedenza, anche anche se questo è un po '
retro e più di un computer desktop o tower.
Sì, è solo un computer.
Ma tecnicamente, un server web non è un computer per dire.
Noi, come una sorta di esseri umani abbiamo server web molto confusa
e server di posta come dispositivi fisici.
Ma un server web davvero è un pezzo di software.
E 'un pezzo di software in esecuzione su un computer fisico.
E quindi, si può avere un server di posta elettronica e un server web
e un server grafico e qualsiasi numero di altri server
o più propriamente servizi in esecuzione in cima
di un particolare computer e tutti questi servizi può vivere
Allo stesso indirizzo IP quindi.
Così, come - se avete non avere più servizi
o server in esecuzione sul stesso computer, come quando zeri
e quelli stanno arrivando in a loro via Internet,
fa il computer a sapere se a rispondere come un server di posta elettronica
con una pagina web, con una chat?
Già.
[Inaudible Osservazione]
Buona. Esattamente.
Così un server Web ascolta su ciò che è chiamato un porto.
E se hai preso CS143 Networking, si potrebbe sapere
che queste porte si riferiscono a protocolli come TCP
che probabilmente a almeno sentito parlare o UDP.
E queste porte o numeri di porta sono identificatori univoci solo
che identificano un servizio.
Quindi 80 è web, il 25 è l'email, 23 è Telnet, SSH 22 è
e ci sono decine o centinaia
di altre, anche se non c'è Pochi quelli più popolari.
E questo è un modo per computer con un indirizzo IP
per ordinare dei multiplex tra diversi tipi di richiesta
e rispondere di conseguenza.
Che cosa significa questo in realtà significa?
Quindi non abbiamo bisogno di un browser web.
Non abbiamo bisogno di curl per effettivamente parlare di un server web.
Dobbiamo solo capire che cosa il protocollo è e come funziona
e ho alluso a questo un momento fa.
Telnet è una sorta di programma vecchia scuola.
Ritorno nella mia giornata, abbiamo usato usarlo per controllare la posta elettronica
ma era completamente insicuro.
E 'solo uno strumento attraverso il quale è possibile inviare comandi testuali
un altro computer.
E back in the day,
questi comandi testuali spesso incluso il tuo nome utente
e la tua password con nessun tipo di crittografia.
Se si ha familiarità con SSH,
SSH è praticamente Telnet ma con la crittografia.
Ecco, questo è un po 'un semplificazione.
Ma posso fingere come umano con una finestra di terminale
e questo vecchio programma scuola Telnet per essere un browser web.
Posso digitare qualcosa come telnet www.cs164.net
e purtroppo se io basta premere Invio, il suo tentativo
ma nulla sembra accadere.
E questo perché per impostazione predefinita, il mondo ha deciso anni fa
che la porta di default di Telnet è 23
come ho brevemente accennato al momento fa.
Ma io non voglio Telnet per dire.
Voglio usare questo tipo Telnet del programma testuale per finta
per essere un browser web in Chrome e IE e altri browser
Per impostazione predefinita, sono stati duramente codificati da Google e Microsoft
per non parlare di 23, ma a 80 o forse 443
per i siti web basate su SSL.
E ora, noto provo e mi la connessione al server web.
Io vado ora, vado avanti e dire qualcosa di simile ciao.
E a quanto pare questo ha appena trasferita in modo permanente.
Mando qualche comando fasullo
e la sua mandarmi indietro a questo indirizzo qui.
Quindi, cerchiamo di fare in realtà questo un po 'diverso.
Andiamo a vedere in realtà dire, GET/HTTP/1.1.
Così che cosa sto facendo?
Questo è il comando.
Questa è una sorta di mio stretta di mano, per così dire.
Qual è l'attaccante tagliare probabilmente indicare?
La directory home.
Così la home directory qui significa solo -
ben chiamiamola così il radice del sito.
Qualunque sia il file predefinito si, forse è index.html,
forse è index.php
e HTTP/1.1 è essenzialmente l'ultima versione di HTTP.
Così sto fingendo di essere un il browser che è in corso piuttosto
in modo che risponda mi come spero.
E vado avanti e premere Invio due volte
perché il modo in cui funzionano le cose è che una volta si vede una riga vuota,
fa un web server poi risponde.
Ma purtroppo questa è una cattiva richiesta.
Il browser ha inviato una richiesta
che questo server non riusciva a capire.
Ora, questo è molto più difficile da diagnosticare.
Ma si scopre che cs164.net sta usando Apache.
E non molto che possiamo capire.
Ma la sua anche utilizzando qualcosa chiamato hosting virtuale
in cui si potrebbe avere familiarità.
Forse vagamente da le vostre giornate CS50
o se hai scritto siti web commerciali prima,
che cosa è un host virtuale o vhost?
Già.
[Inaudible Osservazione]
OK. Esattamente.
Quindi c'è più strati di multiplexing qui per così dire.
Quando si riceve una richiesta di ad alcuni server
ad un particolare indirizzo IP, è minimamente bisogno che il numero di porta
in modo che il server sa questo è una e-mail, si tratta di una richiesta web,
un messaggio di chat o cosa no.
Ma se una volta a capire out, OK, la sua porta 80.
E 'ovviamente richiesta per una pagina web.
Ma non sarebbe bello
se un singolo server potrebbe effettivamente supportare più
siti web, food.com e bar.com e bass.com
quindi non hanno bisogno fisico server o un unico pezzo
di software per ogni maledetto sito web nel mondo.
Così il mondo virtuale inventato hosting che consente
mettere più nomi di dominio sullo stesso indirizzo IP.
Ma il problema è la connessione Ho appena fatto utilizzando Telnet,
specificando la porta 80 per www.cs164.net ho fatto alcuna menzione
del nome a dominio che ero interessato
in oltre la linea di comando.
E purtroppo e questo è un po 'non ovvio.
Appena mi ha colpito Enter,
essenzialmente Telnet presuntuosamente è la conversione
www.cs164.net per me a un indirizzo IP
e poi semplicemente inviando la mia prima GET richiesta al server.
Cosicché nozione che era www.cs164.net completamente perduto,
destra.
Telnet non è un browser perché dovrebbe preoccuparsi di invio
ulteriori informazioni al server?
Non è che intelligente.
Così ho browse ho per ricordare il server
che non solo voglio per ottenere la home page,
Voglio anche precisare una serie di cs164.net.
E l'intestazione HTTP in modo da parlare è esattamente questo, Host:.
Ora, quando ho colpito Enter, mi tornare lo stesso redirect
che ho visto in Chrome e che io visto a ricciolo, ma oserei dire adesso,
stiamo facendo questo solo quanto di basso livello
come è tecnicamente possibile
utilizzando questi più comandi arcani.
Ora, perché è utile?
Quindi, questo non è il normale modo di visitare un sito web
ma quasi ogni volta, è devono diagnosticare qualche problema
con l'applicazione web-based che coinvolge un server o un pezzo
di software o di nuova host virtuale creato
o appena acquistato il nome di dominio.
Questi sono esattamente gli strumenti che si conosce Tim e Rob ed io
e altri userebbero solo per cercare di capire
cosa sta andando male, giusto?
Caso in questione ogni volta che si ottiene un nome di dominio, in qualche modo ha
associare un IP affrontare con esso.
E fate questo in genere tramite interfaccia web-based a GoDaddy
o namecheap.com o dovunque hai comprato il nome del dominio.
Siti web in modo diverso avere diversi strumenti
ma è sostanzialmente a un Tabella Excel con colonne
per i nomi host e le colonne
per gli indirizzi IP qualcosa di simile.
Ma c'è un problema perché ogni volta che viene chiesto
per associare un indirizzo IP con un nome host, viene chiesto
per il suo TTL che sta per - hai preso 143.
Ho sentito che qui.
Time To Live.
Un TTL indica quanti secondi dovrebbe essere ricordato questa voce
e da ricordare, Voglio dire cache.
Quindi, per farla breve, anche all'interno del mondo DNS,
c'è tutto questo concetto di caching.
E questo è un argomento faremo esplorare nel corso così
a livello software quale caching è spesso una realtà
buona cosa.
E che cosa intendiamo per la memorizzazione nella cache di una pagina web, per esempio
o caching un DNS registrazione, un indirizzo IP?
Che cosa significa per cache?
Già.
[Inaudible Osservazione]
Sì, esattamente solo mantenendo intorno una copia in modo che
se non cambia o francamente anche se non cambia,
non lascia notare per almeno pochi secondi, forse anche un paio di
minuti o peggio per un'ora o due.
E in un sito web, si potrebbe hanno visto questo prima,
a volte se sei utilizzando un sito web,
non tanto più grande siti web.
Si tende ad ottenere questo Dettaglio di destra come Facebook
e Gmail e simili.
Ma se si sta utilizzando un altro sito web che utilizza un sacco
delle tecnologie useremo in classe,
è spesso una decisione di progettazione di decidere se o meno
memorizzare nella cache qualcosa e se così, quanto tempo per memorizzare nella cache qualcosa.
E se hai mai stato a un sito web
dove per esempio si preme Salva e poi si ricarica la pagina
e poi quello che postato non c'è.
Ma allora forse si ricaricare di nuovo e sembra.
E infatti, in realtà ho visto il sintomo anche
Facebook una volta ogni tanto
dove se si ricarica il vostro News Feed,
a volte qualcosa c'è, a volte scompare
e le cose non fanno davvero sembra coerente.
E questo è spesso il risultato di solo caching problemi.
Su una richiesta, sei colpendo un server.
In un'altra richiesta, sei colpisce un altro server
e loro cache, le loro copie
di pagine web potrebbe non essere perfettamente sincronizzati
di pochi secondi o minuti
in modo da vedere diverso stati del mondo.
Stessa cosa accade con DNS.
Se si decide che si possiede food.com
e se siete stati hosting a GoDaddy,
un sito abbastanza popolare società di hosting, tra gli altri
e si decide, no, io non lo faccio piace molto la loro politica,
Non mi piace molto la loro i prezzi, i loro servizi.
Voglio cambiare ad un altro sito società di hosting tutti insieme.
Cosa fai?
Beh, devi semplicemente cambiare il Indirizzo IP del food.com al punto
sul server di qualcun altro che hai intenzione di cominciare i soldi per.
Ma perché tutta DNS sistema server utilizza cache,
che cosa potrebbe significare questo per gli utenti
se all'improvviso si sposta il vostro sito web da qui
di qui, diverso Indirizzo IP.
Bene.
Per un certo numero diverso da zero di minuti o secondi,
gli utenti potrebbero finire per andare qui per esempio, o qui
perché il loro sistema operativo, il browser, il loro ISP,
loro router di casa potrebbe avere cache il vecchio indirizzo IP
a quel punto, la sua davvero difficile da figura
esattamente che cosa sta andando male.
Così come si inizia a inseguire giù anche questioni come quella?
Da solo seguendo queste briciole di pane
e comprensione in ultima analisi, ciò che è HTTP
e cosa significa per inviare una richiesta e che cosa fare strumenti
come NSlookup realtà fare per voi.
E così come si può eseguire qualche di questi comandi di basso livello
e proprio capire cosa in realtà sta andando male.
Così sapete chi chiamare, che per mandare una mail a o cosa
cambiare sul proprio server.
E per inciso, Sto indovinando più
di voi hanno utilizzato il CS50 Appliance, se avete fatto prendere CS50.
Anche se non avete fatto molti
di voi hanno probabilmente utilizzato Apache se sul proprio Mac
o PC o scatole Linux.
Proprio come un a parte, se faccio aprite una finestra di terminale qui
sulle ultime Appliance CS50 Io e diventare root con Sudu su
e poi vado in questa directory
qui etc / httpd / conf.d /.
Questo è un comune luogo per il server web -
per i server web Apache per memorizzare loro file di configurazione.
Conf.d significa solo configurazione directory con un sacco
di file e se aprirò con vi, per esempio,
appliance 50, ci troveremo a vedere come hosting virtuale
nel CS50 apparecchio è stato lavorare tutti coloro tempo.
Se è stato un richiamo, mentre
che si può mettere più qualsiasi sito web all'interno
della directory del vostro vhost nel Appliance.
Come si fa che funzionano davvero?
Beh notare, questo è un po ' arcano e si poteva ordinare
di Grok il vostro senso attraverso questo utilizzando la documentazione.
Ma essenzialmente la probabilmente la linea più utile
per cercare - guardare è questo.
Questa linea qui essenzialmente racconta il server web a guardare
in John Harvard di Elenco vhost
per la versione minuscola di qualunque nome del server
o il nome a dominio è stato effettivamente visitato.
E non necessariamente andare in con questo grado di bricolage.
Ma quando si utilizza Apache, siete voi
che alla fine hanno Il controllo su questi dettagli.
OK. Quindi, d'ora in poi, possiamo ora prendere HTTP per scontato, giusto?
Bene.
Allora perché non facciamo questo, soprattutto se alcuni
di sentire un po 'un prigioniero pubblico, perché non andiamo avanti
e prendere una pausa di due minuti,
quando torneremo ci immergeremo un po 'in MVC e faremo
su una nota - di un problema che ci sarà poi risolvere il Mercoledì
con uno strumento chiamato Laravel.
Quindi, diamo uno paio di minuti.