>> Regulă.
Deci, hai sa patrundem in unele datele tehnice.
Sperăm, cu unele ce de o întrebare de softball.
HTTP, obiectivul de astăzi este pur și simplu ne dă un mental
Modelul pentru tipurile de aplicații
și a proiectelor suntem de gând să pună în aplicare.
Miercuri, vom tranziție mai în profunzime de lucruri, cum ar fi MVC
și în special a Laravel și în ORM
cu care vom vorbesc cu o bază de date.
Dar pentru ziua de azi, să setați etapă pentru acele conversatii.
HTTP este ceea ce?
Hypertext Transfer Protocol?
OK ce înseamnă asta?
Da.
[Inaudibil Observație]
OK. Aproape.
Este celălalt.
Nu HT - asta e HTML.
HTTP este cel care ce anume face?
>> Este că serviciul pe care ca transmite textul înapoi
și mai departe între servere?
>> Da, exact.
Este server.
Deci, într-adevăr e protocolul.
Este un set de convenții care sunt utilizate
pentru a transmite informații înapoi și mai departe între client și server.
Și că, de obicei, informații ia forma HTML,
Hypertext Markup Language care este tag-uri deschise și tag-uri apropiate.
Deci, dacă aveți unele client reprezentat aici în stânga
și unele servere reprezentat Aici la dreapta.
Săgețile merge înainte și înapoi
între ele reprezintă că HTTP limbă.
Și dacă familiar cu 50 de exemplu, anul trecut, sau un cuplu
de ani în urmă s-ar putea amintesc că l-am descris
ca un protocol în sensul că, atunci când mă întâlnesc cu cineva pentru prima oara,
S-ar putea extinde mâna mea și spune, salut și s-ar putea spune -
>> Buna ziua.
>> Buna ziua. Și acum, ca un fel de tranzacție între client
și server este complet.
Bine.
Deci, HTTP este doar o set de convenții.
Și printre aceste convenții este de a trimite anumite mesaje.
Deci, de exemplu, hai sa deschidem Chrome.
Și de Desigur, puteți cu siguranta folosi aproape orice browser,
dar Chrome tinde să fie probabil cele mai populare in aceste zile.
Deoarece are un întreg suită de instrumente construite inch
Să mergem mai departe și Inspect Element.
Lasă-mă să merg la fila Rețea și lasă-mă să merg la ceva
ca http://www.cs164.net și apăsați Enter
după primul lovit de înregistrare incase vom fi redirecționat.
Și acum vom pentru a vedea o grămadă
de rânduri din acest tabel.
Ce face fiecare dintre aceste rânduri reprezintă
, atunci când vizitați o pagină web?
Da?
[Inaudibil Observație]
Exact. Toate fișierele Tocmai am cerut sunt afișate
ca un rând individual masa mic acolo,
dar așteaptă fișiere.
Am cerut doar un singur un astfel de fișier, drept,
probabil index.html sau index.php.
Ele ar putea fi link-uri, corect?
Desigur, există imagine tag-uri în interiorul de acolo,
există tag-uri link-ul pentru CSS, există tag-uri script-ul
pentru JavaScript și o grămadă de alte tag-uri
care s-ar putea trage de fapt,
în fișiere suplimentare un fel de recursiv.
Și astfel încât este ceea ce vedem.
Dacă vom derula până acum la foarte de sus a acestora,
observați că vom vedea în primul rând un care este de fapt un fel de curios.
Se spune site-ul nostru sa mutat temporar,
codul de stare așa de a vorbi este de 302.
Există un alt unul similar, 301 care sa mutat definitiv.
Și dacă vă mutați temporar sau permanent ce înseamnă asta?
Ceea ce ar trebui să-ți ochii se caută în ordine
pentru a răspunde în cazul în care ne-am muta la?
Curentului și durata.
OK. Deci, ar putea cu siguranță deduce unde am ajuns.
Și se pare că am ajuns la canvas.harvard.edu / ceva
care este mult mai greu să-și amintească.
Dar mai tehnic, vreau pentru a diagnostica o problemă de redirecționare.
Vreau să înțeleg de unde sunt eu merge de la punctul A la punctul B
la un punct punct, punct, dot canvas.harvard.edu
în acest mai multe arcane interfață de antete.
Cum pot răspunde la o întrebare de formularul de unde am muta?
Locație. Bine.
Deci, dacă am derulați în jos aici la anteturile de răspuns,
observa că acestea sunt anteturile și lasă-mă să-l schimbe.
Aceasta este un fel de destul de versiune tipărită de la Chrome.
Să faceți clic pe Vizualizare sursă.
Acesta este textul crud care serverul de web Apache.
Și știu că de uitându-se la această linie aici.
Și Apache este doar liber și software-ul open-source.
Este, probabil, cel mai popular software-ul de server web acolo.
Acesta este rezultatul strângere de mână vine înapoi la mine.
Și dacă am un fel de uite la ceea ce a fost în interiorul a mâinii
sau bugetul virtual care reprezintă pachetele,
merge pe firul interior
din care este acestea mai multe linii de text.
Si pentru ca browsere se vorbi HTTP,
ele sunt preprogramate de către Google și Microsoft
și alte companii pentru a căuta pentru această linie.
Și când vede amplasare: ce face cu URL-ul
după două puncte probabil?
Se merge la ea.
Și putem vedea acest lucru în orice număr de moduri.
De fapt, un foarte util instrument special pe Linux
și Mac OS este dacă am deschis o fereastră terminal aici
și eu ghemuiesc și eu-I și apoi lipiți că URL-ul acolo.
Este un bun obicei de a folosi ghilimele
pentru că dacă vreodată au semne de întrebare
sau alte caractere ciudate, aveți posibilitatea de fapt un fel
a confunda linia de comandă.
Dar, dacă te citez URL-ul acolo, acum vom vedea exact toate
a anteturilor care au venit înapoi.
Și în acest caz, de fapt, Am făcut-o pe cea greșită.
Am făcut Canvas URL.
Să facem http://www.cs164.net.
Enter. Sunt exact aceleași antete.
Și dacă vreau să văd lângă ceea ce vine înapoi,
Eu pot face doar acest manual.
Deci, curl este doar un fel de rapid și instrument de diagnostic murdar aici,
curl-am și acum că URL-ul din nou și acestea sunt toate antetele
care acum vin înapoi de la canvas.harvard.edu.
Ce informații suplimentare sunt ei ne trimit?
Este un pic de cut-off.
Lasă-mă să se deplaseze peste asta.
Astfel, una dintre aceste linii este interesant.
Lungime astfel de conținut, care este cât de multe bytes au fost în interiorul
plicului virtuale care s-au întors.
Tip de conținut este HTML, ea ar putea fi ceva diferit
dacă este un PNG sau un GIF sau JPEG.
De fapt, în general vorbind, ceea ce se numește acest șir?
Există aceste unice șiruri în lume
care descriu unic diferite tipuri de date.
Acesta este un așa-numit Tip MIME, de tip M-I-M-E.
Deci, lumea a standardizat
care. png cred este "image / png".
Lumea a standardizat că în fișier HTML este un text / html.
Lumea a standardizat care un mp4, fișier de film este video/mp4.
Deci, acestea sunt jetoanele unice că browsere folosesc, de obicei,
pentru a stabili dacă pentru a juca ca un film, pentru a afișa
ca imagine, pentru a face l ca HTML sau altele asemenea.
Ce servere face - Instructure compania din spatele Canvas
aparent folosesc?
Deci Apache prea, așa că îl utilizați același instrument și putem vedea
că prin această linie aici.
Ca o paranteza, le-am de fapt, făcut ceva care este inteligent
că nu toate site-urile fac.
De foarte multe ori site-urile scuipa,
nu numai că sunt care rulează Apache, dar, de asemenea,
că acestea sunt difuzate Apache versiunea 2.1.3.
Dar acesti baieti au fost inteligent și dezactivat numărul de versiune.
De ce este asa de destept?
Da.
>> Poate că anumite Versiunea pot fi descoperite
și au ales vulnerabilități
[Inaudibil] evident.
>> Exact.
Este un potențial amenințare la adresa securității.
Dacă sunteți în esență, radiodifuziune din lume, hei,
nu mai avem această versiune.
Hei, nu mai avem această versiune.
Nu e așa de greu cu Google sau cu doar ondularea chiar de a scormoni
adrese IP în jurul aleatoare
și pentru a găsi oameni care rulează buggy software-ul și apoi să le atace
prin orice documentate înseamnă că există.
Acum, de ce este încă spune Apache?
Se poate argumenta, că este un fel de informații gratuit.
Ei bine, Apache face ușor de opri numărul de versiune
dar nu un fel lor de spate scenele branding în acest fel.
Și acest lucru este modul în care Google și alte companii știu ce servere web
oamenii sunt difuzate, deoarece acestea sunt doar a spune întreaga lume
de fiecare dată când le vizitați.
Deci, cookie-uri va reveni prea.
Dar este posibil să se amintească faptul că cookie-uri sunt numere fel de mari unice
care sunt de obicei place o ștampilă pe mână utilizator.
De un fișier mic sau o bucata de date plantate în browser-ul
să-și amintească cine este utilizatorul.
Stare 200 este bun.
X-Canvas-Meta, așa ceea ce este toate astea?
Ei bine, pe scurt, lume a permis, de asemenea, din lume
de a veni cu arbitrar, HTTP anteturile și dacă le prefixul
cu X, care tocmai înseamnă că sunt personalizate.
Și este un mod frumos, chiar în scop de diagnosticare
dacă sunt în curs de dezvoltare o aplicație web-based
și doriți să fie în măsură
pentru a vedea în spatele scenei vă știu ce o copie de scuipat de server end
acest răspuns sau de ce numărul de versiune este în curs de a alerga
pe acest server.
Sau ceea ce este intern de Adresa IP,
orice lucru în cazul în care s-ar putea Vrei privire intern
la ceva care este întâmplă, puteți scuipat
propria ta arbitrară Antete HTTP în acest fel.
Dar povestea a inceput cu deschiderea site-ul cursului.
Și am văzut toate aceste rânduri în fila Rețea.
Primul a fost de mai interes care ne redirecționat
la alta și apoi ne-am înapoi la acest răspuns aici.
Deci, unde este canvas.harvard.edu?
Să împinge un pic mai departe și de sortare
a urma aceste firimituri de pâine.
Canvas.harvard.edu este aparent deținute de Harvard.
Ei au creat acest sub-domeniu numit canvas.harvard.edu.
Cum mi-ar da seama unde
în canvas.harvard.edu lume viața?
Sau poate mai precis ceea ce este adresa IP?
Cum ne putem da seama de asta?
Da?
[Inaudibil Observație]
Absolut.
Deci, asta e de fapt să răspundă la câteva întrebări acolo.
Primul astfel de instrument simplu ar fi fi ceva numit nslookup
deși se numește alte lucruri.
Nameserver Căutare și Am posibilitatea să tastați în ceva
ca canvas.harvard.edu.
Enter. Și acest lucru se întâmplă pentru a da mă înapoi aparent o grămadă
de răspunsuri.
Dar haideți să vedem dacă nu se poate sens de acest lucru.
Deci, aparent,
canvas.harvard.edu este un nume canonic
pentru acest atroce lucru cauta,
Harvard-vanity.instructure.com.
Deci, ce se întâmplă aici?
În timp ce în același timp, dacă am ține de lectură,
Harvard-vanity.instructure.com are un nume canonic
de ceva chiar mai criptic,
Harvard-170 ceva -Ne-est-1.elb.amazon.aws.
Mai mult decât atât, acel lucru rezolvă
aparent la trei diferite adrese IP.
Deci, ceea ce în lume înseamnă toate acestea înseamnă?
Da?
[Inaudibil Observație]
OK. Bun. Și lasă-mă să tweak un lucru pe care mi-ai spus,
nu e chiar o Content Delivery Network.
Pentru că e de obicei, că înseamnă că este conținut static
și pentru că de cele mai multe site-ul este condus dinamic,
N-aș descrie aceasta ca o CDN
dar acesta este gazduit serverele Amazon.
Amazon ofera un serviciu numit Amazon Elastic Compute Cloud,
EC2 pentru scurt.
Și acestea sunt doar web servere care rulează adesea Apache
sau alte piese de software pe care le puteți închiria, în esență,
prin plata Amazon câțiva cenți sau câțiva dolari pe oră
și de fapt, tu a alerga dvs. cod pe serverele lor.
Și mijloacele prin care se face acest lucru este dau un criptic
caută nume de domeniu ca aceasta ceea ce duce la o
sau mai multe adrese IP ca aceste trei aici.
Și la rândul său, va pot crea aliasuri
care sunt mult mai om prietenos
pentru că totul altfel adresa Amazon greu de memorat.
Și în acest caz, Compania a decis Instructure
pentru a crea un ușor adresa mai memorabil,
Harvard-vanity.instructure.com
dar ar fi o fel atroce de lucru pentru noi
pentru a vizita site-uri web pentru curs.
Deci, de la Harvard, la rândul său a creat un alt alias care este mai mult
pur și simplu canvas.harvard.edu.
Și toate aceste tehnici sunt parghie ceva numit DNS,
Domain Name System.
Și atât timp cât sistemul administrator are acces
la Harvard sau de Instructure Servere DNS,
puteți crea aceste pseudonime.
Și dacă voi, pentru proiectele dvs.,
decide să cumpere un domeniu nume pentru 5 dolari,
10 de dolari sau orice altceva.
Și chiar să plătească pentru o gazda web
sau pur și simplu utiliza un disponibil gratuit web gazdă și cum doriți
pentru a nu trăi de fapt, la ceva random.com
dar la propriul domeniu numele pe care le-ați cumpărat pentru 5
sau 10 de dolari acestea sunt felul de detalii de configurare
că vom explora spre la sfârșitul semestrului.
În cazul în care și atunci când vine vorba de timp a navei ceva public
astfel încât să poată trăi la un URL-ul mai interesant.
Permiteți-mi să pauză pentru un moment Pentru că voi sunteți un fel
de inutil bunching sus acolo.
Vrei să penibil doar un fel de vină și să se așeze
în partea din spate sau în mijlocul?
Ar trebui să nu trage mai multa atentie?
Intră
Asta e, probabil mai mult incomod acolo.
[Pauză]
Bine.
OK. Bine ai venit.
Bine.
Deci, în cazul în care nu că acum ne lase?
Deci, într-un fel suntem și alte vom trece acest pod dacă
și atunci când vine momentul, în termeni
DNS cum ar fi de fapt configura toate astea.
Unele cum sau alte, această cerere HTTP,
această strângere de mână inițială ajunge la un server de la unul
din aceste adrese IP.
Pe acel server este ceva numit un server web.
Nici o surpriza.
Dar ceea ce cu adevărat punct de vedere tehnic este un server de web?
Ai un fel de ia fraza de la sine, dar ceea ce este ea?
Ce este un server de web?
Da?
[Inaudibil Observație]
OK. Deci, e doar un calculator cu memorie și intrări.
Știi că ar fi putut arăta
ca acea imagine mai devreme, chiar deși acesta este un pic
retro și mai mult de un un computer desktop sau turn.
Da, e doar un calculator.
Dar punct de vedere tehnic, un server de web Nu este un calculator propriu zis.
Noi, ca un fel de oameni au servere web lung confundat
și servere de e-mail ca dispozitive fizice.
Dar un server de web într-adevăr este o bucată de software.
Este o bucată de software care rulează pe un computer fizic.
Și, prin urmare, puteți avea o server de e-mail și un server de web
și un server de diagramă și orice număr de alte servere
sau mai corect servicii care rulează pe partea de sus
a unui anumit calculator și toate aceste servicii pot trăi
la aceeasi adresa IP prin urmare.
Deci, cum - dacă aveți Nu au mai multe servicii
sau servere care rulează pe același calculator, cum, atunci când zerouri
și cele vin în la ei prin intermediul internetului,
nu computerul știe dacă pentru a răspunde ca un server de e-mail
cu o pagină web, cu un chat?
Da.
[Inaudibil Observație]
Bun. Exact.
Deci, un server web ascultă pe ceea ce se numește un port.
Și dacă v-ați luat CS143 Crearea de rețele, s-ar putea ști
că aceste porturi se referă la protocoale cum ar fi TCP
care, probabil, la cel puțin auzit sau UDP.
Și aceste porturi sau numere de porturi sunt identificatori unici doar
care identifică un serviciu.
Deci, 80 este de web, este de 25 de e-mail, 23 este Telnet, 22 este SSH
și există zeci sau sute
de altele, deși există doar câteva cele foarte populare.
Și aceasta este o modalitate pentru o calculator cu o singură adresă IP
pentru a sorta de multiplex între diferite tipuri de cereri
și răspunde în consecință.
Deci, ce înseamnă acest lucru de fapt?
Deci, nu avem nevoie de un browser web.
Nu avem nevoie de ondulare a vorbesc de fapt la un server web.
Trebuie doar să înțelegem ce protocolul este și cum funcționează
și am făcut aluzie la acest lucru în urmă cu o clipă.
Telnet este un fel de programul de școală veche.
Înapoi în ziua mea, am folosit să-l folosească pentru a verifica e-mail
dar a fost complet nesigur.
Este doar un instrument prin care puteți trimite comenzi textuale
la un alt calculator.
Și din nou în a doua zi,
aceste comenzi textuale de multe ori inclus numele dvs. de utilizator
și parola cu nici un fel de criptare.
Dacă sunteți familiarizat cu SSH,
SSH este destul de mult Telnet dar cu criptare.
Deci, asta e un pic de o simplificare.
Dar eu pot pretinde ca un om cu o fereastră terminal
și acest program de școală veche Telnet pentru a fi un browser web.
Am posibilitatea să tastați în ceva cum ar fi telnet www.cs164.net
și, din păcate, dacă am doar a lovi Enter, incercand sa
dar nimic nu pare să se întâmple.
Și asta pentru că în mod implicit, lumea a decis ani în urmă
că portul implicit Telnet este 23
așa cum am făcut aluzie scurt la momentul în urmă.
Dar nu vreau Telnet pe cuvânt de spus.
Vreau să folosesc acest tip Telnet programului textuale să mă prefac
pentru a fi un browser web în Chrome și IE și alte browsere
în mod implicit au fost greu codificate de către Google și Microsoft
să nu mai vorbim de 23, dar la 80 sau poate 443
pentru site-uri web bazate pe SSL.
Și acum, observa încerc și eu conecta la serverul de web.
Mă duc acum, mergeți mai departe și spune ceva de genul salut.
Și se pare că acest lucru are tocmai sa mutat definitiv.
Am trimite anumite comenzi fals
și mă trimite înapoi la aceasta adresa de aici.
Deci, hai să facem de fapt, acest lucru un pic diferit.
Să vedem de fapt spune, GET/HTTP/1.1.
Deci, ce fac?
Aceasta este comanda.
Aceasta este un fel de mea strângere de mână, ca să spunem așa.
Ce este transmite slash probabil indica?
Directorul home.
Deci, directorul home aici înseamnă doar -
Ei bine, să-l numim rădăcină a site-ului.
Oricare ar fi dosarul implicit este, poate e index.html,
poate e index.php
și este, în esență HTTP/1.1 cea mai recentă versiune a HTTP.
Așa că am pretinde a fi o Browser-ul care este actual destul de
astfel încât să răspundă mi ca sper.
Și eu merg mai departe și apăsați Enter de două ori
deoarece modul în care merg lucrurile este că odată ce veți vedea o linie goală,
are un server de web, apoi răspunde.
Dar, din păcate aceasta este o solicitare rău.
Browser-ul a trimis o cerere
că acest server nu putea să înțeleagă.
Acum, acesta este un lot mai greu de diagnosticat.
Dar se pare că cs164.net este folosind Apache.
Și nu de mult ne putem da seama.
Dar, de asemenea, cu ajutorul ceva numit virtual hosting
în care s-ar putea să fie familiarizat.
Poate vag de la zile de CS50
sau dacă ați scris site-uri comerciale înainte,
ceea ce este o gazdă virtuală sau vhost?
Da.
[Inaudibil Observație]
OK. Exact.
Deci, există mai multe straturi de multiplexare aici ca să spunem așa.
Atunci când primiți o cerere la un server de
la o anumită adresă IP, minim nevoie de acest număr de port
pentru ca serverul știe acest lucru este un e-mail, este o cerere de web,
un mesaj de chat sau de ce nu.
Dar, dacă o dată îți dai seama afară, OK, portul 80.
Este evident cerere pentru o pagina web.
Dar nu ar fi frumos
dacă un singur server putut sprijini de fapt mai multe
site-uri web, food.com și bar.com și bass.com
astfel încât acestea nu au nevoie de un fizic server sau o singură bucată
de software pentru fiecare la naiba site-ul web din lume.
Deci lumea virtuală inventat hosting care vă permite
pentru a pune mai multe nume de domenii pe aceeași adresă IP.
Dar captura este conexiunea Tocmai am făcut folosind Telnet,
specificând portul 80 la www.cs164.net-am făcut nici o mențiune
a numelui de domeniu că am fost interesat
în dincolo de linia de comandă.
Și, din păcate, și acest lucru este un pic de non-evidente.
De îndată ce l-am lovit Enter,
în esență, Telnet îndrăzneală este de conversie
www.cs164.net pentru ma la o adresă IP
și apoi doar trimiterea prime meu GET cererea la server.
Astfel că ideea că a fost www.cs164.net complet pierdut,
dreapta.
Telnet nu este un browser de ce ar deranja trimiterea
Informații suplimentare la server?
Nu e așa de deștept.
Așa că am Browse avea pentru a reaminti server
care nu numai că nu vreau pentru a obține pagina de start,
De asemenea, vreau să specificați o serie de cs164.net.
Și antetul HTTP astfel de vorbesc este exact faptul că, Host:.
Acum, când am lovit Enter, am mă întorc în același redirecționarea
pe care l-am văzut în Chrome și că am a văzut în buclă, dar îndrăznesc să spun acum,
facem acest lucru doar nivel la fel de scăzut
cum este posibil tehnic
prin utilizarea acestor mai mult comenzi arcane.
Acum, de ce este aceasta utilă?
Deci, acest lucru nu este în mod normal mod de a vizita un site web
dar aproape orice moment, aveți Trebuie să diagnostica unele probleme
cu aplicația web-based care implică un server sau bucată
de software-ul sau nou creat gazdă virtuală
sau nou cumparat nume de domeniu.
Acestea sunt exact instrumentele că știți Tim și Rob și eu
și alții ar folosi doar pentru a încerca să figura
de ce se întâmplă greșit, corect?
Caz în punctul oricand te un nume de domeniu, aveți cumva
pentru a asocia un IP abordeze cu ea.
Și face acest lucru de obicei, prin intermediul interfață bazată pe web la GoDaddy
sau namecheap.com sau oriunde ați cumpărat numele de domeniu.
Deci, site-uri diferite au diferite instrumente
dar este, în esență, la o Tabel Excel cu coloane
pentru numele gazdă și coloanele
pentru adresele IP ceva de genul asta.
Dar există o problemă pentru că oricând se cere
pentru a asocia o adresă IP cu un nume de gazdă, vi se va cere
pentru TTL sale care se află de - ai luat 143.
L-am auzit pe aici.
Time To Live.
O TTL înseamnă cate secunde ar trebui să fie amintit această intrare
pentru și de amintit, Vreau să spun în cache.
Deci, pe scurt, De asemenea, în lumea DNS,
există această întreagă noțiune de caching.
Și acesta este un subiect vom explora în curs, precum și
la un nivel de software-ul prin care caching este de multe ori un adevărat
lucru bun.
Și ce înțelegem prin cache o pagină web, de exemplu,
sau un cache DNS înregistrare, o adresă IP?
Ce inseamna asta pentru cache?
Da.
[Inaudibil Observație]
Da, exact doar păstrarea în jurul unei copii, astfel încât
în cazul în care nu se schimbă sau sincer, chiar dacă nu se schimbă,
vă permite să nu observați timp de cel puțin de câteva secunde, poate chiar câteva
minute sau mai rău pentru o oră sau două.
Și într-un site web, s-ar putea au văzut acest lucru înainte,
uneori, daca esti cu ajutorul unui site web,
nu atât de mult cel mai mare site-uri web.
Ai tendinta de a obține acest detaliu drept cum ar fi Facebook
și Gmail și altele asemenea.
Dar dacă sunteți folosind un alt site-ul, care este folosind o mulțime
tehnologiilor vom folosi în clasa,
este de multe ori o decizie de design pentru a decide dacă sau nu
de cache ceva și, dacă da, cât de mult pentru a cache ceva.
Și dacă ai vreodată a fost la un site web
în cazul în care, de exemplu, te-a lovit pe Salvare și apoi vă reîncărcați pagina
și apoi tot ce scris nu este acolo.
Dar apoi poate te reîncărcați din nou și se pare.
Și, de fapt, am de fapt, văzut simptom chiar
cu Facebook o dată într-un timp
în cazul în care, dacă reîncărcați News Feed,
uneori, ceva este acolo, uneori dispare
și lucrurile nu într-adevăr par a fi consistent.
Și că este de multe ori rezultatul de doar cache probleme.
Pe de o cerere, esti lovind un singur server.
Pe de altă cerere, esti lovind un alt server
și cache lor, copii lor
de pagini web ar putea să nu fi sincronizate perfect
de câteva secunde sau minute
astfel încât veți vedea diferite state ale lumii.
Acelasi lucru se intampla si cu DNS.
Dacă decideți că detii food.com
și dacă ați fost hosting-l la GoDaddy,
un web destul de populară companie de găzduire, printre altele,
și vă decideți, nu, eu nu fac place foarte mult politica lor,
Nu-mi place cu adevărat lor prețurile, serviciile lor.
Vreau să se schimbe într-un alt web companie de găzduire toate împreună.
Ce faci?
Ei bine, te-ai schimba pur și simplu Adresa IP a food.com la punctul
la serverul altcuiva care ai de gând să înceapă bani la.
Ci pentru că întreaga DNS sistem de server foloseste cache,
ceea ce ar putea însemna acest pentru utilizatorii dvs.
dacă brusc vă deplasați site-ul dvs. de aici
la peste aici, diferit Adresa IP.
Bine.
Pentru un numar diferit de zero de minute sau secunde,
utilizatorii s-ar putea sfârși prin a merge aici, de exemplu, sau aici
pentru că sistemul lor de operare, browser-ul lor, ISP-ul lor,
router-ul lor de origine ar putea avea în cache vechea adresă IP
moment în care, de într-adevăr greu pentru a figura
exact ce se întâmplă greșit.
Deci, cum vă începeți să-și alunge în jos chiar și probleme de genul asta?
De doar în urma aceste pesmet
și înțelegere în cele din urmă ceea ce este HTTP
și ce înseamnă să trimită o cerere și ceea ce fac unelte
ca nslookup de fapt face pentru tine.
Și așa cum poți executa unele dintre aceste comenzi de nivel scăzut
și doar dau seama ce în fapt, se întâmplă greșit.
Deci știi pe cine să sun, care pentru a trimite de pe un e-mail la sau ceea ce
pentru a schimba pe un server propriu.
Și, ca o paranteza, Cred că cel mai mult
de aici au folosit CS50 Aparat, dacă a luat CS50.
Chiar dacă nu ai multe
de le-ați folosit, probabil, Apache dacă pe propriile Mac-uri
sau PC-uri sau cutii de Linux.
La fel ca o parte, dacă fac deschide o fereastră terminal aici
pe cele mai recente Appliance CS50 și am deveni root cu su sudu
și apoi mă duc în acest director
aici etc / httpd / conf.d /.
Aceasta este o comună loc de server de web -
pentru servere de web Apache pentru a stoca fișierele de configurare.
Conf.d înseamnă doar de configurare director cu o grămadă
de fișiere și dacă voi deschide cu vi de exemplu,
aparat 50, veți de fapt a se vedea cât de Virtual Hosting
în CS50 aparatul a fost de lucru tuturor celor timp.
Dacă a fost o rechemare în timp ce
pe care le puteți pune cel mai mult orice site-ul în interiorul
de directorul vhost dvs. în aparat.
Cum că, de fapt locul de muncă?
Ei bine observa, acest lucru este un pic Arcane și ai putea sorta
de grok-ți de drum prin intermediul acest lucru utilizând documentația.
Dar în esență probabil, linia de cea mai utilă
pentru a privi în sus - uita-te la asta.
Această linie de aici, în esență, spune serverul de web pentru a căuta
la John Harvard director vhost
pentru versiunea cu litere mici indiferent de numele serverului
sau nume de domeniu a fost de fapt vizitat.
Și nu vom merge neapărat în cu acest grad de tinkering.
Dar atunci când se utilizează Apache, vă sunt cele
care au în cele din urmă Controlul asupra acestor detalii.
OK. Deci, de acum înainte, putem acum ia HTTP pentru a acordat, corect?
Bine.
Deci, de ce nu facem aceasta, mai ales dacă unele
a te simti oarecum un captiv public, de ce nu mergem mai departe
și să ia o pauză de două minute,
când vom reveni, vom arunca cu capul un pic în MVC și vom
pe o notă pe - o problemă care vom rezolva apoi miercuri
cu un instrument numit Laravel.
Deci, haideți să aruncăm o câteva minute.