[Powered by Google Translate] [Week 7, Sambungan] [David J. Malan, Universiti Harvard] [Ini adalah CS50.] [CS50.TV] Semua hak. Selamat Balik. Ini adalah CS50, dan ini adalah akhir 7 minggu. Jadi salah satu daripada perkara-perkara ini bodoh sedikit yang berlaku di sekeliling Internet dan kita slurped, dan ia kini perlu membuat sedikit rasa geeky kepada anda. Nah, ia adalah funnier kepada lelaki ini daripada ia adalah untuk anda semua. Bercakap, baik, lelaki, hari ini adalah hari jadi Nate. Untuk memberi anda rasa Nate betapa baik dan saya pada pembangunan web berdasarkan kelas Isnin dan berdasarkan sekarang ini, Saya fikir saya akan tarik sehingga halaman rumah Nate, jika anda tidak pernah melihat lagi. Ini HTML di sini ia Nate. Jadi melihat kod sumber beliau jika anda ingin melihat bagaimana untuk melakukan ini, dan Nate, jika kita boleh memalukan anda hanya secara ringkas, kakitangan mendapat anda sesuatu yang sedikit jika anda ingin berkongsi beberapa pencuci mulut dengan beberapa kanak-kanak di dalam kelas di sini. Jika anda ingin datang atas ke bawah. Anda semua memuji dan sangat bagus, tetapi tiada siapa yang duduk di mana-mana sahaja berhampiran Nate, untuk sebab-sebab tertentu, dalam zon belakang itu. Jadi mungkin anda boleh mencari beberapa orang untuk menikmati ini dengan. Happy Birthday, Nate. Hellos tambahan: Kami menunjukkan klip beberapa daripada pelajar CS50x kami. Jika anda mahu untuk melihat siapa lagi ia adalah di dunia yang berikut bersama-sama, anda boleh pergi ke URL ini, di mana Yusuf, salah satu TFS kami, telah meletakkan bersama montaj pelbagai semua orang yang telah mengemukakan video ini, di kalangan mereka Rick Astley. Dan jika anda menatal ini, ia adalah benar-benar agak inspirasi untuk melihat kepelbagaian negara-negara dan bandar-bandar dari mana orang yang memuji. Jadi jika anda ingin mengambil melihat pada itu, yang akan melalui akhir semester. Hari ini kita terus melihat kami di Web, pengaturcaraan web, HTML dan sebagainya, dan kita juga telah makan tengah hari yang akan datang Jumaat ini jika anda ingin, dan khususnya, telah tidak berbuat demikian sebelum. Tema Jumaat ini akan menjadi hari jadi Nate, jadi jika anda ingin mempunyai makan tengah hari ulang tahun dengan Nate dan lain-lain, beberapa rakan-rakan kami dari Industri, sila menuju ke URL yang sana. Angkasa, seperti biasa, adalah terhad. Juga, jika anda terlupa, menyedari bahawa minggu depan adalah tarikh akhir untuk masalah menetapkan memburu penyapu jalan 4, mana selepas pulih semua mereka JPEG dari card.raw, anda dan rakan-rakan seksyen anda, jika anda mahu, boleh cuba gambar sebagai banyak saintis komputer dari kad memori yang mungkin, dan anda dan seksyen anda kemudian akan memenangi hadiah yang hebat. Merujuk kembali kepada spesifikasi pset 4 sebagai apa yang mengemukakan dan apabila. Juga, jika anda ingin mempunyai perbuatan anda diabadikan di laman web dan kursus sejarah pakaian, tahu bahawa anda dialu-alukan sekarang untuk mula mengemukakan reka bentuk bagi tahun ini T-shirt dan sweatshirts dan sebagainya. Kami akan melakukan yang terbaik untuk memasukkan seberapa banyak yang kita boleh, tetapi kita akan mempunyai beberapa ahli kajian kakitangan semua reka bentuk untuk memastikan mereka selaras dengan spesifikasi, dan kita kemudian memilih umumnya segelintir daripada mereka hendaklah dipamerkan. Jadi jika anda adalah jenis reka bentuk, hanya tahu bahawa keperluan untuk grafik PNG, sekurang-kurangnya 200 DPI, mereka tidak harus lebih daripada 4000 x 4000 piksel, dan tidak lebih daripada 10 MB, tetapi anda dialu-alukan untuk menggunakan perkara-perkara seperti Photoshop atau GIMP atau pelbagai program grafik, apa sahaja yang anda mempunyai sekurang-pelupusan anda. Juga di ufuk adalah projek akhir. Projek akhir benar-benar adalah kemuncak 50, mana semua tugasan dalam kursus, ia adalah peluang anda benar-benar melakukan perkara yang anda sendiri. Dan yang boleh semata-mata untuk melakukan sesuatu untuk suka-suka, ia boleh menyelesaikan beberapa masalah yang mendesak kumpulan pelajar anda mempunyai, untuk beberapa laman web baru, beberapa mekanisme koleksi baru untuk data. Ia boleh menjadi satu aplikasi mudah alih untuk Android, IOS. Betul, langit adalah had, dan lebih beberapa minggu akan datang, seperti yang kita peralihan dari C ke bahasa-bahasa peringkat tinggi seperti PHP dan JavaScript, anda akan mendapati diri anda semakin berjinak dengan beberapa teknik sebenar dunia, beberapa alat dunia sebenar, dan untuk menambah bahawa, tahu bahawa kursus ini mempunyai sejarah seminar, di mana dalam tempoh beberapa minggu akan datang, beberapa tenaga pengajar dan rakan-rakan kita dari di kampus akan menawarkan seminar pilihan yang pergi di atas dan di luar apa yang biasanya dilakukan dalam seksyen untuk memperkenalkan anda kepada perkara-perkara seperti pengaturcaraan Android, untuk memperkenalkan anda kepada perkara-perkara seperti IOS pengaturcaraan atau lebih maju teknik pembangunan web. Ada sejarah keseluruhan ini sudah talian. Jika anda pergi ke cs50.net/seminars, kita telah melakukan ini untuk agak beberapa tahun, dan anda akan melihat bahawa diarkibkan di sini dengan PDF dan video dan sebagainya adalah video beberapa dozen seminar. Tahun lepas, misalnya, kita mempunyai satu seminar pada Acing temuduga teknikal anda, jika anda sebenarnya mencari untuk pergi dan melakukan persembahan magang atau sepenuh masa. Windows mudah alih pembangunan, pembangunan Android, Google Maps, API, CSS, membangun untuk BlackBerry, Emacs. Betul, anda dialu-alukan untuk melihat di mana-mana seminar ini mengikut keselesaan anda. Dan kita akan memegang beberapa orang yang baru semester ini, serta. Jadi apakah hadapan dengan projek akhir? Well, pertama, walaupun tarikh ini adalah agak berlaku, ini adalah benar-benar hanya satu peluang untuk mula berfikir tentang projek akhir agak realistik. Kita tahu hanya permulaan beberapa daripada apa yang kita masih akan meliputi dalam perjalanan, HTML, PHP dan sebagainya, tetapi anda semua biasa dengan web, dan saya bias perbualan ini ke arah Web hanya kerana kebanyakan orang akhirnya melakukan berasaskan web projek akhir, tetapi itu tidak bermakna yang diperlukan. Menggunakan C adalah halus, Objektif C, Jawa, mana-mana bahasa lain yang anda mungkin tahu atau tidak mahu tahu agak halus. Tetapi untuk mendapatkan jus yang mengalir pada mulanya, kita akan mengharapkan penyerahan sebuah preproposal yang, setiap PDF di laman web, yang kini berada di cs50.net, dan di sebelah kiri atas anda akan melihat projek akhir adalah spesifikasi untuk projek akhir, dan di sana adalah butiran pada preproposal dan sebagainya. Ia cukup banyak bisul ke e-mel kepada rakan-rakan pengajaran anda hanya untuk menyerang sehingga perbualan dengan dia atau dia tentang apa yang anda fikirkan. Di On projects.cs50.net adalah repositori idea daripada orang di kampus jika anda sedang bergelut untuk tampil dengan beberapa idea, dan manual.cs50.net/APIs adalah repositori pautan kepada API. Apa, walaupun, adalah API? Apakah API? Saya telah berkata ia sekurang-kurangnya dua kali, mengikut transkrip beberapa minggu yang lalu. Apa itu? [Pelajar, difahami] >> Okay, baik. Jadi sesuatu pengaturcaraan antara muka. Permohonan antara muka pengaturcaraan, dan ini boleh mengambil beberapa bentuk, tetapi apakah ini benar-benar bisul turun kepada adalah kod bahawa orang lain hs bertulis atau data yang orang lain telah mengumpul yang disediakan kepada anda dalam beberapa cara perancangan. Anda boleh menulis kod dalam C, PHP, Python, Ruby, apa bahasa pilihan anda biasanya adalah, dan anda entah bagaimana boleh membina fungsi orang lain atau orang lain set data. Sebagai contoh, jika saya pergi ke pautan ini di sini, dan anda akan melihat sepasang pautan pada halaman berikutnya di mana kita mempunyai API sendiri CS50, yang sangat Harvard-centric, dan kemudian pihak ketiga API. Antara API pihak ketiga adalah perkara yang benar-benar berguna seperti yang mampu untuk menghantar orang untuk SMS, dapat menerima mesej teks SMS dari orang-orang. Dan perkara-perkara seperti itu yang anda mungkin tidak mempunyai idea bagaimana untuk melaksanakan sendiri, tetapi terima kasih kepada perkhidmatan, beberapa, bebas dan beberapa komersial anda boleh membina di atas mereka dan melakukan sesuatu yang menarik minat anda. Antara API CS50 adalah perkara-perkara kampus-centric seperti Kursus Harvard, tenaga, acara, makanan, peta, berita, tweet dan sendiri Shuttleboy, dan ini adalah API yang melihat sesuatu yang sedikit seperti ini. Biar saya tarik sehingga API HarvardFood. Jika anda pernah ke laman web HUD, anda mungkin telah berada di sana hanya melihat apa untuk makan malam atau untuk melihat apa jam untuk beberapa d-dewan. Nah, ia tidak terutamanya mudah untuk mengemudi, dan sebagainya apa yang kita tidak sedikit masa lalu kita menulis perisian, ia berlaku dalam PHP, yang sebenarnya skrin scrapes keseluruhan laman web HUD. Untuk menyaring sesuatu mengikis bermaksud untuk menulis program dalam bahasa seperti PHP yang berpura-pura untuk menjadi pelayar, walaupun anda mungkin menghadapi pada command prompt, yang berpura-pura menjadi pelayar, menghubungkan ke laman web, memuat turun HTML, bahasa di mana ia ditulis, dan kemudian membacanya, atau lebih khusus, ia mem-parsing atas ke bawah, kiri ke kanan. Dan apa yang kita lakukan ialah kita menulis kod kami dalam apa-apa cara yang bila-bila masa kita melihat sesuatu dalam HTML itu yang kelihatan seperti sesuatu pada menu, seperti hamburger, kami kemudiannya akan mengimport ke dalam pangkalan data kami sendiri. Dan bila-bila masa yang kita lihat kandungan nutrisi, kita akan import ke dalam pangkalan data kami sendiri. Dan apa yang kita lakukan adalah memanfaatkan hakikat bahawa laman web HUD, walaupun ia mungkin sedikit cabaran bagi kita manusia untuk mengemudi di bawah hood, semua HTML yang dihasilkan oleh program komputer mereka sendiri. Jadi semua HTML mereka, walaupun ia mungkin kelihatan kemas, seperti laman web yang paling bawah hood ia mengikuti corak. Jadi kita hanya menghabiskan beberapa jam memikirkan corak yang supaya pada akhirnya, kita buang semua HTML berantakan, semua estetika menghadap berani dan italik dan sebagainya, dan apa yang kita kemudiannya mampu lakukan ialah mendedahkan bahawa data yang sama. Sebagai contoh, dalam cara ini. Jadi kita, menurut untuk dokumentasi sini, telah memaklumkan kepada dunia bahawa jika anda meminta URL yang kelihatan seperti ini, food.cs50.net / sesuatu, dan anda menyediakan parameter tertentu, yang kita akan bercakap tentang hari ini, seperti tarikh akhir masa, permulaan tarikh waktu makan, dan sebagainya, apa yang pelayan kami akan kembali kepada anda, sebagai contoh, fail CSV, koma separted nilai seperti fail Excel, mengandungi segala-galanya untuk sarapan pagi pada tarikh ini tertentu pada bulan Mac tahun lepas apabila saya berlaku untuk menulis dokumentasi ini. Bagi mereka yang biasa, CSV tidak adalah format fail sahaja. Ada satu lagi format yang lebih versatil dipanggil JSON, JavaScript Objek Tatatanda. Data boleh kembali dalam format tersebut. Jadi Fleet sini ialah bahawa sama ada anda menyelam ke dalam API ini atau mana-mana lain CS50 atau apa-apa di luar sana di Internet, atau tidak sama sekali, sedar bahawa dunia telah semakin mula menyeragamkan bagaimana mesin bergaul. Kami menggunakan standard format data seperti CSV atau JSON. Dan apakah ini bermakna bagi anda ialah anda boleh menulis bahagian yang menarik program yang membolehkan pengguna anda mencari menu makan-dewan, yang membolehkan mereka mewujudkan senarai kegemaran yang membolehkan mereka mendapat isyarat teks apabila makanan kegemaran mereka adalah kira-kira untuk berkhidmat dalam beberapa d-dewan dengan menggunakan set data orang lain dan bangunan di atas API mereka. Jadi lebih pada itu dalam bentuk seminar dan dokumentasi bahawa anda mempunyai di sini dalam talian. Jadi orang-orang, maka, adalah API. Itu membawa kita kembali ke HTML. Recap cepat. Apakah HTML? [Pelajar, difahami] Baik >>. Hiperteks Markup Language. Orang lain, apa yang Hypertext Markup Language? Hiperteks Markup Language. Okay. Jadi HTML, Hiperteks. Hiperteks hanya merujuk kepada Web, bagi sebahagian besar. Markup bermakna bahawa ia bukan sebenarnya bahasa pengaturcaraan, HTML. Ia bukan satu bahasa yang anda boleh meluahkan logik masuk Ia tidak mempunyai gelung. Ia tidak mempunyai syarat. Ia tidak mempunyai fungsi, per se. Sebaliknya, ia mempunyai perkara-perkara yang dipanggil tag, atau lebih tepat, unsur-unsur. Dan mereka mempunyai unsur-unsur tag permulaan dan tag akhir, atau tag terbuka dan tags tertutup, dan apa yang mereka tags umumnya bermakna untuk pelayar adalah, mula melakukan sesuatu dan kemudian berhenti melakukan sesuatu, walaupun terdapat pengecualian itu. Kadang-kadang ia hanya 'meletakkan satu baris di sini,' misalnya. Dan kita melihat contoh bahawa hari lain, antara menghadap berani, garis rehat, dan kemudian beberapa tag lain. Jadi HTML adalah bahasa di mana laman web ditulis. Jadi jika saya pergi ke sesuatu seperti Google.com dan tarik sehingga hanya halaman rumah mereka, ingat bahawa jika anda klik kanan atau mengawal klik dan melihat sumber halaman pandangan, biasanya ia adalah satu keadaan huru-hara lengkap hari ini di bawah hood, tetapi kerana komputer tidak mengambil berat tentang ruang putih, jadi ini tidak perlu kelihatan cantik. Tetapi jika kita mengezum masuk pada bahagian itu, melihat bahawa Chrome, hanya untuk menjadi baik, warna berkod perkara. Sesungguhnya, ini adalah tag yang sangat pertama yang kita lihat dalam laman web. Dan sekali lagi, HTML 5, versi terbaru bahasa ini, tidak mempunyai perkara ini pada mulanya, > Ya, kita telah diselesaikan sebelum ini dengan jelas memberitahu pelayar 'meletakkan baris di sini.' Dan itu kerana, sekali lagi, pelayar yang hanya akan lakukan jelas apa bahasa markup memberitahu ia lakukan, jadi walaupun anda mungkin telah melanda masukkan sekali atau dua kali atau bahkan sepuluh kali, ia akan menggabungkan semua ke dalam ruang tunggal, hanya mengikut konvensyen. Jadi, jika anda benar-benar mahu baris, anda perlu menggunakan tag br, dan kini notis, seperti hari Isnin, saya meletakkan dalam / tag ini, hanya kerana ini hanya tidak berasa hak untuk memulakan baris kemudian berhenti ia dengan apa-apa di antara. Jadi konvensyen dalam HTML adalah untuk membuka dan menutup tag serentak. Sebagai mengetepikan, anda akan melihat banyak laman web dalam buku-buku yang tidak berbuat demikian. Ia adalah betul untuk melakukan atau tidak melakukan, tetapi kita akan berhujah bahawa reka bentuk bijak dan stylistically, ini hanya lebih baik kerana tag setiap kedua-dua dibuka dan ditutup entah bagaimana. Jadi sekarang mari kita menyimpan dan menambah nilai. Kembali ke penyemak imbas, okay. Sekarang kita sedang membuat beberapa kemajuan, tetapi ia tidak agak cukup. Mari kita pergi ke hadapan dan mula menaip dalam badan beberapa lagi teks. Jadi katakan, 'A cepat coklat musang melompat atas anjing malas.' Dan sekarang mari saya hanya salin dan tampal ini beberapa kali supaya kita mempunyai satu perenggan teks. Biar saya kembali di sini. Jadi ia tidak melihat yang sangat baik. Saya mempunyai satu baris, jadi ia adalah okay, tetapi sekarang, apabila kita sampai kepada titik yang mempunyai laman web yang mempunyai banyak kandungan dan bukan hanya satu garisan untuk menunjukkan HTML, kita boleh mula untuk memikirkan perkara-perkara ini sebagai perenggan sebenar. Dan kita boleh mula untuk struktur laman web kami sedikit lebih rapi. Dan sesungguhnya, apa yang saya boleh lakukan ialah pergi di sini di dalam tag badan saya, dan anda tahu apa, jika 'Ini adalah CS50. . '. benar-benar demarks permulaan perenggan, baik, mari kita tag seperti itu. Biar saya inden teks, hanya dengan konvensyen, biarlah saya katakan bahawa perenggan ini berakhir di sini, dan kemudian bukannya baris ini, izinkan saya hanya mengatakan bahawa ini tergolong di sana dan sebagai perenggan baru, dan saya akan hanya cepat inden dengan hanya clobbering semua barangan ini. Jadi sekarang kita mempunyai perenggan dilekukan di sana, dan kini markup kita bermula untuk mendapatkan lebih sedikit semantik konsisten dengan apa yang kita cuba lakukan. Kami mempunyai perenggan, jadi mari kita memanggilnya perenggan dengan tag p. Kami mempunyai perenggan kedua, jadi mari kita memanggilnya perenggan dengan tag p. Dan sekarang, apa pelayar biasanya akan melakukan adalah sama seperti di dalam buku Bahasa Inggeris atau esei, di mana anda biasanya melihat beberapa rehat selaras antara perenggan. Pelayar akan melakukannya untuk anda secara automatik. Jadi sekarang kita mempunyai dua perenggan dan kita boleh terus ini. Tetapi, sudah tentu, di Web, apabila anda mempunyai badan teks ia tidak biasanya hanya gumpalan besar teks. Terdapat sering hyperlink di sana. Jadi, jika kita mahu, sebagai contoh, termasuk beberapa pautan di sana, menganggap apa yang mungkin kepentingan dalam apa jua laman web saya mewujudkan di sini adalah - izinkan saya pergi ke Google.com, dan biarkan saya mencari coklat cepat musang. Pergi ke imej Google, dan, bagaimana pula - ini adalah comel. Kami akan pergi dengan ini. Jadi di sini kita mempunyai coklat cepat melompat musang atas anjing malas. Jadi apa yang saya akan lakukan di sini, hanya untuk demi demonstrasi, menganggap bahawa imej ini adalah pada pelayan saya, dan saya telah mencipta imej ini. Apa yang saya hanya tidak telah klik kanan atau mengawal klik pada imej, dan apa yang anda akan lihat dalam kebanyakan pelayar adalah menu sedikit - berhenti berbuat demikian - menu kecil yang membolehkan anda untuk memilih salinan lokasi pautan atau URL salinan. Jadi biarlah saya kembali sekarang untuk HTML saya, dan menganggap bahawa saya mahu hyperlink ini ke laman web lain. Apa adalah tag yang dipanggil untuk itu? [Pelajar, difahami] >> Yeah. Jadi a href untuk rujukan hyper. Biar saya pergi ke hadapan dan tampal bahawa masuk Ia adalah URL yang agak panjang, jadi biarlah saya zum keluar. Kurungan Tutup, jadi sekarang perasan saya cara di sini kerana URL yang berlaku agak lama. Biar saya tatal ke sini untuk akhir cepat coklat musang, dan kemudian membiarkan saya menutup tag ini dengan . Jadi, segala-galanya di atas dengan warna biru adalah hanya komen. Ini adalah perisytiharan DOCTYPE saya, yang sekali lagi, anda hanya boleh menyalin dan tampal pada iman, untuk sekarang. Ini hanya memberitahu pelayar, 'Di sini datang lebih kurang 5 HTML.' Di bawah bahawa, on line 14, pertama tags sebenar saya, dan ini hanya berkata, seperti sebelum ini, di sini datang beberapa HTML, di sini datang kepala halaman saya, di sini datang tajuk, dan kemudian, sebaliknya, yang bagi tajuk, itulah ia untuk kepala. Di sini sekarang datang badan halaman saya. Jadi tag Pasangan baru sekarang: h1 bermaksud heading 1. Ada satu tradisi dalam HTML untuk bertahun-tahun kembali mempunyai saiz yang berbeza teks. Dan kembali pada hari itu, setiap satu bermakna, secara amnya, hanya besar dan berani. Tetapi ada juga h2, yang besar tetapi tidak cukup sebagai besar dan berani. Ada h3, yang merupakan jenis besar tetapi tidak hampir yang besar dan berani, dan sebagainya, sepanjang jalan ke H6. Pada hari ini, walaupun, h1, h2 dan h3 benar-benar bermakna mempunyai makna yang lebih semantik kepada mereka, mana h1 adalah benar-benar satu tajuk: tajuk laman web, tajuk lajur atau sesuatu seperti yang teks. Jadi saya sengaja berkata h1 CS50 search> h1 nyatakan jenis bahawa ini adalah benar-benar tajuk, tajuk halaman saya. Bukan tajuk dalam bar tajuk rasa, tetapi tajuk yang sebenarnya anda lihat dalam laman web itu sendiri, dalam badan. Sekarang ini, anda mungkin boleh meneka apa yang ada, walaupun kita mempunyai beberapa keping baru sintaks. Ini adalah bentuk. Jadi web benar-benar mendapat menarik apabila laman web mengambil input daripada pengguna. Dalam kelas ini, dalam masalah yang ditetapkan pada pengaturcaraan web, kita tidak akan membuat sebuah laman web, per se, dengan kandungan statik yang menunjukkan gambar-gambar yang anda telah diambil, atau ini adalah resume saya, dan perkara-perkara tentang saya, kerana perkara-perkara yang agak mudah untuk meletakkan bersama-sama. Adalah sukar untuk membuat perkara yang indah di Web, tetapi sekurang-kurangnya meletakkan kandungan adalah agak remeh. Tetapi perkara mendapatkan benar-benar menarik apabila seseorang boleh melawat laman web anda dan menyediakan input dan boleh mengisi borang, boleh menyemak kotak semak dan boleh berinteraksi dengan laman web anda. Dan sesungguhnya, mungkin setiap laman web yang anda mengambil berat tentang hari ini, secara terperinci mana-mana, entah bagaimana interaktif. Facebook, Google, dan sebagainya, yang mengambil input pengguna dan menghasilkan output disesuaikan. Jadi mari kita mulakan untuk berbuat demikian sekarang. Mari peralihan sekarang daripada hanya menggunakan HTML untuk markup kandungan statik bukannya sebagai mekanisme penyampaian untuk kandungan dinamik. Dan ke arah akhir itu, mari kita melaksanakan enjin carian kami sendiri. Mari kita melakukannya seperti berikut. Berikut adalah tag borang. Sifat tindakan menyatakan bahawa apabila pengguna mengisi borang ini dengan keyboard mereka, ia akan diserahkan ke URL ini di sini. Jadi saya jenis menipu. Ia akan membawa kita sedikit lagi daripada satu kelas untuk melaksanakan seluruh enjin carian, jadi kita hanya akan melakukan akhir hadapan, jadi untuk bercakap. Kami akan melakukan bahagian yang membolehkan carian pengguna, dan kita akan menyusun menyepak bola ke Google bahagian keras mencari hasil carian, tetapi, khususnya, saya akan bercakap kepada pelayan web Google menggunakan salah satu daripada dua kaedah yang sangat popular. Satu sedang mendapatkan, yang lain, yang akhirnya kita akan melihat, pos, walaupun ada orang lain yang kurang kerap digunakan. Jadi mendapatkan hanya conjures sehingga idea, saya mahu mendapatkan beberapa kandungan, dapatkan beberapa keputusan carian. Ini, anda mungkin boleh meneka apa yang ini tidak. Ini adalah beberapa jenis input, ia, pada hakikatnya, pergi kelihatan seperti medan teks, dan nama input itu, nama pembolehubah itu, jadi untuk bercakap, akan Q bagi pertanyaan oleh konvensyen. Dan sekali lagi, jenis input ini tidak akan menjadi kotak semak; ia tidak akan menjadi menu; ia akan menjadi medan teks seperti yang ditandakan oleh sifat ini di sini, dan ini kotak teks, seperti baris, sama ada ada atau tidak. Jadi kita mempunyai elemen kosong dengan slash dalam tag yang. Kemudian saya akan meletakkan baris, dan anda boleh, mungkin, rasa apa ini akan lakukan. Ini merupakan satu lagi jenis input borang. Yang satu ini akan digunakan untuk mengemukakan borang. Jadi ini akan menjadi butang besar bahawa pengguna boleh klik untuk menyerahkan borang, dan label pada butang yang akan menjadi 'CS50 Cari.' Borang Tutup, badan dekat, dekat HTML. Mari kita lihat apa yang kita ada dalam bentuk laman web ini. Jadi biarlah saya pergi ke pelayar saya, izinkan saya pergi, masih, untuk menjadi tuan rumah tempatan. Ini masih index.html, jadi jika saya mahu melihat fail ini dipanggil search0, Saya hanya boleh melakukan / search0.html, masukkan - dan pertama kesilapan saya. Apa yang berlaku? Saya jelas tidak mempunyai kebenaran untuk mengakses fail ini, atas sebab-sebab tertentu. Tetapi itulah kerana, tidak seperti kerja kita telah dilakukan setakat ini di C, mana program anda menulis diandaikan menjadi runable oleh anda, laku oleh anda, yang tidak benar-benar kes itu di Web, di mana kadang-kadang anda mungkin mahu untuk mencipta fail pada pelayan, tetapi anda tidak mahu seluruh dunia dapat melihat mereka. Sebaliknya, anda mahu dunia melihat beberapa fail tetapi tidak lain, hanya demi privasi ini. Jadi ia adalah lebih asas dalam memilih apabila anda melakukan perkara-perkara di Web. Dan sebagainya biarlah saya sebenarnya menaip ls sini, dan anda melihat fail-fail saya, tetapi ingat bahawa jika saya lakukan ls-l lama, Saya akan mendapatkan senarai lagi yang memberikan saya beberapa lebih banyak butiran mengenai fail yang kini, benar-benar, untuk pertama kalinya relevan kepada kita. Perhatikan bahawa di sebelah kanan jauh adalah nama-nama fail-fail saya, dan kemudian masa di mana mereka telah diubah buat kali terakhir atau disalin. Ini nombor di sini ialah apa? Adakah anda ingat? Saiz dalam bait, berapa besar fail. Jadi, saya seolah-olah mempunyai beberapa jenis logo di sini yang lebih besar daripada semua fail lain. Ini adalah siapa saya, ini adalah apa yang saya dan apa yang kumpulan saya masuk Tetapi kemudian, di sini di sebelah kiri adalah sedikit urutan samar, dan kita bercakap, saya fikir, secara ringkas tentang perkara ini pada masa lalu, tetapi ini mempunyai kaitan dengan kebenaran. Dan walaupun itulah sedikit kabur, RW mungkin bermakna membaca & menulis. Jadi ia ternyata bahawa sengkang ini menandakan set berbeza keizinan bagi orang yang berlainan. Dan corak adalah, pada asasnya, seperti berikut. Apabila anda melihat urutan sengkang di sini, mereka kelihatan seperti berikut. Ada sengkang, maka terdapat tiga lagi sengkang, maka terdapat tiga lagi, maka terdapat tiga lagi. Yang pertama adalah sama ada melontarkan atau iklan itu bagi direktori. Supaya satu adalah agak mudah. Jika ia adalah folder, ia berkata d, sebaliknya ia sempang. Ada beberapa kes lain, tetapi sekarang ini kita hanya akan mengambil berat tentang fail dan direktori. Ini seterusnya tiga sengkang - dan saya telah tiruan dimasukkan ruang. Mereka adalah, jelas, tidak ada apabila kita melihat mereka seketika lalu. Ini adalah kebenaran pemilik fail, dan ingat dari lalu kedua bahawa ia telah membaca & menulis. Itu adalah kerana saya, sebagai orang yang mencipta fail ini masa lalu, Saya, hanya dengan lalai, pada komputer Linux, mempunyai keupayaan untuk terus membaca dan menulis fail tersebut. Jadi sistem operasi hanya memberikan saya RW secara automatik. Orang-orang pertengahan berkaitan kepada kumpulan saya, bahawa pelajar, yang adalah jenis bermakna perkakas kerana saya orang yang hanya menggunakan perkakas. Jadi biarlah saya hanya gelombang tangan saya pada itu buat masa sekarang. Tetapi orang-orang yang terakhir adalah yang paling penting untuk Web. Ini adalah orang lain di dunia, dan fakta bahawa --- bermakna bahawa tidak ada orang lain di dunia mempunyai apa-apa keizinan untuk fail ini. Jelas sekali masalah, jadi saya perlu untuk menetapkan ini oleh entah bagaimana memberikan dunia apa? Membaca & menulis? Itulah mungkin bodoh, kan? Saya tidak mahu sesiapa di Web untuk pergi untuk melawat halaman saya dan entah bagaimana menukar fail tersebut, walaupun mereka benar-benar tidak boleh dengan fail HTML, tetapi hanya pada prinsipnya, mungkin hanya mahu mereka dapat membacanya. Apakah maknanya untuk membacanya? Ia tidak bermakna mereka akan mengambil berat tentang HTML sebenar, tetapi pelayar perlu mampu untuk menghuraikan bahawa bahasa markup, atas ke bawah, kiri ke kanan. Jadi seseorang di Web perlu mampu untuk membaca, jadi saya minimum perlu untuk memberikan r. Boleh saya lakukan ini dalam beberapa cara yang berbeza, tetapi mungkin yang paling mudah adalah untuk menjalankan arahan ini di sini. Chmod, perubahan mod, maka r + jadi semua semua orang, di dunia + baca, dan kemudian nama fail, search0.html. Sekarang, jika saya melakukan ls-l lagi, notis bahawa fail yang telah berubah, dan sesungguhnya, saya telah dihidupkan r untuk semua orang. Saya juga berpaling ia bagi kumpulan saya, tetapi itulah denda, kerana jika saya bertukar di atas untuk semua orang, kumpulan saya adalah subset itu. Jadi itulah denda juga. Ini hanya bermakna komputer kini telah menjadikan ia boleh dibaca. Sekarang mari saya pergi kembali ke penyemak imbas saya, klik reload. Ah-ha. Kami kini mempunyai CS50 Search. Saya telah dizum dalam sedikit tiruan - enjin carian cukup mengerikan. Tetapi mari kita lihat jika ia benar-benar berfungsi. Pertama, izinkan saya lakukan cek kewarasan cepat, biarlah saya mengawal klik dan melihat sumber halaman. Perhatikan bahawa dalam Chrome kita sedang melihat HTML yang sama bahawa saya sendiri dicipta. Tidak terkeliru di sini, walaupun. Saya tidak boleh mula menukar kod itu di sini, kerana pelayar mempunyai pandangan baca sahaja kod ini. Pelayar baru sahaja ditanya hos tempatan untuk fail yang dipanggil search0.html. Ia kini kebetulan tulen bahawa perkakas berlaku untuk menjadi pada komputer yang sama sebagai pelayar saya. Saya hanya boleh mempunyai, setara, telah ditaip dalam www.facebook.com/search0.html, dan jika Facebook mempunyai fail yang dipanggil bahawa, saya kemudian akan melihat HTML mereka. Dan, sudah tentu, saya tidak boleh menukar fail yang datang kembali dari Facebook, sama ada. Jadi sekarang kita jenis kabur garisan. Perkakas adalah kedua-dua pelayan, berkhidmat sehingga laman web, tetapi ia juga pelanggan dalam erti kata bahawa saya menggunakan pelayar untuk benar-benar bercakap dengan pelayan itu. Jadi mari kita lihat jika enjin carian Google saya bekerja. Biar saya pergi ke hadapan dan mencari untuk cepat coklat musang, masukkan. Dan Voilà, saya kini mempunyai enjin carian saya sendiri. Tetapi bagaimana ini berfungsi? Bit regangan, tetapi - dan sekarang anda tidak boleh lihat, tepat, bahagian itulah kepentingan. Perhatikan apa yang berlaku. Notis URL. Ia ternyata bahawa kaedah itu, dipanggil mendapatkan, adalah super mudah. Apabila anda nyatakan dalam bentuk yang anda mahu untuk 'mendapatkan' hasil dari pelayan beberapa, apa yang ia akan lakukan ialah mengambil apa sahaja yang anda taip ke dalam borang dan meletakkan ia dalam URL. Ia akan menyeragamkan bagaimana ia mendapat dimasukkan ke dalam URL seperti berikut. Perhatikan bahawa ini adalah URL yang merupakan nilai atribut tindakan saya. Itulah di mana saya mahu bentuk akhirnya. Tetapi kemudian notis ini tanda tanya. Ini adalah konvensyen di Web di mana untuk menyediakan input pengguna ke laman web, anda melampirkan kepada URL tanda tanya, dan kemudian anda mempunyai sekumpulan keseluruhan pasangan key-nilai. Nama kunci, atau dikenali sebagai parameter dalam Web, maka anda mempunyai tanda yang sama, maka anda mempunyai nilai parameter itu. Jadi ia adalah asasnya nama pembolehubah dan nilai yang berubah-ubah, tetapi nama dan nilai-nilai mereka pembolehubah datang dari bentuk HTML. Mengapa plus sana, adakah anda fikir? Kerana saya tidak menaip + di antara kata-kata saya. [Pelajar, difahami] >> Ya, ia adalah hanya untuk jarak. Kemungkinan adalah, apabila anda telah melihat URL, tidak pernah ada mana-mana ruang di dalamnya, jika hanya kerana jika ada, anda boleh tidak benar-benar menyalin dan tampalkannya ke IM atau ke dalam e-mel kerana ia akan memecahkan. Anda mahu segala-galanya untuk menjadi satu rentetan berdampingan aksara. Jadi pelayar adalah cukup bijak untuk menyedari, UH-UH. Jangan hanya meletakkan ruang di sana. Biar saya mengekod ruang dalam beberapa cara standard. Salah satu konvensyen untuk berbuat demikian adalah untuk mempunyai pelayar secara automatik meletakkan + mana anda sebaliknya akan mempunyai ruang. Jadi sekarang, notis Google telah jenis user-friendly. Saya pasti tidak mencipta halaman web ini, tetapi mereka telah prepopulated medan teks mereka sendiri dengan apa, tepat, saya menaip masuk Katakan saya ingin mencari untuk sesuatu yang lain, seperti anjing malas. Saya hanya boleh menaip ini di sini, carian semula. Perhatikan bahawa URL perubahan di sini, tetapi notis kemudian bahawa saya sebenarnya boleh mencari apa-apa yang saya mahu hanya dengan memahami bagaimana kerja URL. Saya boleh melakukan kucing malas, masukkan, dan notis sekarang Saya mendapat sangat malas - harus kita? Saya rasa seperti kita sepatutnya. Saya mendapat kucing yang sangat malas. Semua hak. Ini adalah salah satu perkara-perkara bodoh yang kita lakukan. Tetapi itu adalah kucing yang malas. Walau bagaimanapun, apa yang Fleet utama di sini? Sekarang kita berada jenis bermain dalam dunia HTTP. HTML adalah hanya ini bahasa markup, tag terbuka, tag penutup, yang memberitahu pelayar bagaimana untuk menjadikan kandungan pada laman web. Tetapi apabila anda mula menghantar data di Internet antara pelayar web dan pelayan, yang mana protokol ini dikenali sebagai Protokol Pemindahan Hiperteks mengambil alih. Ini adalah jenis konvensyen manusia; apabila Sam dan saya berjabat tangan pada hari Isnin, memulakan sambungan dan kemudian menutup sambungan, idea yang sama di sini. Bagaimana hasil Google datang kembali kepada saya? Bagaimana penghantaran borang saya pergi ke Google? Nah, ingat dari hari lain bahawa apa yang benar-benar berlaku di bawah hood apabila anda meminta laman web, pelayar anda menghantar mesej agak-samar seperti GET / HTTP/1.1 untuk halaman rumah lalai. Atau, dalam kes ini, kerana saya diminta secara khusus awal search0.html, ini maka akan menjadi mesej yang agak-samar bahawa pelayar saya menghantar kepada perkakas. Atau, dalam kes ini Google, apa yang sebenarnya dihantar adalah permintaan untuk / carian, dan kemudian? q = kucing malas, dengan ditambah ada. Jadi mesej ini, bahawa saya, manusia, saya tidak pernah menaip, tetapi dihantar oleh pelayar saya, ini adalah bagaimana HTTP berlaku. Ini adalah bersamaan dengan tangan kami setelah digoncang. Ini adalah permintaan, dan pelayan untuk menghantar jawapan. Jadi mari kita lihat ini di bawah hood. Seperti sebelum ini, kita boleh membuka bidang ini khas dalam pelayar. Lihat halaman, memeriksa unsur-unsur. Jadi di bawah memeriksa elemen, notis bahawa apa yang berlaku dalam Chrome, dan IE dan Firefox mempunyai mekanisme yang sama, kita mempunyai alat-alat pemaju diakses kepada kami. Orang biasa tidak menggunakan tab ini. Tetapi kita, sekarang, berminat dalam apa yang berlaku di di bawah hud di peringkat rangkaian. Jadi jika saya tarik sehingga tahap rangkaian di sini, biarkan saya pergi ke hadapan dan mengembangkan tetingkap ini, membuka entri ini di sini, dan melihat tajuk. Jadi apa yang berlaku apabila saya meminta fail dari pelayan web adalah pelayar saya menghantar sekumpulan keseluruhan perkara. Dan biarlah saya melihat sumber. Demikian di bawah header permintaan, dan ini hanya Chrome menunjukkan saya beberapa output diagnostik, jenis seperti penyahpepijat sejenis, notis bahawa apa yang saya telah diketengahkan di sini adalah tepat apa Chrome menghantar kepada pelayan untuk meminta fail yang dipanggil search0.html. Ia memberitahu pelayan apa yang difikirkan namanya, terima kasih untuk bidang ini kolon tuan rumah, maka ada beberapa barangan agak esoterik di sini, seperti melakukan sesuatu dengan tarikh dan masa, untuk melakukan sesuatu dengan bahasa yang pelayar memahami, tetapi garis yang benar-benar penting adalah kedua-dua pertama di sini. Apakah pelayan bertindak balas dengan? Nah, jika kita tatal ke bawah sini dan melihat punca perkara ini, notis bahawa pelayan telah bertindak balas dengan mesej yang agak samar serta, 304 tidak diubahsuai. Itulah sedikit pelik, izinkan saya sebenarnya cuba untuk menetapkan ini. Biar saya tahan shift dan klik reload di sini untuk memaksa pelayar untuk benar-benar membuat permintaan ini untuk kali pertama. Maka biarlah saya mengezum masuk, dan kita akan melihat kini bahawa tindak balas pelayan, kerana saya memegang anjakan, 200 OK. Jadi anda mungkin pernah melihat nombor 200 dalam konteks Web, tetapi apa yang nombor adakah anda kadang-kadang dilihat tidak disangka-sangka dari pelayan? 404, fail tidak dijumpai; 403, diharamkan; 500, ralat pelayan. Jadi terdapat kod berangka bahawa dunia menggunakan Web untuk menandakan kesilapan, sama seperti fungsi C boleh kembali kesilapan dan utama boleh kembali kod keluar. 200, walaupun, anda jarang melihat kerana ia bermakna semua adalah baik. Dan 304 anda mungkin tidak pernah melihat kerana apa yang ia menandakan? Bahawa apa-apa yang mempunyai - mari kita lihat jika kita boleh meniru ini lagi - Oh, sekarang ia tidak bekerjasama. 304 berkata tidak diubah suai, jadi mengapa pelayan walaupun bertindak balas? Nah, untuk kecekapan, pelayan web secara automatik untuk anda, jika fail tidak berubah, ia tidak akan menghantar semula keseluruhan fail HTML. Ia hanya akan memberitahu pelayar ia telah tidak berubah. Hanya menggunakan salinan anda sudah mempunyai. Jadi ada idea ini caching pada Web prestasi, supaya anda tidak membuang masa dan bandwidth sisa memuat turun fail sekali lagi dan sekali lagi tidak perlu. Tetapi, kini, laman web ini adalah super mudah, dan ia hanya menunjukkan kepada saya HTML yang datang kembali. Mari kita sebenarnya menggunakan tab rangkaian sekarang untuk melakukan carian Google seperti cepat coklat musang. Mari saya kemudian klik CS50 carian, dan sekarang, notis di bawah sini sekumpulan keseluruhan barangan pulang kerana apabila saya melawat laman web sebenar seperti Google.com, mereka mempunyai imej, mereka mempunyai teks, mereka mempunyai bahasa yang dipanggil JavaScript sana. Jadi setiap baris dalam jadual ini turun di sini mewakili sesuatu yang Google meludah keluar sebagai tindak balas kepada permintaan tunggal saya. Yang saya mengambil berat tentang, walaupun, adalah satu ini pertama. Dan jika saya pergi ke carian, permintaan, klik melihat sumber di sini, notis bahawa, sesungguhnya, mesej samar yang pelayar saya menghantar Google adalah kedua-dua baris di sini, diikuti oleh beberapa maklumat batin turun di sini yang kita akan mengabaikan sekarang. Tetapi notis, terlalu, apa Chrome adalah agak berguna dengan, ia juga menunjukkan saya string query yang telah dihantar masuk Jadi, bukannya menunjukkan kepada saya ini, yang benar-benar telah menghantar, jika saya melihat ia dinyahkod, Chrome, hanya untuk tujuan debugging, untuk pemaju seperti kami, ia hanya menunjukkan saya versi mesra manusia - yang tidak adalah bagaimana anda mengeja musang, nampaknya. Saya hanya perasan ini sekarang - tetapi ia menunjukkan anda apa yang saya, nampaknya, ditaip. Sementara itu, sambutan yang pulang dari pelayan lagi 200 OK. Tetapi dimasukkan dalam sambutan itu, sudah tentu, jika kita benar-benar melihat halaman HTML - maaf, ini adalah jalan pintas keyboard sedikit pergi jauh menyimpang hari ini. Saya akan berurusan dengan ini kemudian. Jadi, jika kita benar-benar melihat sumber halaman, yang boleh saya lakukan di sini dengan mengklik sambutan, ini adalah apa yang sebenarnya meludah kembali, di samping bahawa mesej samar 200 OK dari pelayan. A sedikit samar, tetapi di mana semua ini datang dari? Nah, mari kita melakukan satu perkara lain di sini. Satu lagi arahan agak samar, tetapi jenis ini satu kemas dalam bahawa ia mendedahkan kepada kita apa sebenarnya yang berlaku di bawah hood. Jadi saya kembali pada Mac saya di sini, saya telah disambungkan melalui program yang dipanggil SSH, Shell selamat, ke pelayan lain kerana kebanyakan komputer Harvard menghalang perintah kami kira-kira untuk menjalankan kerana ada perintah ini pada beberapa pelayan dipanggil traceroute yang membolehkan anda untuk mengesan laluan antara titik a dan b, dan setakat ini kita telah mengambil sepenuhnya untuk diberikan bahawa saya boleh menaip dalam Google.com dan entah bagaimana mendapatkan data kembali dari pertengahan di seluruh negara atau pertengahan di seluruh dunia. Dengan traceroute kita sebenarnya boleh menyelam dalam sedikit lebih mendalam bagaimana internet berfungsi, dan lihat apa yang berlaku di bawah hood. Jadi mari kita pergi ke hadapan dan sewenang-wenangnya mengesan laluan kepada, berkata, Stanford.edu, yang di seluruh negara, dan tekan enter. Arahan ini boleh menjadi super cepat atau super perlahan, tetapi apa yang kita lihat sekarang, baris demi baris, adalah setiap salah satu daripada langkah-langkah atau hop antara kami dan Palo Alto, atau Stanford, di mana mereka mempunyai pelayan web mereka. Jadi apakah setiap ayat-ayat ini mewakili lebih kukuh, walaupun? Sekeping jargon dari Internet? [Pelajar, difahami] >> Apa itu? [Pelajar, difahami] >> Oh, jadi terdapat banyak kali, tetapi apakah setiap baris - apa yang saya maksudkan dengan hop? Nah, terdapat perkara-perkara ini di Internet yang dipanggil router. Dan router, seperti namanya, maklumat laluan dari titik ke titik b. Tetapi terdapat beberapa tempat di luar a dan b. Terdapat c dan d dan e dan f antara baris 1, yang berlaku untuk menjadi alamat IP komputer saya, atau alamat berangka saya, yang unik mengenal pasti komputer saya, dan langkah 15, yang sebenarnya adalah pelayan web keenam, nampaknya, yang saya membuat kesimpulan daripada ini, atau versi 6 pelayan web mereka di Stanford. Tetapi apa jenis kemas adalah, kita dapat melihat jalan itulah 0 saya dan 1 yang mengambil dari komputer saya ke Stanford. Jadi langkah 1 adalah alamat komputer saya sendiri. Setiap komputer di Internet mempunyai pengecam unik yang kelihatan seperti ini. Number.number.number.number. Tempat di kampus ini, mungkin di pusat sains, router dipanggil Teras Gateway 2-te83, apa yang bermakna, jadi ini adalah salah satu router besar Harvard mewah bahawa laluan banyak trafik mereka. Berikut adalah satu lagi router Harvard, yang satu ini adalah Gerbang Sempadan, makna sempadan ia mungkin di pinggir kampus tempat. Kemudian ada NOx satu, baris 4, yang merupakan Crossroads Utara, yang merupakan ISP besar, Pembekal khidmat Internet, bahawa tempat-tempat seperti Harvard menyambung sehingga. Tetapi kemudian perkara mendapatkan sedikit menarik di baris 6. Di manakah bit saya tiba-tiba? Kansas. Dunia mempunyai tabiat menggunakan kod lapangan terbang dalam banyak perkara-perkara ini, atau sekurang-kurangnya singkatan bagi negeri-negeri atau bandar-bandar, jadi ia kelihatan seperti, dalam hanya 60 ms, paket maklumat, 0 dan 1 dari komputer riba saya mendapat semua cara ke Kansas, dan sekali lagi, dalam 60 ms. Selain itu, selepas Kansas, mereka mengambil lawatan melalui Houston, mungkin, seperti yang dicadangkan oleh nama pelayan ini. Jadi hanya sebagai pelayan di Internet mesti mempunyai alamat berangka, ia juga boleh, pilihan, mempunyai alamat yang lebih mesra manusia bahawa manusia datang dengan. Sekarang, dalam 8 langkah, kita tidak tahu apa ini. Kadang-kadang hanya router jenis mengabaikan anda, dan mereka hanya tidak menjawab soalan, jadi itulah denda. Satu selepas 8 langkah nampaknya mana? LA Notis dalam hanya 78 ms, apa yang membawa kita manusia seperti 6 + jam untuk melakukan secara fizikal, mengambil paket maklumat di Internet 78 ms untuk perjalanan yang jauh. Langkah 10 adalah di LA juga, dan langkah 11 seolah-olah telah hilang utara, berhampiran Stanford. Ini adalah router sempadan mereka, atau router sempadan. Satu langkah beberapa di Stanford yang mengabaikan kita, dan akhir sekali, kita mencapai pelayan web hanya dalam 87 ms. Sekarang, semua nombor-nombor ini, sebagai diketepikan, hanya memberitahu anda berapa lama ia mengambil masa untuk data untuk mendapatkan dari saya kepada setiap router ini, dan ia tidak terkumpul. Apa program ini tidak, ia mula-mula menghantar mesej, pada dasarnya, router pertama. Kemudian satu router kedua; kemudian satu router ketiga, mengukur setiap kali. Jadi dalam teori, kali ini akan berkembang atau sekurang-kurangnya cukup dekat antara satu sama lain, dan, sememangnya, orang-orang yang betul di sini di kampus adalah super kecil. Sebaik sahaja anda mula pergi di seluruh negara, ia mengambil data sedikit lagi untuk perjalanan, lebih dekat kepada 100 ms, memberi atau mengambil. Tetapi mari kita pergi ke arah lain sekarang. Bagaimana kira-kira Universiti Cambridge di UK? Biar saya bukannya menjalankan traceroute www.cam untuk Cambridge, Ac untuk akademik, uk, dan tekan enter di sini. Itu adalah agak sialan pantas. Data saya benar-benar pergi ke Cambridge, England, dalam perpecahan yang kedua masa. Jadi mari kita melihat jalan yang ia mengambil masa. Harvard, Harvard, Harvard, Crossroads Utara, yang ISP, dan kemudian ini adalah Crossroads Utara, dan kemudian BAM. Apakah di antara langkah 6 dan 7, router 6 dan 7? Lautan Atlantik. Dan kami membuat kesimpulan ini daripada fakta bahawa kita pergi dari 20 ms sini hingga 80 ms di sini. Jadi sesuatu yang mengambil 60 ms, memberikan atau mengambil, untuk mendapatkan lebih. Dan yang mungkin badan air yang besar. Apa yang berlaku selepas itu? Nah, di sini kita berada di London, hanya 88 ms kemudian. Lebih London, lebih London, tidak pasti di mana ini, tetapi kita akan menganggap ia adalah di luar London, Cambridge di sini, dan akhirnya kita - secara literal, University of Cambridge . Something.net, dan kemudian, akhirnya, di baris 16, pelayan web mereka nampaknya dipanggil Scorpius di bawah hood, walaupun kita tahu ia sebagai www. Jenis fikiran-bertiup, saya fikir. Kali pertama saya pernah melakukan ini, ia benar-benar meniup fikiran saya. Malangnya, Harvard menghalang jenis ini trafik, biasanya, pada rangkaian. Jadi anda tidak boleh melakukannya super mudah. Sedar, walaupun, ini di sini adalah mungkin. Semua hak. Mari kita rehat 5-minit kami di sini. Kita akan kembali dan menyelam di lebih mendalam. Jadi kita kembali, dan kita telah jenis ambled dalam arah yang berbeza sedikit di sini. Jadi mari kita meringkaskan apa yang telah berlaku di sini. Kami memulakan perbualan bercakap tentang bahasa ini dipanggil HTML. Sekali lagi, tidak satu bahasa pengaturcaraan. Ia hanya bahasa markup yang sebahagian besarnya adalah tentang estetika dan penstrukturan kandungan dalam bentuk laman web. Tetapi HTML, oleh itu, memerlukan beberapa jenis mekanisme untuk perjalanan antara pelayar web dan pelayan. HTML itu jenis tunggangan di atas bahasa ini lain, atau lebih betul, protokol, yang dikenali sebagai HTTP. Dan HTTP, seperti yang kita telah melihat setakat ini, adalah jenis mirip kepada konvensyen ini manusia berjabat tangan. Apabila pelayar mahu meminta halaman daripada pelayan, ia menghantar bahawa "mendapatkan" permintaan dari pelayar ke pelayan, dan kemudian pelayan bertindak balas dengan nombor seperti 200, semua okay, serta HTML atau beberapa nombor buruk seperti 404, Fail tidak dijumpai. Tetapi Sementara itu, HTTP sendiri tidak Internet, per se. HTTP hanya perkhidmatan, ciri Internet banyak seperti G berbual adalah perkhidmatan yang lain, sama seperti e-mel adalah perkhidmatan lain. Terdapat pelbagai perkara yang boleh kita lakukan di Internet. HTTP adalah hanya salah satu daripada aplikasi. Jadi di atas - HTTP adalah di atas sesuatu yang lain yang kita tidak menyebut nama, anda mungkin telah mendengar dengan nama, TCP IP /. Jadi kisah kita hanya memberitahu terdapat adalah semua tentang bagaimana data bergerak dari satu titik ke titik b. Dan dalam kes ini, kita melihat pada tahap yang sangat rendah router ke router ke router ke router, bagaimana data sebenarnya sedang dihantar. Tetapi di sepanjang jalan, ia akan menghadapi pelbagai halangan. Selain router ini, terdapat perkara-perkara yang dipanggil firewall di Internet, dan sebagainya data, seperti yang kita hanya menghantar dari saya untuk Stanford, dari saya untuk Cambridge, dihantar, pada peringkat ini, sesuatu yang dipanggil alamat IP. Kami melihat ini masa lalu, dan alamat IP adalah hanya alamat berangka w.x.y.z bentuk, mana semua ini merupakan antara, memberikan atau mengambil, 0 dan 255, walaupun anda tidak boleh agak menggunakan semua nombor-nombor tersebut. Tetapi setiap pemegang tempat nombor di antara 0 dan 255. Jadi alamat IP pada hari ini adalah 32-bit. Sekarang, yang memberikan kita alamat IP berapa banyak mungkin di dunia? Kira-kira 4 bilion, kerana bila-bila masa yang kita sedang mengira dalam kuasa 2 sepanjang jalan sehingga kepada 32 sesuatu, yang biasanya memberikan kita 4 bilion. Jadi itulah banyak alamat IP, tetapi anda mungkin telah membaca, atau kini anda mungkin notis dalam akhbar popular, menolak ke arah versi baru IP dipanggil IPv6. Sekarang kita sedang menggunakan versi 4. Ada benar-benar tidak menjadi versi 5, kami hanya melompat hak ke 6. Versi 6 akan menggunakan 128 bit alamat IP, yang freaking besar. Kita tidak harus kehabisan untuk sekian lama kini, tetapi kita telah mula kehabisan alamat IP versi 4, kerana kita semua mempunyai bukan sahaja perkara-perkara seperti komputer riba dan desktop, banyak daripada kita mempunyai telefon, banyak kita mempunyai peranti lain seperti TiVo dan seperti yang mempunyai alamat IP sendiri. Harvard sendiri mempunyai puluhan ribu komputer. Jadi dunia ini benar-benar kehabisan alamat IP, sekurang-kurangnya borang ini. Jadi, dalam tempoh beberapa tahun akan datang, anda akan melihat alamat pada komputer anda sendiri mungkin perlahan-lahan menukar sebagai lebih dan lebih banyak syarikat dan universiti mula menyokong versi yang lebih baru. Tetapi alamat IP tidak mencukupi untuk komputer meminta data dari komputer b. Kerana komputer b boleh menjadi pelayan, dan pelayan, seperti yang saya nyatakan sebelum ini, boleh melakukan tandan perkara. Ia boleh menjadi tuan rumah laman web, ia boleh menjadi pelayan e-mel, ia boleh menjadi pelayan Skype, ia boleh menjadi pelayan G sembang. Semua perkhidmatan ini berbeza yang boleh diperuntukkan pada pelayan semua boleh, fizikal, pada mesin yang sama. Jadi di samping kepada alamat IP, dunia mempunyai perkara-perkara yang dipanggil pelabuhan di Internet. Pelabuhan adalah hanya beberapa, jadi terdapat nombor unik untuk HTTP. Nombor ialah 80. HTTP juga menggunakan nombor 443, tetapi lebih khusus, untuk HTTPS disulitkan. Apabila anda melihat s, untuk selamat, yang menggunakan nombor yang berbeza. Terdapat nombor lain, seperti 25, yang digunakan untuk sesuatu yang dipanggil SMTP, atau dikenali sebagai e-mel. Ada sesuatu yang dipanggil 22 untuk SSH, dan ada sekumpulan keseluruhan pelabuhan-pelabuhan lain di luar sana. Sekarang, kita manusia jarang melihat nombor-nombor ini. Walau bagaimanapun, apabila anda menaip alamat seperti http://www.facebook.com, pelayar rahsia memasukkan 80, kerana anda sedang menggunakan HTTP. Jika anda, sebaliknya, HTTPS jenis, ia diam-diam memasukkan 443. Dan kita boleh jenis melihat ini secara manual jika saya tarik sehingga Brower dan pergi ke http://www.facebook.com:80. Oleh itu jelas tidak memetik hanya nama laman web tetapi pelabuhan yang saya mahu bercakap dengan, dan tekan enter. Perhatikan ia hilang, kerana pelayar mengandaikan, oh, 80, saya tidak akan mengganggu menunjukkan bahawa kepada anda. Tetapi sebab untuk ini adalah bahawa jika saya benar-benar mahu menghantar seseorang e-mel, Saya benar-benar akan menghantarnya kepada mereka pada port 25, yang menjadi SMTP. Sedikit daripada melampaui batas, tetapi sesetengah daripada anda mempunyai rakan-rakan yang sebenarnya bekerja di Facebook, dan mereka, sama, mempunyai pelayan yang menerima e-mel. Bila-bila masa anda menghantar e-mel, apakah gmail lakukan untuk anda atau Outlook atau apa sahaja program yang anda gunakan, ia adalah jenis rahsia memasukkan nombor yang baik, 25, dalam kes itu. Ia adalah gabungan ini alamat IP dan nombor unik yang mengenalpasti komputer di Internet dan perkhidmatan tertentu pada komputer itu. Kini, sudah tentu, kebanyakan kita telah mungkin tidak pernah ditaip manual alamat IP. Mungkin anda mempunyai perkakas, tetapi dalam dunia sebenar, tidak begitu banyak. Mengapa kita tidak menaip alamat IP ke dalam pelayar? Ia akan bekerja, pada hakikatnya, kita boleh melihat ini, izinkan saya menunjukkan kepada anda satu perintah lain yang perlu bekerja yang paling mana-mana sahaja di kampus Harvard pada Mac atau PC. Ada perintah ini dipanggil nslookup, nama pelayan lookup. Jika saya melihat sehingga www.cnn.com, ia ternyata bahawa CNN - oh, menarik. CNN telah mula menggunakan Amazon perkhidmatan web. Anda mungkin tahu awan pengkomputeran, salah satu pemain besar dalam perkomputeran awan Amazon. Apa yang saya hanya lakukan ialah, saya berkata, 'Berikan saya alamat pelayan web CNN,' tetapi ternyata bahawa pelayan web CNN diuruskan oleh Amazon, Amazon perkhidmatan web, ini menunjukkan. Dan alamat pelayan itu ini di sini. Jadi saya tidak pasti jika ini akan bekerja, kerana mereka tidak digunakan untuk menggunakan Amazon. Tetapi mari kita cuba ini; http://, alamat IP, masukkan, dan - ia pergi ke tempat kerja? Ya. Ia akan bekerja. Internet adalah super lambat hari ini. Tetapi, dalam masa, anda akan melihat beberapa berita. Terdapat kita pergi. Bank of America disaman. Semua hak. Ini adalah kerana ini alamat IP hanya berlaku oleh sinonim dengan www.cnn.com. Sudah tentu, ia akan menjadi pemasaran dahsyat untuk mengatakan, layari laman web kami di Web di 50.112.94.127. Anda tidak akan ingat. Jadi, walaupun hari ini anda mungkin ingat perkara-perkara seperti 1-800-COLLECT atau mnemonik dunia datang dengan nombor telefon. Yang, sebelum telefon bimbit, agak sukar untuk ingat sehingga anda hanya boleh menaip dalam dan melupakannya. Jadi Web, juga, mempunyai konvensyen ini nama dan alamat IP, dan terdapat perkara-perkara ini di luar sana yang dipanggil pelayan DNS, sistem nama domain pelayan, yang menterjemahkan alamat IP ke nama dan sebaliknya. Supaya apa yang berlaku di bawah hood. Pada akhirnya, kita mempunyai TCP / IP, yang ini protokol sangat rendah tahap bahawa, benar-benar, hanya mendapat 0 dan 1 di Internet, dan ia berbuat demikian dengan meletakkan mereka ke dalam sampul surat yang maya, jika anda akan, dan menulis di luar sampul surat alamat IP destinasi, serta nombor port angka perkhidmatan pada destinasi bahawa ia mahu untuk bercakap. Sementara itu, pada sampul surat terdapat juga sesuatu yang dikenali sebagai alamat kembali, yang alamat IP anda, supaya apabila CNN mendapat paket maklumat daripada anda, membuka sampul surat maya ini, melihat bahawa anda mahu halaman rumah, ia tahu dari bahagian pengirim sampul surat maya ini siapa untuk menghantar kembali HTML. Jadi mari kita lihat ini dalam sedikit lebih terperinci. Ini adalah dari sebuah syarikat yang dipanggil Ericson, dari beberapa tahun lalu. Dan mereka mengambil beberapa kebebasan dengan bagaimana Internet sebenarnya berfungsi, tetapi ia cat gambar yang lebih visual daripada kapur semata-mata di sini. Jadi saya memberi anda "A Bit Internet." [Pencerita] Untuk pertama kalinya dalam sejarah, rakyat dan jentera bekerja bersama-sama, merealisasikan impian. Satu pasukan menyatukan yang tidak mengenal sempadan geografi. Tanpa mengambil kira bangsa, agama, warna atau. Satu era baru di mana komunikasi yang benar-benar membawa rakyat bersama-sama. Ini adalah Dawn of Net. Ingin tahu bagaimana ia berfungsi? Klik di sini untuk memulakan perjalanan anda ke Internet. Kini, apa yang berlaku apabila anda klik pada pautan itu? Anda mula aliran maklumat. Maklumat ini bergerak ke dalam mailroom peribadi anda sendiri mana pakej IP Encik, label, dan menghantarnya dalam perjalanan. Setiap paket adalah terhad dalam saiz. Bilik mel mesti memutuskan bagaimana untuk membahagikan maklumat dan bagaimana untuk pakej. Sekarang, pakej memerlukan label yang mengandungi maklumat penting seperti alamat, pengirim, alamat penerima, dan jenis paket ia. Kerana ini paket tertentu akan keluar ke Internet, ia juga mendapat alamat untuk pelayan proksi, yang mempunyai fungsi khas, seperti yang kita akan lihat nanti. Paket kini dilancarkan ke rangkaian kawasan tempatan anda, atau LAN. Rangkaian ini digunakan untuk menyambungkan semua komputer tempatan ' router, pencetak, dan sebagainya, untuk pertukaran maklumat dalam tembok fizikal bangunan. LAN adalah tempat yang cukup tidak terkawal, dan, malangnya, kemalangan boleh berlaku. Lebuh raya LAN dipenuhi dengan semua jenis maklumat. Ini adalah paket IP, Novell paket, AppleTalk paket. Mereka akan menentang trafik, seperti biasa. Router tempatan membaca alamat dan, jika perlu, lif paket ke rangkaian lain. Ah, router. Satu simbol kawalan dalam dunia yang seolah-olah tidak teratur. [Router hal mengomel dan bercakap kepada dirinya] [Pencerita] Ada dia, sistematik, peduli, teratur, konservatif, dan kadang-kadang tidak cukup sehingga kelajuan. Tetapi sekurang-kurangnya dia adalah tepat, untuk sebahagian besar. Sebagai paket meninggalkan router, mereka membuat cara mereka ke dalam Internet korporat dan kepala untuk suis router. Sedikit lebih cekap daripada router, suis penghala memainkan cepat dan longgar dengan paket IP, cekap laluan mereka di sepanjang jalan mereka. A 'pinball wizard,' digital jika anda akan. [Router suis bercakap kepada dirinya] [Pencerita] Sebagai paket tiba di destinasi mereka, mereka dipilih oleh antara muka rangkaian, bersedia untuk dihantar ke tahap yang seterusnya. Dalam kes ini, proksi. Proksi digunakan oleh banyak syarikat sebagai jenis lelaki pertengahan dalam usaha untuk mengurangkan beban pada sambungan internet dan atas sebab-sebab keselamatan, serta. Seperti yang anda boleh lihat, paket semua pelbagai saiz bergantung kepada kandungan mereka. Proksi membuka paket dan kelihatan untuk alamat web atau URL. Bergantung kepada sama ada alamat boleh diterima, paket dihantar ke Internet. Terdapat, bagaimanapun, beberapa alamat yang tidak memenuhi dengan kelulusan proksi. Itu adalah untuk mengatakan, garis panduan korporat atau pengurusan. Ini akan terus ditangani. Kita akan mempunyai semua itu. Bagi mereka yang membuat ia, ia adalah di jalan raya sekali lagi. Sehingga Seterusnya, firewall. Firewall korporat berfungsi dua tujuan. Ia menghalang beberapa perkara yang agak jahat dari Internet dari mula masuk ke Intranet, dan ia juga boleh mencegah maklumat korporat sensitif daripada dihantar keluar ke Internet. Setelah melalui firewall, router picks paket dan meletakkan ia ke jalan yang lebih sempit, atau bandwidth, seperti yang kita katakan. Jelas sekali, jalan raya tidak cukup luas untuk membawa mereka semua. Kini, anda mungkin tertanya-tanya apa yang berlaku kepada semua orang-orang paket yang tidak membuat ia sepanjang jalan. Nah, apabila IP Encik tidak menerima pengakuan bahawa paket telah diterima dalam masa yang sewajarnya, dia hanya menghantar paket gantian. Kami kini bersedia untuk memasuki dunia Internet. Spiderweb rangkaian yang saling yang merangkumi seluruh dunia kami. Di sini, router dan suis mewujudkan hubungan antara rangkaian. Sekarang, Net merupakan satu persekitaran yang sama sekali berbeza daripada yang anda akan dapati dalam tembok perlindungan LAN anda. Di sini, ia adalah Wild West. Banyak ruang, banyak peluang, banyak perkara untuk meneroka dan tempat-tempat untuk pergi. Terima kasih kepada kawalan yang sangat sedikit dan peraturan, idea-idea baru mencari tanah yang subur untuk menolak sampul kemungkinan mereka. Tetapi kerana kebebasan ini, bahaya tertentu juga bersembunyi. Anda tidak akan tahu apabila anda akan bertemu ping ditakuti kematian, versi khas ping permintaan biasa, yang bodoh sesetengah orang berpendapat untuk mes tuan rumah yang tidak curiga. Laluan paket kami mengambil mungkin melalui satelit, talian telefon, wayarles, atau kabel walaupun merentasi lautan. Mereka tidak sentiasa mengambil laluan terpantas atau sesingkat mungkin, tetapi mereka akan sampai ke sana akhirnya. Mungkin itulah sebabnya ia kadang-kadang dipanggil "Tunggu World Wide." Tetapi apabila segala-galanya berfungsi dengan lancar, anda boleh memintas dunia lima kali lebih pada kejatuhan topi, secara literal. Dan semua kos panggilan tempatan atau kurang. Berhampiran akhir destinasi kami, kami akan mencari firewall lain. Bergantung kepada perspektif anda sebagai data paket, firewall boleh menjadi benteng keselamatan atau musuh yang ditakuti. Ia semua bergantung kepada pihak mana anda berada di dan apa niat anda. Firewall direka untuk membiarkan sahaja Jenis paket yang memenuhi kriteria. Firewall ini beroperasi pada port 80 dan 25. Semua percubaan untuk masuk melalui pelabuhan-pelabuhan lain ditutup untuk perniagaan. Port 25 adalah digunakan untuk paket mel, manakala port 80 adalah pintu masuk untuk paket dari Internet ke pelayan web. Di dalam firewall, paket ditayangkan lebih teliti. Beberapa paket membuat ia mudah melalui kastam, manakala yang lain kelihatan hanya sedikit meragukan. Sekarang, pegawai firewall tidak mudah tertipu, seperti ketika ini ping paket kematian cuba untuk menyembunyikan dirinya sebagai paket ping normal. [Firewall pegawai bercakap kepada paket] [Pencerita] Bagi mereka paket bernasib baik untuk membuat ia sejauh ini, perjalanan hampir berakhir. Ia hanya beratur di muka akan diambil ke dalam pelayan web. Kini, pelayan web boleh dijalankan pada banyak perkara, dari kerangka utama ke web cam komputer di atas meja anda. Kenapa bukan peti sejuk anda? Dengan persediaan yang sepatutnya, anda boleh mengetahui jika anda mempunyai bakat untuk menjadi Ayam Cacciatore, atau jika anda perlu pergi membeli-belah. Ingat, ini adalah subuh Net. Hampir apa sahaja boleh didapati. Satu demi satu, paket diterima, dibuka, dan terpadat. Maklumat yang mereka mengandungi, iaitu, permintaan anda untuk maklumat, dihantar kepada aplikasi pelayan web. Paket itu sendiri adalah dikitar semula, sedia untuk digunakan lagi, dan dipenuhi dengan maklumat yang diminta anda, ditangani, dan dihantar keluar dalam perjalanan kembali kepada anda. Kembali lalu firewall, router, dan melalui Internet. Kembali melalui firewall korporat anda dan ke muka anda, bersedia untuk membekalkan pelayar web anda dengan maklumat yang anda minta. Iaitu, filem ini. Gembira dengan usaha mereka, dan mempercayai bahawa dunia yang lebih baik, paket data kepercayaan kami menaiki blissfully ke matahari terbenam hari lain, mengetahui sepenuhnya mereka telah berkhidmat tuan-tuan mereka dengan baik. Sekarang, tidak adalah bahawa berakhir bahagia? [Malan] Okay, itu sudah cukup. Kami akan melihat anda minggu depan. [CS50.TV]