>> HANNAH Blumberg: Hæ allir.
Við erum að fara að byrja bara nokkrar mínútur snemma
þar sem við höfum allt fullt efnis að komast í gegnum.
Ég er Hannah.
Ég er TF.
Maria er að fara að ganga til liðs okkur bara nokkrar mínútur.
Hún kennir kafla rétt áður.
Ég kenni kafla rétt eftir, þannig að við erum að fara
að halda því til klukkutíma og hálfan.
>> Svo eins og þú munt sjá hér, höfum við alveg nokkrar efni sem við þurfum að komast í gegnum,
svo við munum vera að fara smá hratt.
En ef á hverjum stað við að segja eitthvað of fljótt eða þú skilur ekki,
ekki hika við að trufla með spurningum.
Við viljum vera fær um að gera þetta endurskoða setu sem gagnlegt til ykkar allra
og hægt er.
Awesome.
>> Svo skulum hoppa rétt með Sum efni sem við í raun
mjög, mjög stuttlega fjallað fyrir quiz 0 í quiz 0 fundur.
Svo að byrja með tengd listum.
Svo bara vera viss um að þú hafa sumir grunnþekkingu um tengd listum
og eru vel að gera sumir af the undirstöðu rekstur.
>> Svo bara til að skoða, tengt Listarnir eru betri en fylki
vegna þess að þeir geta vaxið mjög virk.
Þannig að við höfum það mikið forskot.
Við höfum séð þá notað í kjötkássa matskeið þegar við
veit ekki nákvæmlega hversu margir það sem við erum að fara til að vilja
til að setja inn gögn uppbygging okkar.
Því miður höfum við stykki af tengda listanum allan minni,
þannig að við munum ekki endilega að vera fær um að gera stöðugt tíma aðgang
á hvaða þáttur í tengda listanum.
Til þess að finna a Einkum þáttur, við
að árétta allan leið frá upphafi.
Svo hafa í huga að flest helstu aðgerðir eru omega af 1.
Svo innskotið er bara að fara að taka 1.
Eyða er að fara að taka n síðan vér að fara að finna það úr listanum.
Og leita gæti tekið, í versta falli, n.
Við getum ekki gert eitthvað eins og Tvíundarleit á tengda listanum
þar sem við getum ekki bara handahófi hoppa til miðju.
Cool.
Awesome.
>> A lítill hluti af stafla.
Þetta, aftur, kom upp á spurningakeppni 0, svo þú ætti að vera frábær ánægð með það.
En fyrir stafla, biðjum við þig að muna stafla af stæði.
Og það er að fara að vera fyrst í, endast út.
Þannig að við stafla hlutum upp í stafla, og þá
ef við erum að reyna að taka eitthvað off-- sem við köllum pabbi burt
sem stack-- komum burt the toppur.
Og ef við viljum setja eitthvað í stafla, við köllum það að ýta.
Svo það er alltaf að fara að vera að alast upp frá botni eins og stafla bakka.
Awesome.
>> Við höfum séð stafla framkvæmda bæði tengd listum og fylki.
Ef þú ert að innleiða með fylki, þú vilt
að ganga úr skugga um að halda utan um bæði stærð og getu.
Svo stærð er að fara að vera núverandi Fjöldi hluta í stafla þinn,
en getu er heildarfjöldi af hlutum sem þú getur geymt í stafla þinn.
Cool.
>> Mjög álíka, höfum við biðraðir.
Í þessu tilviki, í stað þess að hugsa um stafla af stæði, hugsa um línu.
Þetta er að fara að vera fyrst inn, fyrst út.
Svo ef þú ert að undirbúa fyrir eitthvað í búð,
við vonum að sá fyrsti í lína er að fara til að fá aðstoð fyrst.
>> Í stað þess að segja ýta og skjóta eins og við gerum fyrir mánudaginn,
við segjum bara enqueue og dequeue.
Og aftur, ef þú ert innleiða þetta með fjölda,
við þurfum að halda utan sem er ekki aðeins á stærð
og getu, en einnig yfirmaður, sem er að fara að vera framan á biðröð okkar.
Cool.
Einhverjar spurningar um eitthvað af því?
Awesome.
Flytja rétt eftir.
>> OK, kjötkássa matskeið.
Hér er þar sem það byrjar að fá mjög áhugavert.
Svo er kjötkássa borð eitt framkvæmd á tengin array.
Svo í rauninni hvað gerðist er að við höfum allt þetta inntak,
og við gefum það til kjötkássa virka sem segir,
OK, þetta er þar í kjötkássa borð það tilheyrir.
>> Svo einföldustu kjötkássa virka sem við höfum séð er bara að segja,
OK, býst við viljum að setja strengir í kjötkássa töflunni okkar.
Og mjög einföld hugmynd gæti verið að segja, OK,
skulum raða bara með fyrsti stafur orðsins.
Svo er hægt að sjá hér, taka við banana, við að setja það í gegnum kjötkássa virka,
og það segir, hey, sem ætti að fara á vísitölu 1.
>> Svo við getum í raun hugsa um kjötkássa borð og fullt af mismunandi fötunum.
Og hver af þeim fötunum er að fara að halda höfuð tengda listanum.
Og í því tengda listanum er þar sem við getum setti reyndar mismunandi stykki af gögn.
>> Svo köfun svolítið meira í kjötkássa virka, hér er
dæmi ég bara lýst þar sem við segjum bara,
OK, taka fyrsta stafinn orðsins og við erum
fara að flokka það í fötunum.
Svo væntanlega, það verður 26 fötunum, einn fyrir hvern staf í stafrófinu.
Hvers vegna er þetta ekki mikill kjötkássa virka?
Hvað gerir þetta ekki tilvalið?
Já.
>> Áhorfendur: Þú ert að fara að hafa árekstra.
>> HANNAH Blumberg: Já, einmitt.
Þú ert að fara að hafa árekstra.
Svo er það eitt.
Og við munum tala um hvernig við getum festa árekstra á aðeins sekúndu.
Annað vandamál með þetta einkum kjötkássa virka
er að mismunandi okkar fötunum eru að fara að vera
af nokkuð harkalegur mismunandi stærðum.
>> Við vitum að það er allt fullt fleiri orð sem byrja á A en X,
þannig að við erum að fara að hafa mjög ójafnvægi fötunum í kjötkássa töflunni okkar.
Cool.
Svo já, við skulum fara aftur til að benda á árekstrum.
Hvað gerum við ef það er árekstur?
>> Við höfum nokkrar mismunandi valkosti.
Svo einn, svo býst við erum að reyna að setja Berry í kjötkássa töflunni okkar.
Og við sjáum, ó, við viljum að setja það í skránni 1.,
en banani býr nú þegar.
Hvað erum við að fara að gera?
Við höfum tvo megin valkosti.
>> Númer eitt er að við getum sagt, OK, það er ekkert pláss í skránni 1.,
en við skulum halda bara að horfa í gegnum þangað til við getum fundið annan opinn stað.
Þannig að við munum segja, OK, skulum setja það í stað 3.
Það er einn kostur.
Það er kallað línuleg leit.
>> Og Seinni valkosturinn er að segja, OK, vel, við skulum bara gera öllum þessum fötunum
vera forstöðumenn tengd listum.
Og það er allt í lagi ef það er meira en eitt í fötu.
Við erum bara að fara að auka það á framan.
Svo hér er hægt að sjá, OK, þegar við settum Berry, við
bara tók banani, eins konar ýtti á smá
og kastaði Berry þar.
Og það er líka alveg í lagi.
Þetta er kallað sérstakt chaining.
Þú getur hugsað þetta eins konar eins An array af höfuð að tengjast listum.
Einhverjar spurningar um kjötkássa töflur, kjötkássa virka?
Awesome.
>> Tré og reynir.
Svo er tré hvers konar af gögn uppbygging
þar sem það er einhvers konar stigveldi eða einhvers konar
af röðun á mismunandi hlutum þínum.
Og þetta mun verða frábær ljóst þegar við sjáum dæmi.
Og við sáum tilraunir, ásamt með kjötkássa matskeið, í pset5--
sem, aftur, algerlega sanngjarn leikur fyrir þetta quiz-- sem annar gögnum
mannvirki sem við getum geyma mismunandi hluti.
Þegar um er að ræða orðabókinni, við geymt fullt af orðum.
Svo skulum taka a líta á sumir tré.
Svo er þetta dæmi um tré.
Það er eins konar uppbyggingu, að valdakerfi,
þar sem þú getur séð að þetta 1 hnút efst
hefur einhverskonar stöðu ofan 2 og 3, sem eru yfir 4, 5, og 6 og 7,
sem eru yfir 8 og 9.
Svo það er allt átt við með tré, svo þú getur bara góður
af mynd þetta í höfuðið.
>> Nú höfum við nokkra sérhæfðari tré.
Svo er eitt dæmi tvöfaldur tré.
Og tvöfaldur tré er, aftur, bara að fara að vera
gögn uppbygging með einhverskonar stigveldi, en hver hnúður
Hægt er að hafa á flestum tvö börn.
Það er þar sem hugtakið tvöfaldur kemur frá.
Svo er þetta dæmi um tvöfaldur tré.
Svo er það minni flokkur trjám.
>> Nú skulum fá enn nákvæmari og tala um tvöfaldur trees-- tvöfaldur leit
tré, frekar.
Svo hér hugmyndin er ekki eini hjartarskinn hver hnútur hefur í mesta lagi tveimur börnum,
en öll börn til vinstri eru að fara að vera minni
og öll börnin til að rétt er að fara að vera stærri.
Svo eftir á aðeins okkar tvöfaldur tré, það er
engin tengsl á milli talnanna.
En í tvöfaldur leit okkar tré, sem við sjáum, OK, hér er 44.
Og sérhver tala vinstra megin við 44 er minni og allt til hægri
er stærri.
>> Og það heldur á hverjum stigi trénu.
Svo hér, þetta er minni en 22 og þetta er stærri en 22.
Og það er tvöfaldur leita tré.
Hvers vegna eigum við held að það heitir tvíleitartré?
Hvað reiknirit er það minna þig á?
Áhorfendur: Binary leit.
HANNAH Blumberg: Binary leit.
Vegna þess að ef þú ert að leita að Einkum tala í þessu tré,
á hverjum stað, getur þú bara högg burt helmingur af því tré, sem er frábært.
Og svo það er að fara að gefa okkur eitthvað sem lítur mikið eins og tvöfaldur leit.
Einhverjar spurningar?
Allt í lagi, flott.
>> Allt í lagi, reynir.
Hvers manns hugljúfi.
Þannig að þetta er dæmi sem við höfum séð fullt í bekknum.
Og aftur, þetta er bara annað þannig að við getum geymt gögn.
Þegar um er að ræða orðabókinni, aftur, þetta er bara að fara að vera strengi.
Svo skulum sjá hvað þetta raunverulega lítur út eins og á aðeins lægra stigi.
>> Svo skulum taka a líta á einum hnút í Trie.
Og við sjáum, OK, það er að fara að vera Boolean og hnút,
bendi á hnút.
Og við sjáum að Boolean heitir is_word.
Svo í raun, það er að fara að svara
þessum litlu þríhyrninga sem segir, ef þú hefur fengið hér,
þú hefur fundið fullkomið orð.
>> Við vitum að "Turing" yfir hér er heill orð,
en bara T-U-R er ekki orð vegna þess að við sjáum ekki þessi litla delta.
Og að lítið Delta, aftur, samsvarar þetta is_word,
þetta Boolean is_word.
Og þá höfum við fjölda barna.
Svo á hverju stigi, þú hafa ákveðna hnút,
og hnút stig til að array af öllu stafrófinu.
>> Svo þú sérð, aftur, í þessum picture-- ég
fara að halda stökk aftur og forth-- sem að array efst
hefur fullt af mismunandi hnúður koma burt af því.
Það hefur 26 eða 27 ef þú vilt að fela auka staf.
Og þetta gefur okkur leið til að geyma gögn okkar
á þann hátt sem hægt er að leit á að þú getur litið upp frábær fljótur.
Hvað er útlit tími fyrir Trie?
>> Áhorfendur: [inaudible].
>> HANNAH Blumberg: Já.
Í orði, það er stöðug tími.
Það er bara að fara að vera á stærð við orðið sem þú vilt að fletta upp.
Jafnvel ef við bæta zillion fleiri orð til Trie okkar,
það er ekki að fara að taka okkur lengur til að ákvarða
Ef tiltekið orð er í Trie.
Svo er það mjög gott.
>> Áhorfendur: Vissir þú bara frumstilla að array?
Þú misstir punkt eða tvær.
Getur þú talað bara um sem eitt augnablik?
>> HANNAH Blumberg: Jú, alveg.
Góð spurning.
Spurningin var, við hafa array sem er
fara að hafa hnút stjörnuna sem öfugt við bara hnút, ekki satt?
Cool.
Svo hér það sem við erum að segja er array okkar er bara
að fara að vera ábendingum til annarra fylki.
Svo það er essentially-- það konar líður eins og tengda listanum með þessum hætti
þar sem hver af þessum börnum bara benda á næsta hnút.
>> Og hvernig sem við reyndar ákveða, hey, OK,
við höfum ítrekað í gegnum heilt orð, er þetta orð í orðabókinni,
við athugum bara þessa is_word.
Frábær spurning.
Já.
Áhorfendur: OK.
Svo það var afturkreistingur fyrir Trie?
>> HANNAH Blumberg: Jú.
Svo afturkreistingur fyrir Trie fyrir uppflettingu er að fara að vera stöðug tími.
Svo það er bara að fara að vera fjöldi bréfa í orðinu.
Það er ekki háð Stærð orðabókina
eða stærð gögn uppbygging.
Svo hér er örlítið einfaldari dæmi.
>> Í þessu tilfelli, þú getur séð að orðið kylfa er í orðabókinni
og þú hefur zoom, en þú hefur ekki eitthvað eins dýragarðinum.
Hvernig myndum við gera dýragarðinum?
Hvernig eigum við að bæta dýragarðinum til okkar orðabók, til Trie okkar?
Já.
>> Áhorfendur: Gerðu is_word satt fyrir [inaudible].
HANNAH Blumberg: Good.
Svo við myndum segja Z-O-O, og þá við myndum langar að skrá sig á kassann eins og heilbrigður.
Great.
Við skulum bera saman mjög stuttlega reynir móti kjötkássa matskeið.
Reynir eru mjög mikill vegna þess, eins og ég sagði,
þeir veita stöðug skipti útlit.
En mikið ókostur er þeir eru humongous.
Þú getur fengið tilfinningu, jafnvel með því að horfa á það,
að það er að fara að taka a gríðarstór magn af minni.
Svo þeir eru að fara að vera mikið stærri en kjötkássa matskeið,
en þeir eru að fara að gefa okkur mun hraðar útlit sinnum.
Svo er það eins konar þinn tradeoff, hvað þér þykir vænt um,
hvort sem það er að stjórna hraða eða minni.
Einhverjar spurningar um eitthvað af því, allar C gögn uppbygging.
Beautiful.
OK.
Við erum að fara að fara á smá hluti af þróun vefur með Maria.
MARIA ZLATKOVA: Lovely.
OK.
>> HANNAH Blumberg: Þú getur notað fartölvuna mína.
>> MARIA ZLATKOVA: Nice.
OK, flott.
Eins og við snúum okkur til vefur þróun, talaði við smá
um að breyta aðgangsheimildum skráa og möppur
svo að þeir geti verið aðgengileg til annarra notenda, að í heiminum,
og svo að við getum séð hvernig grundvallaratriðum við getum miðla þeim
þegar við að þróa hluti eins vefsíður sem við höfum aðallega verið að gera.
>> Þannig að við sáum chmod skipunina, sem er breyting ham, í grundvallaratriðum.
Það er Linux stjórn og það breytist heimildir
af skrá kerfi hlutum.
Og skrá kerfi mótmæla er bara skrá, skrá,
eitthvað sem þú getur breyta heimildum.
>> Svo til að sjá skrá heimildir, við slá skipunina LS, lista, -L.
Og þegar við slá það, við yfirleitt sjá nokkur heimildir
að líta svona eins og þetta framan nafn á möppu.
Svo vísar d að skrá.
Og þá höfum við þrjú triads sem í grundvallaratriðum
vísa til aðgangsheimildum annaðhvort notandi, hópur, eða heimurinn.
>> Tegundir af heimildum sem við getum hafa þessa þrjá hópa fólks
eru ýmist r fyrir að lesa, w fyrir skrifa, og x fyrir framkvæma.
Og við getum haft þá fyrir hópurinn og heimurinn eins og heilbrigður.
The erfiður hlutur er að stundum þegar við slá chmod skipunina,
við myndum slá sumir tala sem samanstóð af þremur bitum.
Þannig að við gætum gert eins 777 og að í grundvallaratriðum
vísað til virðisauka af öllum þessum triads
vegna r myndi vísa til 4, W myndi vísa til 2, og X myndi vísa til 1,
þannig að þegar því er bætt upp, hvert af númerum myndi koma niður að uppsöfnuð tala
að uppsöfnuð gildi milli 0 og 7.
Svo við gætum einnig hafa 0 fyrir ekki heimildir á öllum.
Og sem myndi grundvallaratriðum gefa okkur heimildir fyrir annaðhvort notanda,
hópurinn, eða heimurinn.
Einhverjar spurningar um þetta svo langt?
>> Áhorfendur: Þú sagði lesið var 4?
MARIA ZLATKOVA: Já.
Áhorfendur: [inaudible].
HANNAH Blumberg: Yup.
Áhorfendur: Og svo með því að bæta öllum þeim aðrir mundu benda númer.
MARIA ZLATKOVA: Já.
Já.
Þetta eru frábær spurningar.
Lovely.
Næst, stökk við í HTML og a aðeins meira um þróun á vefnum.
Svo HTML þýðir bara HyperText Markup Language.
Og það er Markup tungumál sem er staðlað
sem það er notað til að búa til vefsíður.
>> Það er kallað Markup Language vegna þess að það er í raun ekki saman.
Það þýðir ekki að segja hvernig sumir númer ætti að framkvæma eða eitthvað svoleiðis.
Það lýsir bara og lýsir því hvernig vefur
síða ætti að vera sett upp við hvert rununni
og hvernig þeir ættu að líta til notandans.
>> Sumir af the HTML tags sem við fór yfir eru eftirfarandi.
Öll HTML skjöl okkar byrjaði með DOCTYPE HTML.
Þá höfum við alltaf HTML tag.
Við höfum höfuð og líkama.
Og það er mikilvægt að HTML er Þessi tegund af hreiður uppbygging
vegna þess að það er mjög skýr.
Og þá verður það mjög ljóst þegar við þarf að opna og í raun loka tags.
Og við þurfum alltaf að loka merki sem við höfum opnað.
>> Og hér höfum við sumir af the tegund af hlutum framundan sem við viljum hafa.
Þannig að við höfum, til dæmis, titill CS50.
Og þá erum við í raun getur tengt stílblað
sem skilgreinir hvernig við stíl vefsíðuna okkar.
Það er CSS.
Við ætlum að fara yfir það í næstu glærum eins og heilbrigður.
>> Í líkamanum, við setjum sumir flokkar og auðkenni.
Og eins og áminning, aftur, Auðkenni eru einstök og námskeið
geta verið úthlutað til marga hluti.
Og það þýðir bara að við getum notað flokka og auðkenni
innan hins structures-- svo, að dæmi, innan CSS skrár eða stíl
sheets-- að vísa til ákveðinna þátta og í rauninni segja að við viljum að stíll
eða hönnun sumir þáttur á einhvern ákveðinn hátt.
Og við vísa til þeirra með Auðkenni þeirra og flokkum.
Og við getum einnig átt við mismunandi hlutir eftir tags eins og heilbrigður,
en kenni og flokkar bara gefa okkur nokkrar fjölhæfni og hvað sérstaklega við
vilja til að vísa til.
>> Svo bara dæmi.
Við getum aftur innan CSS skrá þar sem við
viljir tilgreina nokkrar style-- svo liti, letur,
og efni eins that-- við getum skilgreina stíl fyrir aðila.
Svo sem myndi skilgreina það fyrir allan líkamann merkinu.
En þá getum við einnig að skilgreina stíl fyrir #title.
Og aftur, hashtag átt við okkar ID og punktur vísar til bekknum.
>> Síðan fyrir Upplýsa við Einnig er hægt að setja nokkrar eiginleika.
Og aftur, þegar við förum til baka, við höfðum okkar flokkur sem kallast upplýsingar og ID titill okkar.
Og við sjáum að við vísa þeim með #title og Upplýsa.
Áhorfendur: Vilt þú segir kassamerki [? ættleiða mig? ?]
MARIA ZLATKOVA miður?
Áhorfendur: Vilt þú segir kassamerki [? ættleiða mig? ?]
MARIA ZLATKOVA: Hashtag þýðir barnsins, svo #title
er átt við hvað sem þætti hafa þetta auðkenni heitir titill.
Og þá er átt punktur í flokki.
Svo vísar Lesblinda þessari frumefni vegna þess að það hefur flokks vöru.
Já.
>> Áhorfendur: Hvers vegna heldur þú greina þær í HTML?
Hvers vegna segir þú vissir hlutir eru Kenni og ákveðin atriði eru bekknum?
MARIA ZLATKOVA: Það er bara allt að you--
HANNAH Blumberg: Endurtaka spurningu.
MARIA ZLATKOVA: Ó, fyrirgefðu.
Hvers vegna eigum við að greina ákveðna þætti eins auðkenni og önnur atriði sem flokka?
Það er bara vegna þess að það er virkilega oft hönnun val.
Það gefur þér mikið af fjölhæfni í að vera
fær um að segja að ég vil þetta tiltekna atriði að hafa þetta auðkenni vegna þess að þeir vilja
að gera a einhver fjöldi af hlutur með það, og ég bara
vilja til að skilgreina stíl, ákveðinn stíl eða lit hvað fyrir þessi atriði.
Og leiðin til að gera það er bara að gefa það kenni.
>> Og þá ef ég vil hafa a par af mismunandi hlutum
að hafa það, í stað þess að fara og setja their--
í stað þess að gera það með því að tag því tag myndi
að stilla hólf til að sjá alla merkinu fyrir hvert skipti sem tag er notað,
þú getur stillt bekknum að mörg atriði.
Og þá bara fá aðgang að bekknum og segja Ég vil að stíll þessum flokki þannig.
>> Og aftur, bekknum getur verið margar mismunandi hlutir
og ID er að vera einstakt.
Frábærir spurningar.
Aðrar spurningar?
OK, ógnvekjandi.
Aftur, þetta er hvernig þessar selectors eru vísað í CSS, með hashtag,
með punkti, eða án þess að nokkuð fyrir framselja stíl einhverjum tag,
eins og líkami.
Og hér höfum við almennt setningafræði hvernig þetta er gert.
>> Að endurtaka sumir bestu leiðirnar til HTML og CSS,
við þurfum að, aftur, loka öllum HTML tög sem við opinn.
Og það sem við með þér gera lokaverkefni þínum,
sem og CS50 fjármálaráðherra, er að gera tryggja að öll HTML í gildi.
Og það er gert með w3 Staðfestir.
>> Og þá hvað við gerðum og það sem við mælum gera
er að aðgreina stíl, svo CSS frá Markup HTML.
Svo eitthvað sem tengist hvernig síðu er að fara að sjónrænt líta
og hvernig það er að fara að breyta ætti að fara í CSS skjal.
Og þá sniðinu segja hvernig hlutirnir eru í tengslum við hvert annað er HTML,
og sem ætti að fara inn HTML skjölum.
Einhverjar spurningar?
MHM.
>> Áhorfendur: Hvað nákvæmlega er að gerast á með síðu löggilding
þegar við erum að staðfesta HTML sem [inaudible] búin?
>> MARIA ZLATKOVA: Svo what-- hugsa þig.
Og hvað nákvæmlega er að fara á með síðu löggilding
og hvers vegna þurfum við að gera það?
Í grundvallaratriðum, við þurfum að gera það vegna þess að einhver fjöldi af sinnum, vafrinn þinn,
ef þú lokar ekki merki eða eitthvað svoleiðis,
Vafrinn þinn er enn að fara að bakið á síðu og gæti enn vinna,
en það er best æfa sig til að ganga úr skugga um að þú hefur, aftur, lokað öllum tags þinn,
að allir þættir eru á þann hátt að þeir ættu að vera,
og í rauninni að það er komi samninga sem eru settar.
>> Það er, aftur, bara hlutur sem þú ættir
að læra að vera að gera, öfugt við að hafa
sloppier kóða og svoleiðis.
Já.
Ó fyrirgefðu.
Ég hélt að þú værir að hækka hönd þína.
Áhorfendur: Nei, ég var bara [inaudible].
>> MARIA ZLATKOVA: OK.
>> Áhorfendur: Þakka þér.
>> MARIA ZLATKOVA: Auðvitað, þakka þér.
Svo aftur, fara á í hvernig upplýsingar eru fluttar
og samskipti módel til að flytja upplýsingar.
TCP / IP.
TCP þýðir bara Sending Control Protocol og IP
er átt við Internet Protocol.
Og það bara átt við hvernig gögn eru afhent.
>> Ef við höfum nokkrar upplýsingar sem þarf að afhenda you-- svo
þú leggja fram beiðni um tiltekinn miðlara.
Til dæmis, þegar við reyna að komast cs50.net,
við leggja fram beiðni til CS50 miðlara og við
sjá að við viljum fá Þessi tegund af upplýsingum.
Og þá eru byggðar á þessari aðferðarlýsingu fyrir hvernig þessar upplýsingar eru afhent,
miðlara gefur upplýsingar aftur til okkar, viðskiptavinurinn.
Og þá erum við fær um að sjá upplýsingar fyrir síðuna
og þá nota það.
>> Svo þá Hypertext Transfer Protocol er bara annað siðareglur eða setja
af samningum sem skilgreinir hvernig vefur flettitæki og the vefur framreiðslumaður
ætti samskipti.
Og setja þetta allt saman, HTTP, aftur,
bara skilgreinir hvernig þetta HyperText skilgreint af HTML sem við höfum verið að vinna það,
hvernig það ætti að vera frelsari til þú og hvernig þessi gögn sem er skilað til þín
fær til þín.
>> Og þess vegna, ef þú krakkar muna frá bekknum, við höfðum mikið af beiðnum
og við höfðum mikið af setningafræði fyrir þessar beiðnir sem við erum
að fara yfir núna.
Svo aftur, þegar við sendum beiðni til miðlara,
við verðum að skilgreina nokkra hluti.
Þannig að við þurfum að finna þá tegund af beiðni sem við erum að setja.
Og aftur, höfum við, til dæmis, GET er ein tegund af aðferð
sem við höfum í beiðni okkar.
>> Og þá er HTTP / 1.1 bara siðareglur sem við erum að nota núna.
Flest af þeim tíma, það er að fara að siðareglur sem við erum að nota.
Þannig að ef þú ert með spurningu svona á spurningakeppni þína.
Það er samninga sem við höfum hingað til.
>> Sviga átt við hvers konar af hlutum sem við erum að biðja.
Þá, gestgjafi okkar er, til dæmis, í þessu tilfelli erum við að reyna að fara á google.com.
Svo er þetta gildi fyrir a gestgjafi.
Þetta er tegund af beiðni sem hægt væri að senda.
>> Og þá tegund af svörun sem gæti að senda aftur, byggt á þessari bókun,
er aftur, HTTP / 1.1.
Svo er það HTTP útgáfa aftur.
200 OK er bara staða kóða.
Og það í lagi er bara setning byggt á þeim stöðukóðanum.
>> Og þá Content-Type átt við þá tegund
sem er skilað til þín sem er fyrir þá vefsíðu sem þú færð
og að vafranum þínum geta gera eftirá.
Og það er texti / HTML.
>> Áhorfendur: Hvað 1,1 meina?
>> MARIA ZLATKOVA: Það er bara útgáfa of-- ó, hvað þýðir 1,1 meina?
Það er bara útgáfa, the HTTP útgáfa af siðareglur sem við erum að nota.
Frábær spurning.
Aðrar spurningar?
>> Áhorfendur: Gætirðu summa upp Content-Type raunverulegur fljótur?
>> MARIA ZLATKOVA: Svo að er það sem miðlara.
tegund information-- hvað er efnisgerð var spurningarnar.
Svo sem var gerð upplýsingar sem þú færð til baka
frá þjóninum, tegund gögn sem vafrinn getur þá
láta sem þú ert að nota.
Áhorfendur: Er það sem þetta siðareglur er að segja þér að gera?
MARIA ZLATKOVA miður?
Áhorfendur: Er það sem siðareglur segja?
MARIA ZLATKOVA: The protocol--
Áhorfendur: --what á Content-Type er eða what--
MARIA ZLATKOVA: The siðareglur er byggt on-- hvað er siðareglur segja þér?
Það er bara þannig að þessum upplýsingum
var afhent þér miðað á hvaða tegund af siðareglur
voru þessar upplýsingar fékk skilað til þín.
Er að skynsamleg konar?
HANNAH Blumberg: Þú er að hugsa um siðareglur
eins a-- ég held prófessor Malan lýsti
í bekknum og svona eins a-- það er eins og jafnvirði manna handshaking.
Segja, eins og, hey, ég er beiðni og ég vita hvernig á að höndla HTTP af útgáfa 1.1.
Og þá þjóninn segir, ó, OK, I-- og bæði til.
Ég veit líka hvernig á að takast á við HTTP / 1.1.
Og ég ætla að gefa þú aftur að sumt efni.
Í þessu tilfelli, það er að fara að vera af gerðinni text / html.
Svo það er góður af bara leið af þeim fyrir communicating--
>> MARIA ZLATKOVA: Það er bara staðfestir að þú ert
báðir fylgja sömu siðareglur og að bæði
viðskiptavinur og server-- svo Vafrinn þinn og server--
konar veist hvað þú ert að tala um og hafa
venju fyrir brottför í gögnum.
>> Áhorfendur: Svo Content-Type part-- Content-Type texta / html-- það er
sérstakt hluti af sömu skilaboðum?
Eða er það hluti af skulum segja, 200?
Er 200 segja þeim það eða is--
>> MARIA ZLATKOVA: 200 segir það fór allt í lagi.
Og þá er efnisgerð konar a Sérstakur hluti af sömu skilaboðum,
og segja það, sem ég Kominn hefur þessa tegund af texta / html.
Það er bara að gefa meiri upplýsingar.
Hafa nokkuð að bæta?
OK.
>> Aðrar spurningar um þetta?
Awesome.
Svo nokkrar aðrar HTTP stöður sem við gætum fengið til viðbótar við 200 lagi,
þær sem við höfum séð kannski hugsanlega mikið eru 403 og 404.
Svo 404, ef þú varst að reyna að Aðgangur eitthvað sem er ekki til.
Svo til dæmis, í þinn CS50 Fjármál psets,
ef þú hefðir verið að flutningur quote.html og þú ekki hafa þessi skrá,
en í staðinn hafði quote.php, sem myndi leiða til 404 Not Found
vegna þess að skráin gæti ekki til.
>> Fyrir 403 bannað, að er átt við heimildir.
Svo ef einhver skrá er ekki lesið heimurinn, þú might fá a 403 aftur.
Sumir aðrir sem þú gætir get-- 301, færð varanlega;
302, Found; 304, Breytt; 400, Bad Request;
og þá Innri Server Error fyrir 500 og 503, Þjónusta ekki tiltæk.
Já.
>> Áhorfendur: Mun við ráð fyrir að leggja á minnið alla þá stöður?
MARIA ZLATKOVA: Ég hefði þá á svindlari lak.
[Hlátur]
Áhorfendur: Erum við gert ráð fyrir að vita hvað kallar hvern og einn?
MARIA ZLATKOVA: Eru þeir?
HANNAH Blumberg: Fyrir þær sem við höfum hlaupa into-- Svo spurningin was--
MARIA ZLATKOVA: Eru þeir ráð fyrir að vita hvað hver einn af þessum stöðu
númer gæti komið af stað?
Svo fyrir þau sem við höfum notað og hljóp inn, myndi ég segja, já.
Þannig að við höfum ákveðið séð 200 OK og fyrirlestra það í psets.
Við höfum séð 403, 404.
Fyrir hinar?
>> HANNAH Blumberg: Ég myndi segja 500 virðist sanngjarn leikur.
>> MARIA ZLATKOVA: 500, já.
>> HANNAH Blumberg: Já.
Bara hafa almenna tilfinningu af því sem veldur þeim.
Og líka bara af þessum nöfn, þú getur konar
eins að menntuð giska hvað raunverulega olli þeim.
Til dæmis, fara varanlega, sennilega skráin var flutt til frambúðar.
>> Áhorfendur: En á fyrri próf, það var svo
hvernig býstu okkur að svara því?
>> HANNAH Blumberg: That var þess virði núll stig.
Spurningin um 418 á katli er tæknilega a HTTP stöðu,
en það var þess virði núll stig.
Vitanlega, þú ert ekki gert ráð fyrir að vita þá.
>> Áhorfendur: Er það raunverulegur einn?
>> HANNAH Blumberg: Það er alvöru einn, en það þýðir ekki neitt.
Það er bara brandari.
Internet fólk er fyndið.
>> MARIA ZLATKOVA: Great spurningar, krakkar.
Aðrar spurningar?
>> Áhorfendur: Hvað er innri framreiðslumaður villa?
MARIA ZLATKOVA: Innri villa framreiðslumaður bara
þýðir að þú hefur verið ófær um að miðla
með þjóninum fyrir sumir ástæða.
Svo það er ekki endilega eitthvað sem þarf að gera
við viðskiptavininn eða eitthvað svoleiðis.
Ég veit ekki af tiltekinni dæmis sem við höfum farið yfir til að útskýra,
en já.
>> HANNAH Blumberg: Jú.
Svo til dæmis, eins og við skulum segja að þú varst að vinna á Mashup
og Google miðlara fór niður fyrir suma Ástæðan, máttur outage, við skulum segja.
Það myndi vera innri miðlara villa eða einhvers konar of-- like you
myndi ekki fá svar til baka.
>> MARIA ZLATKOVA: Já.
Það er bara þegar þú ert ófær um að miðla
með þjóninum fyrir sumir ástæða vegna af því að fara niður eða einhver önnur ástæða.
Svo stökk inn í PHP.
PHP, ólíkt HTML, er forritunarmál.
Og við byrjuðum að nota það vegna þess að það er mjög gagnlegt fyrir vefur þróun.
>> Við notuðum það fyrst í CS50 fjármál.
Og það hjálpar í rauninni okkur koma saman þetta Markup, hönnun,
og hvernig við notum í raun upplýsingar til að birta það á vefsíðu.
Svo PHP sjálft þýðir PHP Hypertext Preprocessor,
svo það er endurkvæma backnorym af sjálfu sér.
Og opna merkin fyrir PHP við vinstri og hægri örvarnar með spurningarmerkjum
og PHP.
>> Þannig að við höfum þegar séð fullt af henni.
Nú erum við bara að fara að fara yfir sumir af the atriði um það.
Svo með PHP, breytunni nöfn byrja með dollaramerki.
Við tilgreinir ekki, aftur, breytu tegund lengur.
Rétt eins og við gerðum með C, við þurfum ekki að gera það.
>> Við getum gert fullt af mismunandi efni með breytum.
Við getum sett þá saman eftir concatenating þá
með punktur merki, sem við gátum ekki gert í C aftur.
Aftur höfum við aðeins meira fjölhæfni með PHP í skilmálar af breytum.
Aftur höfum við ekki meginhlutverki.
>> Og PHP er túlkað öfugt við saman,
Svo bara hvernig við vildum gera fyrir C skrár, við þurfum ekki að gera það fyrir PHP.
Heldur á þann hátt að tungumálinu er rekið af sjálfu sér, það er túlkað.
Og þá lauslega slegið bara þýðir að við
þarft ekki að tilgreina breytu tegund og breytilegum gerðir
er skilið á afturkreistingur.
>> Áhorfendur: En hvað gerði þig meina með punktur samtenging?
MARIA ZLATKOVA: Jú.
Þegar við viljum setja hlutina together-- þannig að ef við fengum breytu sem
hafði verðmæti 3 og við höfðum annað breyta sem hafði gildi band,
við gætum sett breyturnar saman með því að setja punkt á milli þeirra
og concatenating þá.
Eða við gætum búið til a breyta nefndi
og setja það saman með concatenating tvo strengi.
>> Svo ef við hefðum streng í tvöföldu vitna og við setja punkt eftir það,
og þá höfðum annað band, sem myndi skapa band með öllu.
>> Áhorfendur: OK.
MARIA LETTLAND: Var að hreinsa?
Áhorfendur: Já.
MARIA ZLATKOVA: OK.
Já.
>> Áhorfendur: Þegar þú segir túlka frekar en saman,
ertu að tala um þig ekki þurfa að vera eins nákvæm þegar
það kemur að því að PHP móti C?
MARIA ZLATKOVA: Þegar við segjum túlka öfugt við saman,
hvað er átt við?
Svo það þýðir að við þurfum ekki executable skrá til að keyra PHP.
Það þýðir að það keyrir eins og það fer.
Er að skynsamleg?
A hluti.
HANNAH Blumberg: Svo þú er að hugsa um túlk
sem annað forrit sem er ábyrgur fyrir að fara línu fyrir línu í gegnum PHP
og í raun framkvæmd það, öfugt að setja saman það allt niður í tvöfaldur.
Það þýðir í raun ekki neitt um hvernig ákveðin við þurfum að vera.
Við þurfum samt að vera nákvæmur, og gera ekki gleyma semíkommu þína, og ganga úr skugga um
þú þarft dollara Skráðu, og svoleiðis.
Góð spurning.
>> MARIA ZLATKOVA: Já.
Svo línu fyrir línu, sem öfugt við C skrár,
við verðum að gera allt endanlega áður en við getum í raun að keyra það.
Það er helsti munurinn.
En aftur, við getum ekki raunverulega vera minna sérstakur.
Svo fylki í PHP tákna í raun pantað kort.
>> Svo fylki félagi gildi til lykla.
Tvær leiðir til að lýsa array, byggt á þessari setningafræði,
við getum verið skýr að segja að við höfum fjölda
og við höfum þetta key1 að leyfa að þetta gildi1, key2 sem varpar VALUE2.
Eða við getum bara búa til array sem inniheldur gildi sig
og þá takkarnir eru skilið á þann hátt.
Einhverjar spurningar um þetta?
>> Áhorfendur: Hvað myndi takka að vera í öðrum td?
0, 1, 2, 3?
>> MARIA ZLATKOVA: Til dæmis, það er bara takkarnir í þetta þurfa ekki endilega
gera a mismunur.
Þeir skilgreina bara hvernig þú getur nota gildi innan þess.
Svo ef við hefðum framhandleggur lykkja í PHP sem myndi
leyfa okkur að fara í gegnum allar gildum, við getum farið í gegnum allar gildum,
jafnvel þótt við hefðum eða höfðu ekki skilgreint a sérstakur lykill í síðunnar
fyrri setningafræði.
>> Svo jafnvel með þessari tegund af fjölda, við gátum samt
hafa framhandleggur lykkja sem fer í gegnum hvert
gildanna í helstu í array.
Svo setningafræði á framhandleggur lykkja, byrjum við með fjölda.
Þetta $ Arr breyta er raunveruleg array okkar að við þær eru skilgreindar í eina skyggnu
sem gildi sem bókstaflega fer í gegnum hvert af þeim gildum,
án tillits til þess hvort við höfðum lykil eða ekki.
Og þá getum við gert eitthvað með gildi inni í framhandleggur lykkja.
Svo aftur, ef við hefðum fylki svona hér created--
þannig að við höfum lykil foo og verðmæti Bar, lykillinn af Baz og gildi qux--
við getum haft framhandleggur lykkja sem fer í gegnum array sem lykill gildi
og síðan gera eitthvað með lyklinum og / eða verðmæti.
En við gerum ekki endilega alltaf verða að fá framhandleggur lykkjur sem
fer í gegnum array eins og lykill kort til að gildi.
Við getum farið í gegnum framhandleggur lykkja array sem gildi.
>> HANNAH Blumberg: Og ég held to-- var þinn spurning, hvað
er fólgið vísitölu?
Áhorfendur: Kinda.
MARIA ZLATKOVA: Oh.
HANNAH Blumberg: Já, já.
Svo í rauninni, ef þú tilgreinir ekki lykill, það er að fara að vera 01.
>> MARIA ZLATKOVA: Já.
Rétt eins og með C, það er núll verðtryggð ef þú tilgreinir ekki lykil.
Áhorfendur: Sorry.
Gætirðu reynt að tala svolítið hávær?
Ég ætla að hafa smá vandræði heyra allt.
>> MARIA ZLATKOVA: Ég er svo leitt.
Já auðvitað.
Svo viltu mér til að fara yfir þetta aftur?
Eða er this--
Áhorfendur: Svo á fyrri slide-- ef þú getur bara farið aftur í eina sekúndu.
MARIA ZLATKOVA: Auðvitað, því miður.
Áhorfendur: Svo annað array hér ekki
virðast hafa gildi að slá, konar [? orsök. ?]
MARIA ZLATKOVA: Hægri, hægri.
Áhorfendur: Svo er að vinna hvernig þegar þú segir það er allt eða ekkert.
Fyrir mér, sem lítur út eins og a [? foo?] þegar.
>> MARIA ZLATKOVA: Já, já.
Svo aftur, þetta er panta kort í þessum skilningi
að það er skilið, til dæmis, Vísitölur
Hér er hægt að skilja sem 0, 1, 2, 3.
Aftur, það er að hafa þá Vísitölur jafngildir okkar
af því að hafa lykla varpað á gildi.
Svo ef lykill okkar var 0-- miður.
>> HANNAH Blumberg: Nei, það er Kalksteinn upp hér.
Það er reyndar mjög gott.
>> MARIA ZLATKOVA: Það er frábært.
OK.
Svo aftur, $ Arr 0 væri lykillinn að verðmæti 1.
0 væri lykillinn að verðmæti 1.
Áhorfendur: Fyrirgefðu.
Það er ósýnileg.
>> HANNAH Blumberg: Allt í lagi, Nevermind.
Chalk var slæm hugmynd.
Ég tek það til baka.
Þú getur hugsað lyklunum sem 0 kortum til verðmæti 1.
MARIA ZLATKOVA: Já.
Svo er þetta 0, þetta er 1, 2, 3.
Þetta getur verið lyklana.
Þú getur hugsa um þau as-- já.
Svo í stað þess að þurfa skýr takkana, þeir
konar Litið Vísitölur byrja á 0.
The krít ekki hjálpa.
Já.
>> Áhorfendur: Fyrir framhandleggur lykkja, ef við vildum skoða sem gildi,
það myndi bara sjálfkrafa vísitölu til 0?
MARIA ZLATKOVA: Já.
Það myndi fara í gegnum hvert af þeim gildum.
Áhorfendur: [inaudible] sem 0 eða myndi það bara gera 0?
>> MARIA ZLATKOVA: Þú þyrftir að segja sem dollaramerki og þá
sumir breyta heiti, gildi.
Áhorfendur: [inaudible].
MARIA ZLATKOVA miður?
Áhorfendur: Sorry, ég er bara að reyna að muna.
Hvernig myndir þú gera það ef þú getur gert það sjálfkrafa flokkun er bara 0 af?
>> MARIA ZLATKOVA: Svo hvernig myndir þú gera það ef þú did ekki hafa ákveðna takka nöfn?
>> Áhorfendur: Já.
>> MARIA ZLATKOVA: Þú myndir bara define-- bara segja þér eins og sumir nafn.
Svo í psets þínum, þú krakkar gætu muna framhandleggur $ umf $ raðir,
við bjuggum okkur sjálf þessa $ röð segja við viljum fara í gegnum röð eins og $ raðir.
Jafnvel þó við höfum ekki þetta skýr $ raðir skilgreint,
við gátum bara farið og segja að þetta getur verið lykill okkar,
og bara fara í gegnum hvert af þeim gildum.
>> Áhorfendur: Svo er gildi ný breyta við erum að búa til að geyma [inaudible]?
>> MARIA ZLATKOVA: Svo það er ekki eðli sínu nýja breytu.
Það er breyta sem vísar til inni í fylkinu til hvers þeirra.
HANNAH Blumberg: Það er nýtt breyta nafn.
MARIA ZLATKOVA: Já, það er nýr breyta heiti,
en það er ekki inherently-- já.
Það er bara ný breyta að þú getur gert það.
Svo bara hvernig við gerðum $ róa og $ raðir, raðir
var nýtt heiti breytunnar sem við gætu búið í framhandleggur lykkja okkar.
Það þarf ekki að preexist áður.
>> Áhorfendur: Gætirðu farið í gegnum rökfræði fyrir hvern, með því að nota dæmi þarna?
MARIA ZLATKOVA: MHM.
Ó fyrirgefðu.
Hér er dæmi.
Viss.
Svo fyrir hvert array-- svo sem þýðir að fara að þessu fylki
eins og lykill value-- það er að fara að fara í gegnum þennan fjölda
og fyrst að fara og fá foo er lykill foo og verðmæti bar.
Og síðan á seinni endurtekning af fyrir lykkju,
það er að fara að fara í gegnum og taka lykillinn Baz og gildi qux.
Og þá er hægt að gera eitthvað við annað þeirra eða þau bæði.
>> Áhorfendur: Svo hugmyndin á bak hafa lykilatriði að verðmæti,
hvað þú endar aðgang?
>> MARIA ZLATKOVA: Hvað er hugmynd af því að hafa a lykill benda að meta?
Það er bara annar samningur, annar leið til að fara í gegnum array
og vera fær um að fá aðgang annaðhvort lykill eða gildi eða bæði og nota þær.
>> Áhorfendur: Hvað er hlutverk fyrir mælt fyrir um að framhandleggur keyrir í?
Svo ef við vorum að bæta við þættir til array síðar,
myndi þá vera the fyrstur sjálfur kallað í framhandleggur array,
eða myndi það vera síðar?
>> MARIA ZLATKOVA: Svo er það röð sem framhandleggur
lykkja fer í gegnum array í?
Það fer í gegnum fyrsta þáttur til síðasta frumefni,
að síðustu bætt frumefni.
Ef þú bætir þætti síðar, þeir myndu að accessed-- fyrstu þættir myndu
að nálgast sem fyrst þættir array,
og þá þú vilt fara í gegnum hvern þættir sem einskonar ordered--
ekki pantað, en á þann hátt að þeir hafa verið sett inn í array.
>> Áhorfendur: Svo nýja þætti er bætt síðar?
Svo þeir eru added-- þeir vera Síðustu sjálfur í [? endurtekning. ?]
>> MARIA ZLATKOVA: Nýjar þættir can-- grundvallaratriðum, þegar nýja þætti er bætt við,
eru þeir bætt við í lok fylkisins?
>> Áhorfendur: Já.
MARIA ZLATKOVA: Ég trúi því.
Já.
Og þá með framhandleggur lykkja, eftir að þú hefur bætt við nýjum þætti
og þú fara í gegnum þá, nýja þætti myndi
vera accessed-- nýju frumefni, ef það er bætt síðast, myndi það að nálgast síðasta.
>> Áhorfendur: Getur þú gefið bara dæmi um eitthvað sem myndi [inaudible]
með eitthvað með gildi eins og [inaudible] eða gildi,
eins og hvernig þú vilt forsníða það?
>> MARIA ZLATKOVA: Jú.
Get ég gefa dæmi um hvað við myndum gera með verðmæti?
Svo hvað þú krakkar gætu verið kunnugt er að við höfum farið í gegnum fjölda
og í rauninni prentað hvert atriði,
til dæmis, sem hluti af raðaður listi eða eitthvað sem.
Er að skynsamleg eða viljum við to--
Áhorfendur: Getum við prentað þessi gildi út?
MARIA ZLATKOVA: Já, við gætum prentað og þá $ rauninni gildi vegna þess að á
sem tiltekið gildi, myndum við vera prentun verðmæti inni af því.
Þannig að ef við vorum á fyrsta endurtekning okkar af því og við prentað $ gildi,
við viljum að prenta bar.
>> Áhorfendur: Eru einnig fyrir lykkjur í PHP eða bara framhandleggur lykkjur?
>> MARIA ZLATKOVA: Það er einnig fyrir lykkjur í PHP.
Og rökfræði þeirra er að mestu sama og það sem þú hefur verið að nota til að.
Áhorfendur: Svo gildi þess er null.
MARIA ZLATKOVA: Það er eins og hið sama.
Já.
Áhorfendur: Ég ætla bara að fara að spyrja.
Svo þegar þú lýsa array, þú þarft ekki
að segja hvaða stærð það er að fara að vera, sem þýðir að þú getur bara
bæta við og taka í burtu þætti [inaudible].
MARIA ZLATKOVA: Yup.
Já.
Nákvæmlega.
Þegar við lýsa fylki, við þarft ekki að segja hvaða stærð það er,
svo við getum bara bæta þætti á það síðar eins og heilbrigður.
Fleiri spurningar?
Svo koma PHP og HTML saman, það sem við höfum seen-- vel,
Til dæmis, í þessu dæmi, við höfum HTML formi sem hefur innsláttarreitinn.
>> Og inntak reitur er bara nafn og þá hefur það Senda hnappinn.
Og þegar þú ýtir á Senda hnappinn, í hello.php skrá okkar,
vegna þess að aðferðin fyrir formi er fá, getum við aðgang hvað er nafn
eftir þetta fá alþjóðlegt breytu sem is-- setningafræði fyrir það er $ _GET.
Og þá getum við nálgast hvað notandi inntak inni í því formi að nafninu
með því að tilgreina nafn því sviði.
>> Aðrar spurningar eða eitthvað spurningar um þetta tiltekna dæmi?
>> Áhorfendur: Hvar er PHP?
MARIA ZLATKOVA: Hér.
Svo er þetta opna tag okkar fyrir PHP.
>> Áhorfendur: Einmitt.
>> MARIA ZLATKOVA: Já.
>> HANNAH Blumberg: The = er styttingin fyrir þetta er PHP og bara bergmál.
Áhorfendur: Oh.
MARIA ZLATKOVA: Já, því miður.
Ég ætti að hafa sagt það skýrt.
>> HANNAH Blumberg: Print.
MARIA ZLATKOVA: Það er bara virka sem gerir okkur kleift að prenta eitthvað.
Frábær spurning.
Svo going-- já.
>> Áhorfendur: Er að fara að vera alveg smá hönd kóðun PHP og HTML
á spurningakeppni 1?
MARIA ZLATKOVA: Það getur verið heilmiklar túlkun
PHP og HTML, ekki endilega eins og a gríðarstór magn af erfðaskrá,
þó að þú gætir þurft að skrifa framhandleggur lykkja, þó, til hliðar.
Allir af lykkjur sem við þessu hér er sanngjarn leikur.
Og það er að mestu leyti það.
HANNAH Blumberg: Ég myndi vera tilbúinn.
Á sama hátt og við spurði þig að skrifa fullt af C aðgerðir á spurningakeppni 0,
Ég væri tilbúinn að gera Sama á PHP og Javascript.
MARIA ZLATKOVA: Já.
HANNAH Blumberg: Ég myndi segja a little-- eins og við erum ekki
fara að gera þú skrifar mikið HTML síðu bara því það er svolítið
leiðinlegur, en þú gætir þurft hluta.
Það er algerlega sanngjarn leikur.
Eins litlum HTML síðu, algerlega sanngjarnt.
Áhorfendur: OK.
Hvernig væri JavaScript eins og heilbrigður?
HANNAH Blumberg: Já.
Sanngjarn leikur JavaScript er.
>> MARIA ZLATKOVA: Já.
Það er alveg sanngjarn leikur.
HANNAH Blumberg: Við munum fá til að í eins og 10 mínútur.
>> MARIA ZLATKOVA: SQL, aftur, Structured Query Language.
Það gerir í grundvallaratriðum okkur til að stjórna gögnum í Venslagagnagrunnur stjórnun
kerfi.
Það þýðir bara í rauninni að við höfum einhvers staðar
að geyma ýmsar upplýsingar sem við gætum vilja til að nota í viðbót eða á einhvern annan hátt.
Og þá höfum við fyrirspurnir til að fá Upplýsingar úr gagnagrunni okkar,
eða til að setja upplýsingar í þeim.
A einhver fjöldi af the sameiginlegur ones-- UPDATE, INSERT, SELECT, og eyða.
>> Svo að uppfærslu, þetta er setningafræði til að uppfæra gögn í gagnagrunninum.
Uppfæra þessa töflu sem heitir borð með því að segja SET,
getum við sett nokkur gildi í öllum raðir til jafn eitthvað annað.
Þannig að við getum einnig tilgreina sumir sérstakur Færslur sem við viljum breyta
og það getur verið að nota þar.
Og við getum tilgreina að við viljum bara að breyta sumum raðir þar sem hús fyrir,
ef við hefðum borð nemenda og allir nemendur höfðu hús,
svo við myndum bara breytt nokkur gildi þar hús jafnt Currier,
til dæmis.
>> Fyrir INSERT, getum við setja ákveðin gildi í töflu.
Svo INSERT INTO töflu, og þá gildi,
og þá í sviga, við að skilgreina hvaða gildi þú vilt setja inn.
Svo INSERT INTO borð, col1 og col2, gildi er VAL1 og VAL2.
Svo setur þetta í rauninni nýja línu inn töflu má gildin 1 og 2
undir dálkum 1 og 2.
>> Og þá erum við að fara að fara yfir a fljótur dæmi um hvernig þetta lítur
eins og í gagnasafn okkar smá.
En þetta endanlega fyrirspurn sem ég held að við erum að fara að fara yfir,
SELECT, það gerir okkur bara til að velja gögn úr töflu
að hugsanlega nota það síðar.
Og hvernig við gerum þetta er að við bara geyma það í sumum breytu.
Og þá getum við hugsanlega notað hann aftur.
>> Svo SELECT stjörnu merkir að velja allt.
Það er bara styttingin til að velja allt.
FRÁ borð þar, við erum að leita að einhverjum tilteknum skilyrðum,
svo þar dálki jafngildir eitthvað, til dæmis.
Ef við vildum bara að velja allt úr töflunni,
Þetta velur bara alla dálka og allar færslur frá borði.
>> Og þá DELETE FROM borð HVAR Col jafngildir eitthvað,
þetta bara eyðir sumar róa frá borðinu okkar
þar sem við höfum nokkrar sérstakar aðstæður.
Í þessu tilfelli, skilyrði eru dálki jafngildir eitthvað.
Svo bara fljótur dæmi um þetta.
Ef við höfum þetta borð hérna og við setja það inn í töflu, þessi gildi,
sem myndi setja nýja línu.
Og ef við hefðum sjálfvirka aukningu, þetta myndi bara hækka skilríki frá 0 til 1 til 2.
>> Ef við valið allt frá nemendum, það bara skilar öllum sviðum og allar umf.
Hvar ári er meiri en eða jafnt og 2016,
sem myndi bara snúa aftur Hannah og mig.
Og þá ef við valið bara ári id og ár frá nemendum
þar sem húsið er Cabot House, sem myndi aftur, aftur Hönnu og mig.
>> Þá ef við eytt frá nemendum þar sem nafn er jafn Rob,
sem myndi eyða allt röð.
Og þá ef við setjum nafn, UPDATE nemendur
SET nafn jafngildir Daven HVAR Húsið er jafn
Cabot House, sem er að fara að fara í þessir raðir og þá uppfæra nafn.
>> Og þá nokkrar SQL gögn tegundir eru CHAR, VARCHAR, INT, og fljóta.
Þetta eru sanngjörn leik.
Ég myndi fara aftur og ganga úr skugga um að þú veist
og hafa þá á svindlari lak, hvað hver af þeim stafi
hafa verið notað, hvað þú notað þá á psets þínum,
og ganga úr skugga um að þú ert kunnuglegur og ánægð með að þurfa að velja
frá mismunandi tegundir gagna í pset þinn.
Já.
>> Áhorfendur: Hvað var það borð geymt?
Já, hvar er þessi tafla geymdar?
MARIA ZLATKOVA: Jæja, núna, það er ekki geymt.
Engu að síður, þar er þetta borð geymt?
En það er hægt að geyma í SQL gagnagrunn.
>> Áhorfendur: Og hvar er SQL gagnagrunnur?
Í tölvunni, á netinu einhvers staðar, framreiðslumaður?
>> MARIA ZLATKOVA: Það getur verið tala af ólíkur hlutur.
>> HANNAH Blumberg: Við höfum interfaced með SQL töflur aðallega með phpMyAdmin.
Þannig að við gætum beðið miðlara að geyma þá fyrir okkur.
Við gætum geyma þá á tölvunni okkar.
>> MARIA ZLATKOVA: Það fer bara eftir hvernig þú vilt gera það fyrir þig.
En við höfum verið að geyma þá, sem Hannah getið,
á phpMyAdmin, sem er á netinu.
Og þá leið sem við notum PHP og SQL, geymum við það
í sumum breytu það sem við höfum sent fyrirspurn til.
>> Þannig að ef við velja allt úr sögunni þar USER_ID jafngildir fundur ID,
sem myndi velja allar línur fyrir ákveðna aðila sem
er skráður í frá sögu borð og raða þeim í raðir.
A kaldur hlutur að vita er sem CS50 er fyrirspurn virka
verndar gegn SQL innspýting tags.
Það þýðir bara að það gerir viss inntak sem er rétt slegið inn
og að sá sem er að slá inntak
er ekki að reyna að inntak sumir illgjarn kóða til að annað hvort sleppa borðum okkar
eða eyða öllu inni hjá okkur.
>> A fljótur yfirlit af the Model View Controller líkan,
það er bara leið til að skipuleggja og hugsa um kóða.
Það er aftur, hönnun hugmyndafræði.
Hvað það þýðir er að við can-- og það er góð regla
til að aðgreina mismunandi hlutum af kóða okkar og hvað þeir
stjórna í þessum þremur málin.
>> Svo er að okkar mati oftast okkar sniðmát, skipulag okkar, hvernig
sem við setjum hvernig númerið okkar lítur út.
Það er að mestu leyti CSS skrár okkar og hvernig að við skilgreint hönnun númerið okkar,
grundvallaratriðum.
Stjórnandi okkar er að mestu leyti hvað við höfum verið að gera með PHP skrá.
Svo aftur, að vinna með upplýsingar sem við höfum
og skilgreina hvernig það upplýsingarnar eru notaðar,
og þá liggur að upplýsingar annaðhvort inn á útsýni eða líkan.
Og líkanið, á þann hátt að við höfum verið að nota er hefur verið hjá okkur,
svo þar sem upplýsingar okkar er geymd svo það hefur eitthvað
að lifa í, og eitthvað af kóða sem snýr að því hvernig
að við fáum þær upplýsingar eða leiðin sem við uppfæra þær upplýsingar.
>> Svo í MVC líkan, HTTP beiðnir eru sendar til vefþjóni.
Þá er stjórnandi túlkar beiðni frá notanda
og þá staðfestir notandi inntak.
Það er valfrjálst að við höfum stjórnandi samskipti
með líkan, svo eitthvað eins hjá okkur
eða einhver önnur virkni sem relays upplýsingar.
Og svo að lokum, stjórnandi fer upplýsingar inn á útsýni
þannig að það getur verið veitt og að það getur
verða sýnileg þeim sem um aðgang að vefsíðu.
>> Einhverjar spurningar?
Awesome.
Svo aftur, en fyrirmynd, hlutverk þess, aftur,
er viðvarandi geymsla upplýsinga, stjórna og skipuleggja gögn.
Og það sem við höfum séð langt er MySQL gagnagrunnur
og allar gagnaskrár sem getur notað.
>> View, framsetningu upplýsinga til notandi, HÍ, eða notandi tengi.
Og dæmi um þetta er HTML.
Og þá erum við kannski hafa óveruleg PHP.
Svo fyrir lykkju sem iterates yfir gögn sem eru prentaðar út
er hluti af mati, sem öfugt við the stjórnandi.
Og þá er mikið af PHP skrá okkar falla í stýringu flokki.
Það sér bara notandi beiðnir og fær upplýsingar frá líkaninu.
>> Stökk inn í skjalið Object Model, þetta bara
vísar til þess hvernig HTML skjöl eru skipulögð.
Og þeir eru skipulögð í tré uppbygging sem hefur stigveldi.
Svo ef við höfum aðgang að [inaudible] framsetning skjalinu,
við getum unnið með skjalinu, eins við vinna hluti í grundvallaratriðum.
>> Og til að gera þetta svolítið skýrari, þegar
við höfum mikið af okkar mismunandi merki bregðast
að mismunandi leiðum í trénu okkar.
Og þá í þessu dæmi, við hafa upphafsdegi skjal hnút.
Við höfum þá HTML hnút okkar sem skiptist í höfuð og líkama.
Head hefur titil og síðan titill inniheldur Halló, heimur.
Og líkami okkar inniheldur bara halló, heimur eins og heilbrigður.
>> Svo einhverjar spurningar um eitthvað af hlutir sem við falla svo langt?
Og ef ekki, Hannah mun taka yfir með JavaScript.
Awesome.
>> HANNAH Blumberg: OK, flott.
Ef eitthvað kemur upp með PHP eða HTML, eða einhverju efni Maria nær,
við getum alltaf gert hlé.
Við erum að gera betur á tími aftur, svo ógnvekjandi.
Og bara til að fara aftur mjög fljótt við þetta,
ef þú horfir á hvert exam síðasta ári, þetta
kemur upp either-- hér er sumir HTML, gera þessa skýringarmynd.
Eða hér er þetta skýringarmynd, að sumir HTML, svo ákveðið að æfa það.
Og þá er það eitt öruggt Spurningin sem þú getur fengið rétt.
Cool.
Svo skulum við tala um JavaScript og hvernig það er svolítið
frábrugðin tungumálum eins og PHP og C, tvö tungumál sem við sáum fyrir.
Svo númer eitt, það er lauslega slegið.
Það er eins og PHP, en ólíkt C
>> Það er túlkað tungumál.
Aftur, það er eins og PHP, ólíkt C Og þetta
er að fara að leyfa okkur að use-- það virkar virkilega vel með vefsíðum.
Það er að fara að leyfa okkur að vinna efni og hvernig það lítur út
og hvað það gerir.
>> Við erum að fara að sjá smá Ajax.
Það gerir okkur kleift að eiga samskipti asynchronously með mismunandi netþjónum
og fá upplýsingar.
Og þetta er hlutur sem raunverulega skilur Javascript úr PHP og C
er að það er viðskiptavinur-hlið.
Bæði PHP og C eru oftast framreiðslumaður-hlið.
>> Fyrir the hluti og nær eingöngu það
við höfum séð, að minnsta kosti í þennan flokk, JavaScript
virkar á client-megin, sem þýðir að vafrinn er í raun
ábyrgur fyrir að keyra það.
Og það þýðir að við gerum ekki þurfa að hafa samskipti við þjóninn.
Svo það þýðir að það geta vera a einhver fjöldi hraðar vegna þess að það er í raun bara það Chrome,
það er Safari, það er Firefox, hvað þér nota í raun í gangi þínum JavaScript.
>> Áhorfendur: Hvað ósamstilltur meina?
>> HANNAH Blumberg: Ah, hvað er asynchronously meina?
Frábær spurning.
Asynchronously means-- vel, efni sem
við notum það er, OK, við eru að búa til vefsíðu
og við þurfum að fá smá upplýsingar.
Svo með dæmi um Mashup, einhverjar upplýsingar sem við gætum vilja
er grein titla.
Nú, could-- við einn valkost er að gera það í réttri
og það þýðir skulum stöðva, fara að fá greinina,
fá grein aftur, og þá bakið, en það væri mjög hægur.
Það væri slæmt notandi reynsla því að þú myndir bara að sitja
að bíða eftir eitthvað að svara.
>> Asynchronously þýðir að við munum halda áfram að fara um viðskipti okkar,
flutningur á síðunni, og við munum senda út beiðni
Það er góður af fara að gerast í bakgrunni.
Ég held að við notum dæmi í fyrirlestur starf Rob og sagði:
hey, þú getur litið þetta upp fyrir mig og fá aftur til mín,
öfugt við bara mér bíða á símanum.
Svo þýðir asynchronously það gerist í bakgrunni burtu frá okkur
samhliða.
>> Frábær spurning.
Eitthvað annað?
Great.
Við munum hoppa miklu meira í ósamstilltur beiðnir með Ajax.
>> Áhorfendur: Er Javascript-- hvar það falla með Model-View-Controller?
HANNAH Blumberg: Great spurning.
Hvar er JavaScript fall með Model-View-Controller?
Hm.
Ég giska á að það getur fall-- þannig að við gerum ekki venjulega
eins að troða henni inn í það hugmyndafræði, en ég held ég myndi segja,
OK, svo JavaScript reyndar er að fara að leyfa
okkur til að safna gögnum, túlka gögn, í raun gera
þroskandi hluti með gögnin.
Á þann hátt, er það mjög stjórn eins.
>> En það er líka að fara að leyfa okkur að sýna hlutina og prenta það.
Á þann hátt, er það mjög útsýni eins.
Já.
Svo það er góður af eins og PHP þar sem það getur konar bæði.
Góð spurning.
Eitthvað annað?
Allt í lagi, ógnvekjandi.
Flytja rétt eftir.
>> Svo skulum sjá dæmi um hvernig við getum notað
JavaScript í einn af verkefnum okkar á vefnum.
Svo ég ætla að íhuga þetta index.html með fullt af HTML.
Og það sem ég vil þig leggja áherslu á er þetta handrit tag.
Og þetta segir, OK, ég vil að hlaupa sumir JavaScript og hér er þar sem það býr.
Það býr í hello.js.
>> Og mjög mikið eins og CSS, við gátum setja Javascript innan HTML.
Hvers vegna getum við vilja til að skilja það út?
Já.
>> Áhorfendur: Auðveldara að umrita?
>> HANNAH Blumberg: Já.
Það er auðveldara að nota yfir mismunandi vefsíðum.
Það heldur það hreinni.
Það er bara gott.
Awesome.
Gott svar.
Svo gott, svo þetta er að fara að vera index.html okkar.
Og þá hérna er okkar agnarsmár JavaScript skrá.
>> Og allt það segir er vakandi Halló, heimur.
Svo hvað gerist er þegar þessa síðu renders--
þannig að ef þú ferð til hvaða vefsíðu þetta is-- allt sem er að fara að gerast
er það er að fara að segja, OK, ég er að fara að keyra þennan JavaScript kóða.
Og þetta JavaScript kóða bara segir vakandi Halló, heimur.
Þannig að ég ætla að fá þetta vingjarnlegur lítill pop-up.
>> Cool?
Það er góður af eins og okkar fyrstu JavaScript program, okkar Halló, heimur.
Við skulum líta svolítið meira um hvað setningafræði JavaScript lítur út.
Og sérstaklega, við skulum bera saman það til C og PHP, sem við höfum séð áður.
>> JavaScript, við erum að fara að hafa Var, nafn breytu, og þá
raunveruleg gildi þess.
Og við tilgreinir ekki tegund, bara eins og í PHP, en mjög ólíkt í C.
Svo til dæmis, ef við vildum að geyma verðmæti 50,
í C, myndum við að segja, hey, C, ég vil heiltölu
Ég ætla að kalla það i, og gildi þess er 50.
Í PHP, það er svolítið auðveldara.
Við segjum, hey, ég vil breytu kallaði ég og gildi þess er 50.
Mjög álíka, í JavaScript, við segja hey, ég vil breyta kallaði ég,
gildi er 50.
Sérhver síðari skipti sem ég nota i, ég þarf ekki að skrifa var.
Það er bara ég frá þeim tímapunkti á.
Á sama hátt, í C, þar sem þegar við segjum int i, við notum bara i.
Cool?
Allt í lagi.
>> Færa um að lykkjur, sem betur fer, þetta nánast
líta exactly-- Ég held að þeir séu nákvæmlega það sama og hvað
lykkjur eru að fara að líta út eins og í eitthvað eins og C þar sem þinn fyrir lykkju
er að fara að hafa þrjú parts-- frumstilling,
ástand, og uppfærsla.
A meðan lykkja, það lítur nákvæmlega sama.
Við gefum bara það ástand.
>> Og gera á meðan lykkja, aftur, nákvæmlega það sama.
Við gefum það skilyrði.
Skulum segja að ég vildi að árétta over-- Mig langaði til að gera eitthvað fimm sinnum.
Í C, gætum við skrifað fyrir init ég er 0.
Ég er minna en 5, ég ++.
Eini munurinn, í JavaScript, í stað þess að segja int i jafngildir 0,
við segjum Var ég er 0.
Beautiful.
Það er eini munurinn.
Einhverjar spurningar um eitthvað af því?
Já.
>> Áhorfendur: Svo í PHP, það er sama hlutur, nema en eins breytu?
Eða var það VAR dæmis?
HANNAH Blumberg: Já.
Svo í PHP, það er að fara að vera dollaramerki.
Svo það er að fara að $ i jafningja 0, $ I er minni en 5, $ I ++.
Frábær spurning.
>> Nú skulum tala um virka yfirlýsingar.
Í C, þegar við lýst yfir virka, við gáfum honum nafn
og gáfum henni nokkrar breytur.
Og í byrjun, skrifaði við gerð.
JavaScript, allt sem við þarft að gera er að skrifa
leitarorðið fall sem segir, hey, JavaScript,
Ég er að fara að skilgreina fall.
>> Í þessu tilfelli, það hefur nafn summa.
Og það tekur tvær breytur, x og y.
Takið eftir að við gerum ekki sama um tegundir x og y.
Og rétt eins og C, höfum við þetta leitarorð aftur,
svo við getum gert eitthvað eins aftur x og y.
>> Og nú þegar við höfum skrifað þetta fyrst virka, getum við notað summan hvar sem er.
Og það er algerlega fínt.
Einn mjög kaldur hlutur óður í JavaScript sem er mjög ólíkt C
er að virka getur að meðhöndla eins og gildum.
Þannig að við getum gert eitthvað eins og hér þar sem ég býst við að ég ná þessu up--
Ég tekur upp VAR summan part-- og ég sagði bara
virka XY jafngildir aftur x plús y.
>> Það er það sem væri kallað nafnlaus aðgerð.
Það er aðgerð án heitis.
En þetta segir virka summa, bla, bla, bla,
þetta myndi bara segja virka.
En nú jafnvel þótt ég hafi þetta nafnlaus aðgerð,
sem virka er í raun bara gildi.
Við getum meðhöndla það eins og a gildi.
>> Svo við getum vistað það í breytu sem sama leið að við getum geymt 50 í breytu.
Þannig að við getum sagt, OK, ég vil breyta, það er kallað summa,
og það er þetta fall.
Svo þessir tveir hlutir eru í raun að fara að gera nákvæmlega það sama,
en setningafræði er svolítið öðruvísi og svona skemmtilegt huga.
Já.
>> Áhorfendur: Svo þú gætir hringt a fall sem var nafnlaus með því að segja,
summa sviga 2, 5?
HANNAH Blumberg: Já.
Þú getur hringt þetta nafnlaus virka á sama hátt.
Þú vilt gera SUM (2, 5) ;.
Það væri algerlega í lagi.
>> Ef ég gerði það ekki Var Summa jafngildir virka, ef ég eyddi bara
this-- Ég veit að það er á minni hendi, en þykjast Ég eyddi this-- þá
sem virka er eins konar bara farið.
Þú getur aldrei notað það aftur vegna þess að þú ert ekki með nafn fyrir það.
Það er erfitt að vísa í eitthvað þú veist ekki hvað ég á að kalla.
Góð spurning.
Já.
>> Áhorfendur: Getur þú vísað summan í öðrum stöðum með verðmæti x plús y?
>> HANNAH Blumberg: Getur þú tilvísun summa í öðrum stöðum
með gildi x plús y?
Ég er ekki alveg viss um hvað þú átt við.
>> Áhorfendur: Svo fortíðina hálf-nafnlaus virka er summan jafngildir þetta
nafnlaus aðgerð, svo er summan nú breyta sem þú can--
HANNAH Blumberg: Hægri.
Svo er summan breytan, en það er actually--
svo er summan breytilegt sem gildi er hlutverk.
Svo er það fall, sem er eins konar a furðulegur hlutur að vefja höfðinu í kring
þar sem við höfum verið að spila með C og þú getur ekki gert það í C.
En nú getum við hringt summa sem sama hátt og við gætum hringt summan hér.
Áhorfendur: OK.
HANNAH Blumberg: Já.
Góð spurning.
Já.
>> Áhorfendur: Svo við notum ekki frumgerðir í PHP eða JavaScript?
HANNAH Blumberg: Nei, við þarf ekki að nota frumgerð,
sérstaklega í JavaScript.
Svo einn slæmur siður sem ég er að fara að segja að þú ættir ekki að gera
er að þú þarft ekki að skrifa VAR I = 50.
Þú getur bara byrjað að gera i = 50.
Og vildi bara gera ég alþjóðlegt breytu.
>> Það er mjög slæmt starf til aldrei segja explicity Var i,
en það er eitthvað sem þú getur gert.
Túlkurinn er ekki að fara að æpa á þig.
JavaScript er nokkuð eins, þú getur gert það sem þú vilt.
Ó fyrirgefðu.
Það er tveir.
Í appelsínugulum buxum.
Gjörðu svo vel.
>> Áhorfendur: Nei, þú ferð fyrst.
>> Áhorfendur: Nei, ég var bara að segja Ég hafði ekki hönd mína.
OK.
Svo ef þú varst að hringja að í fyrsta skipti, nú summa,
við köllum það á sama hátt, x, Y, eins hvert einasta skipti?
HANNAH Blumberg: Já.
Svo þessir tveir meginatriðum gera það sama.
Áhorfendur: Og hvað er kostur þess að nota einn eða annan?
HANNAH Blumberg: No kostur þess að nota einn eða annan.
Ég vildi bara að sýna þér tvo mismunandi stykki af setningafræði.
A einhver fjöldi af sinnum þar nafnlaus aðgerðir gera hafa tilgang
er ef rök til annars Eftirlit skal vera fall.
Og við munum sjá að í bara annað með Ajax.
>> Þannig að ef það var ekki að gera allir skilningarvit, geyma það í hnakkanum.
Það er þar sem nafnlaus virka gæti verið gagnlegt
vegna þess að það er í raun ekki þess virði gefa það a nafn þar sem við erum bara
að fara að nota það einu sinni.
Já.
>> Áhorfendur: Ef x og y breyta síðar á, mun summa breytast eins og heilbrigður?
HANNAH Blumberg: Ef x og y breyting seinna, munt summa breytast eins og heilbrigður?
Svo er þetta reyndar held eitthvað sem er,
aftur, finnst það bara mjög mismunandi frá C. Þetta er ekki gildi.
Það er ekki 5.
Það er bara virka sjálft.
Svo um leið og þú gefur það breytur, þá munt þú í raun að reikna gildi.
>> MARIA ZLATKOVA: Og þá þú getur hringt í aðgerð
og nota það til að fá smá gildi.
HANNAH Blumberg: Hægri.
Nákvæmlega.
Já.
>> Áhorfendur: Svo ef þú bara geyma það í breytu,
eins var x jafngildir summu tveggja values--
>> HANNAH Blumberg: Já.
Svo þú gætir bara gert VAR summan jafngildir summu tveggja gilda.
Já.
Aðrar spurningar?
Já.
>> Áhorfendur: En væri það rugla summu og summu?
Eins og ef þú kallar breyta upphæð þitt, myndir þú kalla virka summu?
HANNAH Blumberg: Mm.
Mm.
Ef þú gerðir eitthvað eins og, summa jafngildir summan 2, 5?
>> Áhorfendur: Já.
>> HANNAH Blumberg: Ég tel að myndi skrifa verðmæti summa.
Svo annað áhugavert hlutur óður JavaScript
er að einn breytu getur tekið á fullt af mismunandi gerðum.
Bad æfa.
Þú ættir ekki að gera eitthvað eins og það sem þú sagðir.
>> En í C, ef ég er sett jöfn heiltala,
við vitum að það er aldrei fara að verða band.
Þetta er ekki raunin í JavaScript.
Já, góð spurning.
Eitthvað annað?
Allt í lagi.
Gera allt rétt á réttum tíma.
Gæsla fara.
Allt í lagi.
>> Ef við lítum á fjölda í JavaScript, hér er
a fljótur dæmi af fjölda strengi.
Og fylki geta vaxið mjög virk.
Þeir hafa ekki fastur stærð á sama hátt
sem þeir gera í C. Við getum nálgast það þætti með aðeins hornklofum.
>> Sem lítur mikið eins og PHP og mikið eins og C, þar sem við getum sagt, í þessu tilfelli,
ef ég vildi orðið JavaScript, myndi ég ekki Arr hornklofa með 0, 1, 2.
Og svo ef þú manst í C þegar við vildi fá lengd fylki,
það var mjög pirrandi.
En í JavaScript, frábær auðvelt.
Allt sem við gerum, .length.
Gefur það lengdir.
Það er það.
>> Áhorfendur: Það er einfalt.
>> HANNAH Blumberg: Já, gerir líf þitt mun auðveldara.
OK, object-- ekki þar.
Hlutir í JavaScript feel a einhver fjöldi eins structs í C
og tengin fylki í PHP.
Svo það sem við höfum séð mikið af er JSON, sem
stendur fyrir JavaScript Object Ritháttur.
Og það er í grundvallaratriðum leið uppbyggingar gögn okkar.
>> Svo skulum sjá dæmi, sennilega auðveldasta.
Svo er hér dæmi um hlut sem geymir bekknum, CS50.
Og þegar ég segi bekknum, ég meina auðvitað, ekki like-- já, að sjálfsögðu, CS50.
Og þú munt sjá að allt í hlut
er að fara að vera að finna í hrokkið axlabönd.
>> Og við byrjum að tengja sviði nöfn eða lykla með mismunandi gildum.
Svo þú getur byrjað að sjá hvernig þessu tagi finnst eins og tengin array í PHP.
Þannig að við erum að fara að tengja á sviði eða lykillinn nafn, auðvitað, með band,
CS50.
>> Við erum að fara að hafa leiðbeinanda.
Við erum að fara að hafa TFS.
Við erum að fara að hafa fjölda psets og við erum að fara að hafa skráð.
Og einn kaldur hlutur að hafa í huga er allt þetta hafa mismunandi gerðir,
og það er algerlega fínt.
>> Það er allt í lagi fyrir hlut, í raun, það er sennilega gert ráð fyrir hlut
að hafa samsetningu af strengi og tölur og Booleans og fylki
og hvað annað sem þú gætir vilt hafa inni hlut þinn.
Og athugið að þetta er að fara að vera heiti eða lykla, og þá erum við bara
setja það jafnt með smá ristli.
>> Áhorfendur: Hvað nákvæmlega er JSON meina?
HANNAH Blumberg: Hvað nákvæmlega er JSON meina?
JSON stendur bara fyrir JavaScript Object Ritháttur.
Það er bara leið til að forsníða.
Já.
Það er leið til að forsníða gögn okkar.
>> Í C er það structs.
Í PHP, það tengin fylki.
JavaScript, höfum við hluti.
>> Áhorfendur: Svo er CS50 hlut?
HANNAH Blumberg: CS50 er hlut í þessu tilfelli.
Nú, hvernig við í raun aðgang þessir reitir eða breyta þeim sviðum.
Segjum til dæmis að við ákváðum að þú vildir einn færri pset þessa önn.
Í stað þess að níu, við erum bara að fara að hafa átta.
Hvernig myndum við breyta því?
>> Oh, röng leið.
Það eru tvær leiðir sem við getum gert það.
Númer eitt er með punkti merki og númer tvö
er með hornklofi tákn.
Svo, til dæmis, ef ég vildi breyta eða aðgang
sem psets sviði í CS50 hlut okkar, það sem ég myndi gera er að CS50.psets,
svo nafn á hlutnum punktur nafn þess eða þeirra takkanum.
>> Mjög álíka, það er nákvæmlega jafngildir gera CS50, og þá
í hornklofa, psets.
Cool?
Já.
>> Áhorfendur: Svo er JSON tæknilega JavaScript enn,
jafnvel þó í psets við aðskilja hana út [inaudible]?
HANNAH Blumberg: Jú.
Svo spurningin er, eru JavaScript og JSON jafngildi?
Svo er JSON merki, í grundvallaratriðum á þann hátt að við að skrifa út
hlut frá JavaScript.
Svo þeir eru ekki nákvæmlega það sama.
>> Ég myndi segja JavaScript, það eru hlutir í JavaScript.
JSON tekur þá hluti og prentar þá og birtir þær
eða geymir þær í a ágætur vegur.
Svo er JSON ekki forritun Tungumál á þann hátt að JavaScript er.
Það er bara merki um hlutir okkar í JavaScript.
Já.
>> Áhorfendur: Og hvað nákvæmlega [Inaudible] ljúka?
HANNAH Blumberg: Jú.
Svo þetta er í raun gerir ekki neitt.
Þetta er bara leið til að fá aðgang.
Svo skulum segja að við vildum breyta fjöldi vandamál setur
frá níu til átta.
Hvað við gerum er að gera eitthvað eins CS50.psets = 8 ;.
>> Já, frábær spurning.
Þetta er bara til að sýna þér setningafræði.
Ekki í raun að gera neitt gagnlegt.
Einhverjar spurningar?
Flytja rétt eftir.
>> Svo skulum líta á a fljótur dæmi um hvernig JavaScript virkar vegna þess að ég sagði þér það
gerir allt þetta kaldur hlutur og gerir okkur kleift að breyta vefsíðum.
Við skulum sjá það í raun í aðgerð.
Svo taka, til dæmis, þetta HTML skrá.
>> Og það sem ég vil að þú að leggja áherslu á er Þetta tiltekna tag, sem er hnappur,
með id search_button.
Það er bara á síðunni.
Svo nú skulum sjá hvað við getum í raun gert.
>> Jæja, ætla þegar þú smellir á hnappinn,
við viljum gera alert-- þú smellir á hnappinn.
Við skulum sjá hvernig við getum gert það.
Svo window.onload-- þetta er ekki eitthvað sem þú hefur séð í bekknum, því
þarft ekki að vita það fyrir próf.
En þetta í rauninni segir, OK, kalla Þessi aðgerð þegar gluggi opnast.
>> Svo er það bara svona setup kóða.
Ekki hafa áhyggjur svo mikið um það.
Það sem ég vil að þú að leggja áherslu á er hér.
Við segjum Var searchButton jafngildir document.getElementById search_button.
>> Svo eins og þú might giska, hvað þetta gerir er að það segir,
OK, fara að finna þáttur með ID search_button.
Og nú höfum við að Raunveruleg þáttur og ég er
að fara að geyma það í breyta searchButton.
Og nú getum við í raun nota þessi þáttur og breyta því, eða opna gildum,
svoleiðis.
Við getum í raun byrjað að þátt með vefsíðu.
>> Svo hér er ég að segja, OK, nú að ég hef sem hnappur, þegar það er smellt
kalla þetta nafnlaus aðgerð.
Svo er þetta þar nafnlaus aðgerðir verða gagnlegt.
Og hvað heimtar virka gera?
Jæja, það kallar bara á þessu viðvörun virka og það segir,
þú smellir á Leita hnappinn.
>> Svo hvað mun gerast ef ég fer til hvar þetta HTML býr og ég smelli á hnappinn,
Ég næ ímynda smá viðvörun sem segir að þú smellir á hnappinn.
Svo það að leggja áherslu á here-- document.getElementById
fær einkum HTML þáttur með þessu auðkenni.
Og nú getum við sett hvað ætti að gerast þegar
sem einkum þáttur er smellt.
>> Áhorfendur: Við verðum að setja allt sem í?
>> HANNAH Blumberg miður?
>> Áhorfendur: Þurfum við að líkamlega kóða allt?
>> HANNAH Blumberg: Eigum við að þurfa að líkamlega kóða allt?
Já.
Er ekki svona pirrandi?
Þetta er mikið af kóða.
>> Áhorfendur: Þú gætir flytja eitthvað.
HANNAH Blumberg: Hægri.
Við gætum notað eitthvað.
Og í particular-- ó, það er segja mér að ég verð að kenna kafla.
Einkum skulum bókasöfn jQuery,
því að það var í raun langur og mjög pirrandi
og ég vil vera fær um að einfalda það og gera það styttra og auðveldara að skrifa.
>> Svo er jQuery JavaScript bókasafn.
Svo er JavaScript forritun Tungumál; jQuery er bókasafn.
Og það gerir fullt af hlutum auðveldara.
Það gerir að breytast og fara yfir HTML skjal miklu auðveldara.
>> Það gerir meðhöndlun viðburðir auðveldara.
Það gerir hreyfimynd auðveldara og það gerir Ajax auðveldara.
Svo skulum hoppa í tveimur þessir hlutir núna.
Afsakaðu mig.
Áður en við gerum, sumir undirstöðu setningafræði.
>> Þetta er það sem flestir kalla til jQuery bókasafn líta út.
Við notum þessa dollara sign-- engin tenging merki á PHP,
bara inconvenient-- nafn a val, punktur, og þá aðgerð.
Svo skulum sjá sumir steypu dæmi um það.
>> Þannig að þetta er í raun það sama númer frá the atburður renna.
Svo verður þetta lengi, ljót hlutur þetta miklu betur, minni hlutur.
Svo skulum reyna að brjóta þetta niður.
Þetta segir, OK, jQuery-- þetta dollara sign-- jQuery, finna mér glugga.
Svo er það val.
>> Þegar það sækir, kalla þessa aðgerð.
Svo það er allt inni.
OK.
Svo langt, svo góður?
Allt í lagi.
>> Nú, jQuery, finna mig á Málið með ID search_button.
Og hvað það er smellt kalla þessa aðgerð.
Og þá er þetta aðgerð er nákvæmlega sú sama.
Bara gera smá viðvörun, þú smellir á Leita hnappinn.
>> Svo það er mjög gott.
Það þéttist í raun og einfaldar kóða okkar.
Hvernig sem ég vissi að það er ID search_button
og ekki eins og bekknum search_button?
>> Áhorfendur: Hashtag?
HANNAH Blumberg: Já.
Þetta kjötkássa tákn, það er bara eins og CSS.
Svo man, með CSS, þegar við langaði til að velja eitthvað af ID,
við notuðum pund merki.
Og þegar við vildum að velja eitthvað með bekknum, notum við punkt.
Great.
Meikar sens?
Svo jQuery er ætlað að bara gera líf okkar auðveldara.
Já.
>> Áhorfendur: Þannig að ég er svolítið ruglaður hvernig nafnlaus aðgerð virkar.
Ert þú nefna þessa anonymouse virka, virka?
Hvernig er það kallað?
HANNAH Blumberg: Jú.
Svo er virka bara leitarorð sem segir, ég er að fara að skilgreina fall.
Áhorfendur: Oh, OK.
HANNAH Blumberg: OK?
Og þá erum við að gefa það sem rök to-- skulum taka
þessi innri one-- að smella aðgerð.
Svo já, svo að virka, þetta nafnlaus aðgerð,
verður raunveruleg rök.
Svo man í JavaScript, við getur meðhöndla aðgerðir sem gildi.
Áhorfendur: Oh, OK.
HANNAH Blumberg: Já.
Mér finnst að "ó".
Nice.
Aðrar spurningar?
Time?
MARIA ZLATKOVA: Good.
Good.
>> HANNAH Blumberg: Awesome.
Sumir fljótur gagnlegt jQuery.
Ég ætla ekki að fara gegnum allt.
Þessar glærur verður upp á netinu smá
síðar, svo þú getur athugað það út svolítið síðar.
En í grundvallaratriðum, almenn mynstur heldur þar sem við segjum,
OK, hey, jQuery, hér er minn val og þá hér er aðgerð.
Og þú getur gert hlutina eins og aðgang að gildi formi, opna nokkrar HTML,
stjórna hvað gerist þegar notandi leggur form, svoleiðis.
Já.
>> Áhorfendur: Svo í próf, við erum að fara að þurfa
að vita alveg fullt af jQuery skjöl.
Svo í ljósi þess að við afrita / líma jQuery skjöl til svindlari lak okkar,
hvar er línan dregin?
Eins og hvernig margir þurfum að vita?
HANNAH Blumberg: Great spurning.
Spurningin er í raun í ljósi þess að þú
getur ekki opnað jQuery skjöl meðan á prófuninni, hversu mikið ætti þér
veit?
Við viljum ekki von á að koma upp með sumir af handahófi virka
að við myndum búast við þér að Google.
>> Hlutir sem eru sanngjörn leikur eru ég myndi segja bara svona almenna setningafræði,
vera fær um að velja með ID og eftir class-- svo bara eins og CSS.
Og þá í raun virka themself, munum við líklega segja þér.
Já.
>> Áhorfendur: Svo þegar þú velur með bekknum myndi þýða punktur.
HANNAH Blumberg: Já, einmitt.
Good.
Þegar þú velur af bekknum, það er að fara að punktur í stað breska merki.
Já.
>> Áhorfendur: Vilt þú fara yfir mismun
milli vals eftir ID og með bekknum?
>> HANNAH Blumberg: Jú.
Munurinn á milli val ID og val af bekknum.
Svo sem Maria sagði svolítið fyrr, það
getur aðeins verið einn HTML þáttur með þessu auðkenni, en tegund,
það gerir okkur kleift að flokka fullt mismunandi þætti saman,
svo hlutir sem eru tengdar, en ekki nákvæmlega það sama.
Er að svara spurningunni?
Awesome.
Já.
>> Áhorfendur: Hvað ef þú ert með marga það sem er í sama flokki?
>> HANNAH Blumberg: Hvað gerist ef þú ert með marga hluti sem
eru þau sömu Class?
Svo, til dæmis, ef við erum bara með hreint JavaScript,
við myndum gera eitthvað eins og document.getElementsByClass.
Og þá hvað það raunverulega hjartarskinn er ávöxtun fjölbreytta þætti.
>> Og þú þarft að annaðhvort kunnugt um þá eða finna hver sem þú vilt.
Það er ekki að fara að gefa þú einn þáttur.
Það er að fara að gefa þér fjölbreytta þætti.
Frábær spurning.
Eitthvað annað?
Awesome.
>> Þannig að ég held að ef þú ert kunnuglegur með allir jQuery þú sást í pset,
þú ættir að vera gott að fara.
Spurning?
Ó nei.
Ég hef í raun að kenna.
Relax.
Það verður allt í lagi.
Ég þangað.
>> Við skulum tala um Ajax.
Svo Ajax er að fara að vera a-- vel, skulum byrja með það sem það stendur fyrir.
Það er skammstöfun.
Það stendur fyrir ósamstilltur JavaScript og XML.
Og XML er í grundvallaratriðum er að fara að vera [Inaudible] með gerð gögn okkar.
En við höfum ekki í raun notað XML.
Þess í stað notum við bara JSON.
>> Svo í rauninni, það er sumir data-- ósamstilltur, JavaScript, og gögn,
í þessu tilfelli, JSON.
Og markmið okkar, eins og við getið svolítið fyrr,
er að vera fær um að gera beiðni, hafa að beiðni gera
hlutur hennar í bakgrunnur, en halda áfram
gera hvað við vorum ætlaði að gera.
Og þá er þegar tilbúin, þá munum við fella hana.
>> Svo skulum sjá hvað þetta reyndar lítur út.
Og þetta, ættir þú að vera svolítið kunnugleg
frá pset8, sá sem þú snúið bara í.
Svo hér er gild jQuery fall sem við gætum
langar að vita about-- þessum dollaramerki.
Svo það segir jQuery virka, .getJson.
>> Og hvað þessi aðgerð gerir er það tekur slóðina og sumir parameters--
svo ég held að í tilfelli af pset8, það var eins og,
URL var articles.php og breytur var að fara = nokkur póstnúmer.
Og það segir, OK, leggja fram beiðni til þetta URL með gefið breytum.
Og það bara gerist.
>> Þegar henni er lokið, það er annað hvort fara til að ljúka
eða það er að fara að mistakast.
Svo er þetta jafngildir símtali Rob og biðja hann að gera eitthvað.
Og svo þegar hann kallar til baka, hann er annað hvort að fara að segja að ég er búin eða ég ekki.
>> Svo er að ræða þar sem þú ert gert, segir þú, OK, ég er búin.
Og þá þú kalla þessa aðgerð.
Í þessu tilfelli, það er að fara til vera a fall sem tekur nokkrar upplýsingar.
Sá sem við hugsa yfirleitt um gögn, gögn sem við vorum í raun aftur
sem afleiðing af starf .getJSON.
>> Og þú getur gert eitthvað við það.
Þannig að um er að ræða pset8, Við birtum það í lista.
Fail er að fara til vera a fall sem er kallað ef beiðnin ekki
fyrir hvað sem ástæða.
Og um er að ræða pset8, við console.log bara það.
Einhverjar spurningar um það?
Já.
>> Áhorfendur: Er hægt að nota bara virka þeta í stað þess að virka, textStatus, jqHXR.
HANNAH Blumberg: Jú.
Svo já, ég held í pset, við sáum bara virka gögnum.
Svo það er bara the-- já, OK.
Það er það sem við sáum í pset.
Það er algerlega fínt.
>> Þetta eru bara ef þú vildir að draga út fleiri upplýsingar,
þetta eru hlutir sem þú gætir fengið frá .getJSON.
Góð spurning.
Eitthvað annað?
Já.
>> Áhorfendur: Svo .getJSON er Ajax?
HANNAH Blumberg: OK.
Svo er þetta eins konar erfiður hluti.
Það er jQuery aðgerð sem gerir þú að gera ósamstilltur símtöl.
Og þeir ósamstilltur símtöl, það er það sem við höfum verið að vísa til sem Ajax.
Já.
Það tók mig mjög langan tíma að draga í sundur þegar ég var nemandi.
Áhorfendur: Getur þú sagt það aftur?
HANNAH Blumberg: Já.
Get ég sagt það aftur?
Þessi .getJSON virka, það er jQuery virka.
Og það er að fara að gera ósamstilltur kalla.
Og þessar ósamstilltur símtöl, höfum við verið að vísa til þeirra sem Ajax.
>> Aðrar spurningar?
Við höfum bara nokkrar mínútur eftir.
Og Maria er að fara að sett upp með öryggi
og þá erum við að fara að vera bara um að gera.
MARIA ZLATKOVA: Awesome, OK.
Þannig að þetta is-- bara taka a par hvað á að líta yfir þetta.
Og þetta er ekki eitthvað mjög mikill.
Og getur einhver sagt mér hvers vegna?
Hvað er að gerast í foo og maí gæti hugsanlega leitt eitthvað slæmt,
og hvað það er kallað?
Já.
Áhorfendur: Ef rök sem er samþykkt í er meira en 12 stafir,
það gæti flæða.
MARIA ZLATKOVA: Hægri.
Perfect.
Hvað er það kallað?
Þú nefndir bara það.
>> Áhorfendur: Buffer flæða.
>> MARIA ZLATKOVA: Yup, biðminni flæða.
Svo er þetta eitthvað sem við vísa til sem yfirflæði.
Og við sjáum að inni foo, við höfum skilgreint biðminni okkar, c,
með stærð sem 12.
Hins vegar í meginatriðum eigum við ekki athuga á nokkurn hátt á öllum
hvort argv1-- svo sem var annað rifrildi.
Við stöðva ekki hvort stærð það er rétt.
>> Svo ef við hefðum sérstaklega illgjarn notandi
sem setja inn rök sem var lengur en 12, og þá hugsanlega
utan við mörk af því rök, fengum inningarkóða
að hann var að reyna að gera eitthvað slæmt með því; þá er þetta, hvað myndi gerast,
myndi hunsa aftur heimilisfang foo virka,
sem veldur því að virka til að þegar aftur til að framkvæma þessi númer.
Og þá slæmur hlutur getur gerst.
Er þetta skynsamleg alla?
>> Og hvernig getum við vernda gegn þessu?
Allar uppástungur?
Í grundvallaratriðum, inni hugsanlega foo, hvernig
getum við stöðva til tryggja að það getur ekki gerst?
>> Áhorfendur: Ef stærð 12 er farið, þú vildi úthluta fleiri minni?
MARIA ZLATKOVA: Uppástunga er, úthluta viðbótar minni stærð yfir.
Reyndar getum við gert eitthvað mikið einfaldara en það sem vel.
Við getum bara fá band lengd af þeim rökum að er gerður,
athuga hvort það er minna en eða jafnt og 12--
sem er það sem við viljum það að vera vegna þess að við viljum ekki
það að fara yfir mörk biðminni okkar.
Og þá ef það virkar ekki, við geta unnið með rök.
Og þá ef það gerist, við viljum í raun og veru til að Yello hugsanlega á notanda.
En þetta er hvernig við viljum gera það.
Já.
>> Áhorfendur: Gætirðu útskýra memcpy raunverulegur fljótur?
MARIA ZLATKOVA: Ó, fyrirgefðu.
Já.
Memcpy tekur hvað is-- miður, OK.
Memcpy tekur hvað er í bar, hvað er liðinn
á foo sem stjórn lína rifrildi.
Svo það er að fara að taka argv1.
Argv1 heitir bar hér.
Svo það er að fara að taka bar og það er að fara að afrita það inn c.
>> Áhorfendur: OK.
MARIA ZLATKOVA: Og það er að fara að copy-- þriðja rök átt rétt
að hversu mikið það er að fara að afrita inn c.
Áhorfendur: Ah.
Svo að afrita þessa manns allt það þá.
>> MARIA ZLATKOVA: Já, það er að afrita allt það.
Jebb.
Fyrst, við að tryggja að bar er ekki jafnt á núll vegna þess að það er bendi.
Þá fáum við strenginn lengd bar.
Við að tryggja að það sé minna en eða jafnt og 12.
Og þá vegna þess að við höfum gerði viss um, getum við í raun
memcpy og vera viss um að það er í lagi.
Einhverjar spurningar?
Great.
Ég hef tvær satt eða ósatt spurningum.
Getur einhver sagt mér strax ef þær eru sannar eða rangar?
Já, það er ósatt.
Nákvæmlega.
Báðir þeirra eru rangar.
Svo nota eitt lykilorð er aldrei mjög góð hugmynd
því ef einhver veit lykilorðið þitt, þeir geta bara
nálgast allar aðrar reikningana.
Og þá tákn ekkert gert til að tryggja öryggi.
Við ættum að líta yfirleitt fyrir HTTPS stað HTTP og vefslóð.
>> Og nokkrar aðrar gerðir af árásir sem við hefur minnst á,
að Davíð hafi nefnt í fyrirlestur, SQL innspýting árásir.
Við sáum þegar að ef við don't-- á CS50 fyrirspurn virka gerir viss um að SQL
innspýting árásir geta ekki átt sér stað.
En ef við vorum ekki að nota CS50, vitna, unquote "í fyrirspurn,"
yrðum við að ganga úr skugga um að notandi inntak er í raun ekki nokkur SQL
fyrirspurn sem mun valda öllum töflur okkar til að vera niður
eða eitthvað slæmt að gerast með hjá okkur.
>> Session ræna er annar tegund af árás
sem gerist þegar slæmar maður notar fundur sumir fórnarlambsins
ID til að fá aðgang tenging upplýsingar.
Svo mjög léttvæg dæmi um það er eins og ef við höfum opinber tölva,
þá slæm manneskja skráir sig og þá þeir hafa smákökur sem eru vistuð.
Og smákökur breytast ekki fyrir setu.
>> Þá höfum við fórnarlambið fara í og inn í viðbót.
Smákökur breytast ekki í tiltekinn fundur.
Og þá fórnarlambið skráir sig inn the website og þá skilur.
Og þá sá sem fer aftur getur þá samt notað fundur ID þeirra
að nálgast upplýsingar þeirra.
Svo er það eitt dæmi um hvernig það gæti gerst.
>> Og þá myndi ég ekki hafa áhyggjur of mikill um ákveðna kóða eða neitt
svona sem gæti valdið þessu, en hafa einhverskonar hugmynd hvað
breytur sem taka þátt í þessu eru.
Og þá notfæra haus gögn er annar tegund af árás
sem hefur David hefur talað um.
Og það vísar bara til hvað getur gerst þegar
svar, HTTP Viðbrögð inni haus okkar
er ekki sótthreinsa almennilega.
>> Og eitthvað af fields-- td ef einhver birtist einn af haus
gildi að innihalda neitt meira en hvað þeir ættu contain-- og raun
innihalda, til dæmis, 200 OK stöðukóði, þá
gæti hugsanlega gert illgjarn það þegar þeir eru ekki að.
En ég myndi ekki hafa áhyggjur of mikið um tiltekna kóða
sem gæti valdið þessu, bara svona skilning
háttsettum svoleiðis.
>> Ég held að þetta sé allt að við verðum að ná.
Amazing.
Einhver hefur einhverjar spurningar um eitthvað af því að við falla?
Já.
>> Áhorfendur: Svo einn svoleiðis meira skipulagningar spurning.
Er efni aðallega beinst á það eftir spurningakeppni 1?
>> MARIA ZLATKOVA: So Spurningin er, er efni
áherslu aðallega á það eftir spurningakeppni 1?
Svo er áhersla á eftir quiz 1, að undanskildum
að við þurfum að leggja áherslu á hluti í pset5 og mikið af gögnum mannvirki
að við falla.
Og við getum ekki sagt að við getur hunsa neitt áður
að vegna þess að það byggir á það eins og heilbrigður.
>> Svo leggja áherslu á það, auk pset5 efni eins þ.mt tengd listum, stafla,
biðraðir og allt sem Hannah fór yfir.
>> HANNAH Blumberg: Hægri.
Já, fórum við yfir allri C efni Í upphafi mjög fljótt.
En vertu viss um að endurskoða það.
Fara til baka og horfa á quiz 0.
>> A par meira skipulagningar athugasemdum, bara á meðan við höfum athygli þína.
Við erum að fara að hafa skrifstofutíma bæði á mánudag og þriðjudag.
Þeir eru að fara að vera í MD 119.
Þetta er allt á vef, þannig að ef þú heyrir það, engar áhyggjur ekki.
>> MARIA ZLATKOVA: 08:30 til 11:00.
>> HANNAH Blumberg: Já, 08:30 til 11:00.
Við munum vera þar.
Við munum vera þar til að svara spurningum.
Það er nokkuð slappað og gaman.
Þú krakkar geta spyrja spurninga sem þú ert með á spurningakeppni 1.
Og quiz 1 er á Miðvikudagur, svo gangi þér vel.
Ef þú hefur einhverjar spurningar, kannski koma að tala við okkur hér einn-á-einn.
Cool.
Kærar þakkir.
>> MARIA ZLATKOVA: Takk kærlega, krakkar.
>> Áhorfendur: Yay.
>> [Applause]