[Powered by Google Translate] [Minggu 7, Lanjutan] [David J. Malan, Universitas Harvard] [Ini adalah CS50.] [CS50.TV] Baiklah. Selamat Datang Kembali. Ini adalah CS50, dan ini adalah akhir minggu 7. Jadi salah satu dari hal-hal kecil yang bodoh yang terjadi di sekitar Internet dan kami menghirup up, dan sekarang harus membuat sedikit akal culun untuk Anda. Nah, itu lucu untuk orang ini daripada itu untuk kalian. Berbicara tentang, well, guys, hari ini adalah hari ulang tahun Nate. Untuk memberikan rasa Nate betapa baik dan saya pada pengembangan web berdasarkan kelas Senin dan berdasarkan sekarang ini, Saya pikir saya akan menarik halaman rumah Nate, jika Anda belum melihatnya. Ini HTML AGLOCO Nate di sini. Jadi melihat source-nya jika Anda ingin melihat bagaimana melakukan ini, dan Nate, jika kita bisa malu Anda hanya sebentar, staf mendapat Anda sedikit sesuatu jika Anda ingin berbagi beberapa hidangan penutup dengan beberapa anak-anak di kelas di sini. Jika Anda ingin datang pada turun. Kalian semua bertepuk tangan dan sangat bagus, tapi tidak ada yang duduk di dekat Nate, untuk beberapa alasan, di zona belakang. Jadi mungkin Anda dapat menemukan beberapa orang untuk menikmati ini dengan. Selamat Ulang Tahun, Nate. Hellos Tambahan: Kami menunjukkan klip dari beberapa siswa CS50x kami. Jika Anda ingin melihat siapa lagi itu ada di dalam dunia yang mengikuti dari awal, Anda dapat menuju ke URL ini, di mana Yusuf, salah satu dari TF kami, telah mengumpulkan montase macam setiap orang yang telah mengirimkan video ini, di antaranya Rick Astley. Dan jika Anda menggulir melalui, itu benar-benar sangat inspiratif untuk melihat keragaman negara-negara dan kota-kota dari mana orang yang memanggil. Jadi jika Anda ingin melihat pada saat itu, yang akan naik sampai akhir semester. Hari ini kita melanjutkan melihat kami di Web, web programming, HTML dan sejenisnya, dan kami juga telah makan siang yang datang Jumat ini jika Anda ingin, dan khususnya, belum melakukannya sebelumnya. Tema ini Jumat akan menjadi hari ulang Nate, jadi jika Anda ingin memiliki makan siang ulang tahun dengan Nate dan lain-lain, beberapa teman-teman kita dari Industri, silakan kepala ke URL yang ada. Ruang, seperti biasa, adalah terbatas. Juga, jika Anda lupa, menyadari bahwa minggu depan adalah batas waktu untuk masalah mengatur perburuan 4 s, dimana setelah pulih semua orang JPEG dari card.raw, Anda dan pasangan bagian, jika Anda ingin, dapat mencoba memotret karena banyak ilmuwan komputer dari kartu memori mungkin, dan Anda dan bagian Anda kemudian akan memenangkan hadiah luar biasa. Lihat kembali ke spesifikasi pset 4 sebagai apa untuk mengirimkan dan kapan. Juga, jika Anda ingin memiliki karya Anda diabadikan di website kursus dan sejarahnya pakaian, tahu bahwa Anda dipersilakan sekarang untuk mulai mengirimkan desain untuk tahun ini T-shirt dan kaus dan sejenisnya. Kami akan melakukan yang terbaik untuk memasukkan sebanyak yang kita bisa, tapi kita akan memiliki beberapa anggota dari tinjauan staf semua desain untuk memastikan mereka sesuai dengan spesifikasi, dan kami kemudian memilih umumnya sedikit dari mereka yang akan dipamerkan. Jadi jika Anda adalah tipe desain, hanya tahu bahwa persyaratan untuk grafis adalah PNG, setidaknya 200 DPI, mereka tidak boleh lebih dari 4000 x 4000 piksel, dan tidak lebih dari 10 MB, tapi kau dipersilakan untuk menggunakan hal-hal seperti Photoshop atau GIMP atau berbagai program grafis komputer, apa pun yang Anda miliki Anda. Juga pada cakrawala adalah tugas akhir. Proyek akhir benar-benar adalah klimaks dari 50, dimana dari semua tugas dalam kursus, ini adalah kesempatan Anda benar-benar untuk melakukan hal Anda sendiri. Dan itu bisa saja melakukan sesuatu untuk bersenang-senang, dapat memecahkan beberapa masalah mendesak kelompok mahasiswa Anda memiliki, untuk beberapa website baru, beberapa mekanisme koleksi baru untuk data. Ini bisa menjadi aplikasi mobile untuk Android, iOS untuk. Sungguh, langit adalah batas, dan selama beberapa minggu ke depan, seperti yang kita transisi dari C terhadap bahasa tingkat tinggi seperti PHP dan JavaScript, Anda akan menemukan diri Anda semakin akrab dengan beberapa teknik dunia nyata, beberapa dunia nyata alat, dan untuk melengkapi itu, tahu bahwa tentu saja memiliki sejarah seminar, dimana selama beberapa minggu berikutnya, beberapa staf pengajar dan teman-teman kita dari di kampus akan menawarkan seminar opsional yang pergi di atas dan melampaui apa yang biasanya dilakukan di bagian untuk memperkenalkan Anda untuk hal-hal seperti pemrograman Android, untuk memperkenalkan Anda untuk hal-hal seperti iOS pemrograman atau lebih maju web-pengembangan teknik. Ada seluruh sejarah ini sudah online. Jika Anda pergi ke cs50.net/seminars, kita sudah melakukan hal ini untuk beberapa tahun, dan Anda akan melihat bahwa diarsipkan di sini dengan PDF dan video dan sejenisnya adalah video beberapa lusin seminar. Tahun lalu, misalnya, kami punya seminar tentang acing wawancara teknis, jika Anda benar-benar ingin pergi dan melakukan magang atau penuh waktu manggung. Windows mobile pembangunan, pengembangan Android, Google Maps, API, CSS, pengembangan untuk BlackBerry, Emacs. Sungguh, Anda dipersilakan untuk melihat salah satu seminar pada kenyamanan Anda. Dan kita akan mengadakan beberapa yang baru semester ini, juga. Jadi apa yang di depan dengan tugas akhir? Yah, pertama, meskipun tanggal ini agak dekat, ini benar-benar hanya sebuah kesempatan untuk mulai berpikir tentang proyek akhir cukup realistis. Kita tahu hanya awal dari beberapa dari apa yang kita masih akan mencakup dalam kursus, HTML, PHP dan sejenisnya, tapi kau semua akrab dengan Web, dan saya Bias percakapan ini ke Web hanya karena kebanyakan orang akhirnya melakukan berbasis web proyek akhir, tapi itu tidak berarti diperlukan. Menggunakan C baik-baik saja, tujuan C, Java, bahasa lain Anda mungkin tahu atau ingin tahu adalah cukup baik. Tapi untuk mendapatkan jus mengalir awalnya, kita akan mengharapkan pengajuan preproposal yang, per PDF di website, yang sekarang di cs50.net, dan di bagian kiri atas Anda akan melihat tugas akhir adalah spesifikasi untuk proyek akhir, dan di sana adalah rincian tentang preproposal dan sejenisnya. Ini cukup banyak bermuara email ke rekan mengajar Anda hanya untuk memulai percakapan dengan dia tentang apa yang Anda pikirkan. Pada projects.cs50.net adalah gudang ide dari orang-orang di kampus jika Anda berjuang untuk datang dengan beberapa gagasan, dan manual.cs50.net/APIs adalah gudang link ke API. Apa, meskipun, adalah API? Apa API? Aku sudah mengatakan itu setidaknya dua kali, menurut transkrip dari beberapa minggu terakhir. Apa itu? [Mahasiswa, dipahami] >> Oke, baik. Jadi sesuatu pemrograman antarmuka. Aplikasi pemrograman antarmuka, dan ini dapat mengambil beberapa bentuk, tapi apa ini benar-benar bermuara pada adalah kode bahwa orang lain hs tertulis atau data yang orang lain telah dikumpulkan yang dibuat tersedia untuk Anda dalam beberapa cara program. Anda dapat menulis kode dalam C, PHP, Python, Ruby, bahasa apa pun pilihan Anda biasanya adalah, dan Anda entah bagaimana dapat membangun fungsi orang lain atau orang lain kumpulan data. Misalnya, jika saya pergi ke link ini di sini, dan Anda akan melihat sepasang link pada halaman berikutnya dimana kita memiliki API sendiri CS50, yang sangat Harvard-sentris, dan kemudian pihak ketiga API. Di antara ketiga pihak API adalah hal-hal yang benar-benar berguna seperti mampu mengirim orang ke SMS, mampu menerima pesan teks SMS dari orang-orang. Dan hal-hal seperti itu yang Anda mungkin tidak tahu bagaimana menerapkan diri sendiri, namun berkat layanan, beberapa bebas dan beberapa komersial, Anda dapat membangun atas mereka dan melakukan sesuatu yang menarik bagi Anda. Di antara API CS50 itu orang-kampus-sentris hal-hal seperti Harvard kursus, energi, peristiwa, makanan, peta, berita, tweets dan sendiri Shuttleboy, dan ini adalah API yang terlihat sedikit sesuatu seperti ini. Mari saya naikkan API HarvardFood. Jika Anda sudah pernah ke situs HUD, Anda mungkin pernah ada hanya melihat apa untuk makan malam atau untuk melihat apa yang untuk beberapa jam d-hall. Nah, itu tidak sangat mudah dinavigasi, dan jadi apa yang kita lakukan beberapa waktu lalu adalah kami menulis perangkat lunak, itu terjadi berada di PHP, yang benar-benar layar goresan keseluruhan situs HUD. Untuk menyaring sesuatu yang mengikis berarti untuk menulis program dalam bahasa seperti PHP yang berpura-pura menjadi browser, meskipun Anda mungkin menjalankannya pada command prompt, yang berpura-pura menjadi browser, menghubungkan ke situs web, download nya HTML, bahasa yang itu ditulis, dan kemudian membacanya, atau lebih khusus, mem-parsing itu atas ke bawah, kiri ke kanan. Dan apa yang kita lakukan adalah kita menulis kode kita sedemikian rupa sehingga setiap kali kita melihat sesuatu dalam HTML yang tampak seperti sesuatu pada menu, seperti hamburger, maka kita akan impor yang masuk ke database kita sendiri. Dan setiap kali kita melihat kandungan gizi, kita akan mengimpor bahwa ke database kita sendiri. Dan apa yang kita lakukan adalah memanfaatkan fakta bahwa HUD website, meskipun mungkin sedikit tantangan bagi kita manusia untuk menavigasi bawah kap mesin, semua HTML yang dihasilkan oleh program komputer mereka sendiri. Jadi semua HTML mereka, meskipun mungkin terlihat berantakan, seperti situs yang paling bawah kap itu mengikuti pola. Jadi kita hanya menghabiskan beberapa jam mencari tahu pola yang sehingga pada akhirnya, kita membuang semua HTML berantakan, semua estetika menghadap tebal dan miring dan sejenisnya, dan apa yang kita kemudian akan mampu lakukan adalah mengekspos bahwa data yang sama. Misalnya, dengan cara ini. Jadi kita, sesuai dengan dokumentasi di sini, telah memberitahu dunia bahwa jika Anda meminta URL yang terlihat seperti ini, food.cs50.net / sesuatu, dan Anda memberikan parameter tertentu, yang akan kita bicarakan hari ini, seperti akhir-tanggal, waktu start-date makan waktu, dan sebagainya, apa server kami akan kembali kepada Anda, misalnya, adalah file CSV, koma separted nilai-nilai seperti file Excel, berisi semua untuk sarapan pada tanggal tertentu pada bulan Maret tahun lalu ketika saya kebetulan menulis dokumentasi ini. Bagi mereka yang akrab, CSV bukanlah format file saja. Ada format lain yang semua lebih fleksibel disebut JSON, JavaScript Object Notation. Data bisa kembali dalam format tersebut. Jadi takeaway di sini adalah bahwa apakah Anda menyelam ke dalam API atau lainnya yang CS50 atau sesuatu di luar sana di Internet, atau tidak sama sekali, menyadari bahwa dunia telah semakin mulai membakukan bagaimana mesin bergaul. Kami menggunakan format data standar seperti CSV atau JSON. Dan apa artinya ini bagi Anda adalah Anda dapat menulis bagian yang menarik dari program yang memungkinkan pengguna mencari menu makan-ruang, yang memungkinkan mereka membuat daftar favorit yang memungkinkan mereka mendapatkan peringatan teks ketika makan favorit mereka adalah tentang untuk dilayani dalam beberapa d-aula dengan menggunakan data orang lain set dan bangunan di atas API mereka. Jadi lebih pada bahwa dalam bentuk seminar dan dokumentasi yang Anda miliki di sini secara online. Jadi mereka, kemudian, adalah API. Yang membawa kita kembali ke HTML. Cepat rekap. Apa itu HTML? [Mahasiswa, dipahami] Baik >>. HyperText Markup Language. Orang lain, apa yang Hypertext Markup Language? HyperText Markup Language. Oke. Jadi HTML, HyperText. HyperText hanya merujuk ke Web, untuk sebagian besar. Markup berarti bahwa itu tidak benar-benar sebuah bahasa pemrograman, HTML. Ini bukan bahasa yang Anda dapat mengekspresikan logika masuk Ia tidak memiliki loop. Itu tidak memiliki kondisi. Ia tidak memiliki fungsi, per se. Sebaliknya, ia memiliki hal-hal yang disebut tag, atau lebih tepat, elemen. Dan unsur-unsur memiliki tag awal dan tag akhir, atau tag terbuka dan tertutup tag, dan apa tag tersebut umumnya berarti untuk browser, mulai melakukan sesuatu dan kemudian berhenti melakukan sesuatu, meskipun ada pengecualian untuk itu. Kadang-kadang itu hanya 'menempatkan satu baris di sini,' misalnya. Dan kita melihat contoh bahwa hari lainnya, antara menghadap berani, garis istirahat, dan kemudian beberapa tag lainnya. Jadi HTML adalah bahasa yang halaman web ditulis. Jadi jika saya pergi ke sesuatu seperti Google.com dan menarik hanya halaman rumah mereka, ingat bahwa jika Anda mengklik kanan atau klik kontrol dan melihat sumber tampilan halaman, biasanya itu berantakan lengkap hari ini di bawah tenda, tapi itu karena komputer tidak peduli tentang ruang putih, jadi ini tidak harus tampil cantik. Tetapi jika kita memperbesar bagian dari itu, melihat bahwa Chrome, hanya untuk bersikap baik, telah kode warna hal. Memang, ini adalah tag pertama yang kami lihat di halaman web. Dan lagi, HTML 5, versi terbaru dari bahasa ini, tidak memiliki hal ini di awal, > Ya, kami telah dipecahkan ini sebelum dengan secara eksplisit mengatakan browser 'menempatkan satu baris di sini. " Dan itu karena, sekali lagi, browser yang hanya akan melakukan eksplisit apa bahasa markup mengatakan itu untuk dilakukan, jadi meskipun Anda mungkin telah menekan enter sekali atau dua kali atau bahkan sepuluh kali, itu akan menggabungkan semua ke dalam satu ruang, hanya dengan konvensi. Jadi, jika Anda benar-benar ingin istirahat garis, Anda harus menggunakan tag br, dan sekarang pemberitahuan, seperti hari Senin, saya menempatkan bagian dalam / dari tag ini, hanya karena ini hanya tidak merasa benar untuk memulai satu baris kemudian menghentikannya dengan apa-apa di antara. Jadi konvensi di HTML adalah untuk membuka dan menutup tag secara bersamaan. Sebagai samping, Anda akan melihat banyak situs dalam buku-buku tidak melakukan hal itu. Hal ini benar untuk melakukan atau tidak melakukan hal itu, tapi kami akan berdebat bahwa desain-bijaksana dan Gaya, ini hanya lebih baik karena kemudian tag setiap baik terbuka dan tertutup entah bagaimana. Jadi sekarang mari kita menyimpan dan membuka kembali. Kembali ke browser, oke. Sekarang kita sedang membuat beberapa kemajuan, tapi itu tidak cukup. Mari kita pergi ke depan dan mulai mengetik di beberapa tubuh yang lebih panjang dari teks. Jadi katakanlah, 'melompat A cepat rubah cokelat selama anjing malas. " Dan sekarang biarkan aku hanya copy dan paste ini beberapa kali sehingga kita memiliki paragraf teks. Biarkan aku pergi kembali ke sini. Jadi itu tidak tampak sangat baik. Saya punya satu baris, sehingga tidak apa-apa, tapi sekarang, setelah kami sampai ke titik memiliki halaman web yang memiliki banyak konten dan garis tidak hanya tunggal untuk menunjukkan HTML, kita bisa mulai memikirkan hal-hal sebagai paragraf yang sebenarnya. Dan kita bisa mulai menyusun halaman web kami sedikit lebih bersih. Dan memang, apa yang bisa saya lakukan adalah pergi di sini dalam tag tubuh saya, dan kau tahu apa, jika 'Ini adalah CS50. . . " benar-benar demarks awal paragraf, baik, mari kita tag seperti itu. Biarkan saya indent teks, hanya dengan konvensi, saya katakan bahwa ayat ini berakhir di sini, dan kemudian daripada melakukan hal ini istirahat baris, biarkan aku hanya mengatakan bahwa ini milik ada dan sebagai sebuah paragraf baru, dan aku hanya akan cepat indent dengan hanya clobbering semua hal ini. Jadi sekarang kita memiliki ayat indentasi sana, dan sekarang markup kami mulai mendapatkan lebih sedikit semantik konsisten dengan apa yang kita coba lakukan. Kami memiliki paragraf, jadi mari kita menyebutnya sebuah paragraf dengan tag p. Kami memiliki paragraf kedua, jadi mari kita menyebutnya sebuah paragraf dengan tag p. Dan sekarang, apa browser biasanya akan melakukan adalah seperti dalam buku bahasa Inggris atau esai, di mana Anda biasanya melihat beberapa jeda baris antara paragraf. Browser akan melakukannya untuk Anda secara otomatis. Jadi sekarang kita memiliki dua paragraf dan kita bisa melanjutkan. Tapi, tentu saja, di Web, bila Anda memiliki tubuh teks itu tidak biasanya hanya gumpalan besar teks. Ada sering hyperlink di sana. Jadi jika kita ingin, misalnya, mencakup beberapa link ke sana, kira apa yang mungkin menarik dalam apa pun halaman web saya di sini adalah menciptakan - biarkan aku pergi ke Google.com, dan biarkan aku mencari rubah coklat cepat. Pergi ke gambar Google, dan, bagaimana - ini lucu. Kita akan pergi dengan ini. Jadi di sini kita memiliki melompat cepat rubah cokelat selama anjing malas. Jadi apa yang akan saya lakukan di sini, hanya untuk kepentingan demonstrasi, disinyalir bahwa gambar ini pada server saya, dan saya telah membuat gambar-gambar. Apa yang saya lakukan adalah hanya klik kanan atau mengontrol klik pada gambar, dan apa yang Anda akan melihat di hampir semua browser adalah menu kecil - berhenti melakukan itu - menu kecil yang memungkinkan Anda untuk memilih lokasi copy link atau URL copy. Jadi biarkan aku kembali sekarang untuk HTML saya, dan anggaplah bahwa saya ingin untuk hyperlink ini ke halaman web lain. Apa tag yang disebut untuk itu? [Mahasiswa, dipahami] >> Ya. Jadi href untuk referensi hiper. Biarkan aku pergi ke depan dan paste yang masuk Ini adalah URL yang cukup panjang, jadi biar tampilannya kembali. Kurung dekat, jadi sekarang perhatikan Aku jalan ke sini karena URL yang terjadi cukup lama. Biarkan saya gulir ke sini untuk akhir rubah cokelat gesit, dan kemudian saya akan menutup tag ini dengan . Jadi semuanya di atas dengan warna biru hanya komentar. Ini adalah deklarasi DOCTYPE saya, yang sekali lagi, Anda hanya bisa copy dan paste pada iman, untuk saat ini. Ini hanya memberitahu browser, 'Di sinilah beberapa HTML 5.' Di bawah itu, on line 14, adalah yang pertama dari tag yang sebenarnya, dan ini hanya mengatakan, seperti sebelumnya, di sini datang beberapa HTML, inilah kepala halaman saya, di sini datang judul, dan kemudian, sebaliknya, itu saja untuk judul, itu saja untuk kepala. Di sini sekarang datang tubuh halaman saya. Jadi tag baru beberapa saat: h1 singkatan pos 1. Ada tradisi di HTML selama bertahun-tahun kembali memiliki ukuran yang berbeda dari teks. Dan kembali pada hari, masing-masing berarti, secara umum, hanya besar dan berani. Tapi ada juga h2, yang besar tapi tidak cukup sebagai besar dan tebal. Ada h3, yang merupakan jenis besar tapi tidak hampir sama besar dan tebal, dan sebagainya, semua jalan ke h6. Hari ini, meskipun, h1, h2 dan h3 benar-benar dimaksudkan memiliki arti yang lebih semantik kepada mereka, dimana h1 adalah benar-benar sebuah judul: judul halaman web, judul kolom atau sesuatu seperti itu teks. Jadi aku sengaja mengatakan h1 CS50 pencarian> h1 untuk specifiy bahwa ini benar-benar pos, judul halaman saya. Bukan dalam arti judul bar judul, tapi judul yang Anda benar-benar melihat di halaman web itu sendiri, di dalam tubuh. Sekarang ini, Anda mungkin bisa menebak apa itu, meskipun kita memiliki potongan baru beberapa sintaks. Ini adalah bentuk. Jadi web benar-benar mendapat menarik ketika website mengambil masukan dari pengguna. Di kelas ini, dalam masalah set pada pemrograman web, kita tidak akan membuat website, per se, dengan konten statis yang menunjukkan foto-foto yang Anda telah diambil, atau ini adalah resume saya, dan hal-hal tentang saya, karena hal-hal yang relatif mudah untuk menempatkan bersama-sama. Sulit untuk membuat hal-hal yang indah di Web, tapi setidaknya memasang konten cukup sepele. Tapi hal-hal benar-benar menarik ketika seseorang dapat mengunjungi situs web Anda dan memberikan masukan dan dapat mengisi formulir, dapat memeriksa kotak centang off dan dapat berinteraksi dengan website Anda. Dan memang, mungkin setiap website yang Anda pedulikan hari ini, secara rinci, entah bagaimana interaktif. Facebook, Google, dan sejenisnya, yang mengambil input pengguna dan menghasilkan output disesuaikan. Jadi mari kita mulai melakukan itu sekarang. Mari kita transisi sekarang dari hanya menggunakan HTML untuk markup dari konten statis sebagai gantinya mekanisme pengiriman untuk konten dinamis. Dan untuk mencapai tujuan itu, mari kita menerapkan mesin pencari kita sendiri. Mari kita lakukan sebagai berikut. Berikut adalah tag form. Atribut aksi menetapkan bahwa ketika pengguna mengisi formulir ini dengan keyboard mereka, maka akan diserahkan ke URL ini di sini. Jadi aku jenis kecurangan. Ini akan membawa kita sedikit lebih lama dari satu kelas untuk melaksanakan seluruh mesin pencari, jadi kami hanya akan melakukan front end, sehingga untuk berbicara. Kami akan melakukan bagian yang memungkinkan pencarian pengguna, dan kami akan semacam punt ke Google bagian yang sulit untuk menemukan hasil pencarian, namun, secara khusus, saya akan berbicara dengan web server Google menggunakan salah satu dari dua metode yang sangat populer. Satu yang bisa, yang lain, bahwa kita akhirnya akan melihat, karena pos, meskipun ada orang lain yang kurang sering digunakan. Jadi bisa saja memunculkan ide, saya ingin mendapatkan beberapa konten, mendapatkan beberapa hasil pencarian. Ini, Anda mungkin bisa menebak apa hal ini. Ini adalah beberapa jenis masukan, itu, pada kenyataannya, akan terlihat seperti kolom teks, dan nama itu masukan, nama variabel itu, sehingga untuk berbicara, yang akan q untuk query dengan konvensi. Dan lagi, jenis masukan ini tidak akan menjadi kotak centang; itu tidak akan menjadi menu, itu akan menjadi text field seperti yang dilambangkan oleh atribut di sini, dan ini kotak teks, seperti istirahat garis, baik ada atau tidak. Jadi kita memiliki elemen kosong dengan garis miring di dalam tag tersebut. Lalu aku akan menempatkan satu baris, dan Anda bisa, mungkin, coba tebak ini akan dapat dilakukan. Ini adalah satu lagi jenis form input. Yang satu ini akan digunakan untuk mengirimkan formulir. Jadi ini akan menjadi tombol besar bahwa pengguna dapat mengklik untuk mengirimkan formulir, dan label pada tombol yang akan menjadi 'CS50 Cari. " Tutup bentuk, tubuh dekat, dekat HTML. Mari kita lihat apa yang kita miliki dalam bentuk halaman web. Jadi biarkan aku pergi ke browser saya, biarkan aku pergi, masih, ke host lokal. Ini masih index.html, jadi jika saya ingin melihat file ini disebut search0, Saya hanya bisa melakukan / search0.html, masukkan - dan yang pertama dari kesalahan saya. Apa yang terjadi? Saya jelas tidak memiliki izin untuk mengakses file ini, untuk beberapa alasan. Tapi itu karena, tidak seperti pekerjaan yang kita lakukan sejauh ini di C, di mana program Anda menulis diasumsikan runable oleh Anda, dieksekusi oleh Anda, itu tidak benar-benar terjadi di Web, dimana kadang-kadang Anda mungkin ingin membuat file di server, tetapi Anda tidak ingin seluruh dunia untuk dapat melihat mereka. Sebaliknya, Anda ingin dunia melihat beberapa file tetapi tidak yang lain, hanya demi privasi itu. Jadi itu lebih dari dasar opt-in ketika Anda melakukan hal-hal di Web. Dan jadi biar benar-benar ketik ls di sini, dan Anda melihat file yang saya miliki, tapi ingat bahwa jika saya lakukan ls-l lama, Aku akan mendapatkan daftar panjang yang memberi saya beberapa rincian lebih lanjut tentang file yang sekarang, benar-benar, untuk pertama kalinya relevan untuk kita. Perhatikan bahwa di paling kanan adalah nama dari file saya, dan kemudian saat di mana mereka terakhir diubah atau disalin. Nomor ini di sini adalah apa? Apakah Anda ingat? Ukuran dalam byte, seberapa besar file tersebut. Jadi saya tampaknya memiliki semacam logo di sini yang lebih besar dari semua file lainnya. Ini adalah siapa saya, ini adalah apa yang saya dan apa yang kelompok saya masuk Tapi kemudian, di sini di sebelah kiri adalah sedikit dari urutan samar, dan kami berbicara, saya pikir, secara singkat tentang hal ini di masa lalu, tetapi ini harus dilakukan dengan izin. Dan bahkan jika itu sedikit kabur, RW mungkin berarti membaca & menulis. Jadi ternyata bahwa strip menunjukkan set berbeda perizinan untuk orang yang berbeda. Dan pola ini, pada dasarnya, sebagai berikut. Ketika Anda melihat urutan garis sini, mereka terlihat sebagai berikut. Ada tanda hubung, maka ada tiga strip, kemudian ada tiga, maka ada tiga. Yang pertama adalah baik dasbor atau iklan itu untuk direktori. Jadi yang satu ini cukup mudah. Jika itu folder, ia mengatakan d, selain itu tanda hubung. Ada beberapa kasus lain, tapi untuk saat ini kita hanya akan peduli tentang file dan direktori. Ketiga berikutnya strip - dan saya sudah artifisial dimasukkan ruang. Mereka, jelas, tidak ada ketika kami melihat mereka beberapa saat yang lalu. Ini adalah hak akses pemilik file, dan ingat dari kedua lalu bahwa itu membaca & menulis. Itu karena saya, sebagai orang yang menciptakan file ini beberapa saat yang lalu, Aku, hanya dengan default, pada komputer Linux, memiliki kemampuan untuk terus membaca dan menulis file tersebut. Jadi sistem operasi hanya memberi saya RW otomatis. Yang tengah berhubungan dengan kelompok saya, bahwa siswa, yang merupakan semacam berarti pada alat karena aku satu-satunya orang menggunakan alat. Jadi biarkan aku hanya melambaikan tangan saya pada saat itu untuk saat ini. Tapi yang terakhir adalah yang paling penting untuk Web. Ini adalah semua orang di dunia, dan fakta bahwa yang --- berarti bahwa tidak ada orang lain di dunia ini mempunyai izin untuk file ini. Jelas masalah, jadi saya harus memperbaiki ini oleh entah bagaimana memberikan dunia apa? Membaca & menulis? Itu mungkin bodoh, kan? Saya tidak ingin orang di Web untuk pergi untuk mengunjungi halaman saya dan entah bagaimana mengubah file tersebut, meskipun mereka benar-benar tidak bisa dengan file HTML, tetapi hanya pada prinsipnya, mungkin hanya ingin mereka bisa membacanya. Apa artinya untuk membacanya? Ini tidak berarti mereka akan peduli tentang HTML yang sebenarnya, tapi browser harus mampu mengurai bahwa bahasa markup, atas ke bawah, kiri ke kanan. Jadi seseorang di Web harus mampu membacanya, jadi saya minimal perlu memberikan r. Saya bisa melakukan ini dengan cara yang berbeda, tapi mungkin yang paling sederhana adalah dengan menjalankan perintah ini di sini. Chmod, modus perubahan, maka + r sehingga semua orang, di dunia + baca, dan kemudian nama file, search0.html. Sekarang jika saya lakukan ls-l lagi, perhatikan bahwa file yang telah berubah, dan memang, saya sudah dihidupkan r untuk semua orang. Saya juga menyalakannya untuk kelompok saya, tapi itu baik-baik saja, karena jika aku berpaling pada untuk semua orang, kelompok saya adalah bagian dari itu. Jadi itu baik juga. Ini hanya berarti komputer kini telah berhasil dibaca. Sekarang biarkan aku kembali ke browser saya, klik reload. Ah-ha. Kami sekarang memiliki CS50 Cari. Saya sudah diperbesar sedikit artifisial - mesin pencari cukup mengerikan. Tapi mari kita lihat apakah itu benar-benar bekerja. Pertama, biarkan saya melakukan cek kewarasan cepat, biarkan aku mengendalikan klik dan melihat sumber halaman. Perhatikan bahwa dalam Chrome kita sekarang melihat HTML yang sama yang saya buat sendiri. Jangan bingung di sini, meskipun. Aku tidak bisa mulai mengubah kode di sini, karena browser memiliki pandangan read-only dari kode ini. Browser baru saja meminta host lokal untuk sebuah file bernama search0.html. Sekarang murni kebetulan bahwa alat kebetulan pada komputer yang sama sebagai browser saya. Aku hanya bisa memiliki, ekuivalen, telah mengetik di www.facebook.com/search0.html, dan jika Facebook memiliki file bernama itu, saya kemudian akan melihat HTML mereka. Dan, tentu saja, saya tidak bisa mengubah file yang datang kembali dari Facebook, baik. Jadi sekarang kita semacam mengaburkan garis. Alat ini baik server, melayani sampai halaman web, tetapi juga klien dalam arti bahwa saya menggunakan browser untuk benar-benar berbicara dengan server. Jadi mari kita lihat apakah saya mesin pencari Google bekerja. Biarkan aku pergi ke depan dan mencari fox coklat cepat, masuk. Dan voila, saya sekarang memiliki mesin pencari sendiri. Tapi bagaimana cara kerjanya? Sedikit peregangan, tapi - dan sekarang Anda tidak dapat melihat, tepatnya, bagian itu menarik. Perhatikan apa yang terjadi. Perhatikan URL. Ternyata bahwa metode itu, disebut dapatkan, super-sederhana. Ketika Anda tentukan dalam bentuk yang Anda ingin 'mendapatkan' hasil dari beberapa server, apa yang akan lakukan adalah mengambil apa pun yang Anda ketik ke dalam formulir dan memasukkannya ke dalam URL. Ini akan menstandarisasi bagaimana itu akan dimasukkan ke dalam URL sebagai berikut. Perhatikan bahwa ini adalah URL yang nilai atribut tindakan saya. Di situlah saya ingin formulir berakhir. Tapi kemudian melihat ini tanda tanya. Ini adalah konvensi di Web dimana untuk memberikan masukan pengguna ke sebuah situs web, Anda tambahkan ke URL tanda tanya, dan kemudian Anda memiliki sejumlah besar pasangan kunci-nilai. Nama kunci, atau dikenal sebagai parameter di Web, maka Anda memiliki tanda yang sama, maka Anda memiliki nilai parameter yang. Jadi pada dasarnya nama variabel dan nilai variabel, namun nama mereka variabel dan nilai-nilai berasal dari bentuk HTML. Mengapa Plus sana, menurut Anda? Karena aku tidak mengetik + di antara kata-kata saya. [Mahasiswa, dipahami] >> Ya, itu hanya untuk spasi. Kemungkinannya, setiap kali Anda telah melihat URL, ada pernah ada ruang di dalamnya, jika hanya karena jika ada, Anda tidak bisa benar-benar menyalin dan tempel ke IM atau ke email karena akan pecah. Anda ingin semuanya menjadi satu string karakter bersebelahan. Jadi browser cukup pintar untuk menyadari, eh-eh. Jangan hanya menempatkan ruang di sana. Biarkan saya menyandikan ruang dalam beberapa cara standar. Salah satu konvensi untuk melakukannya adalah memiliki browser otomatis menempatkan + di mana Anda sebaliknya akan memiliki ruang. Jadi sekarang, pemberitahuan Google telah jenis user-friendly. Aku pasti tidak menciptakan halaman web ini, tetapi mereka telah prepopulated bidang teks mereka sendiri dengan apa, tepatnya, saya mengetik masuk Misalkan saya ingin mencari sesuatu yang lain, seperti anjing malas. Saya hanya bisa mengetik ini di sini, re-search. Perhatikan bahwa URL perubahan di sini, tetapi perhatikan bahwa aku benar-benar dapat mencari apapun yang saya inginkan hanya dengan memahami bagaimana bekerja URL. Aku bisa melakukan kucing malas, masukkan, dan perhatikan sekarang aku mendapatkan sangat malas - harus kita? Saya merasa seperti kita seharusnya. Saya mendapatkan kucing sangat malas. Baiklah. Ini adalah salah satu hal terbodoh yang telah kami lakukan. Tapi itu adalah kucing malas. Bagaimanapun, apa takeaway kunci di sini? Sekarang kita semacam bermain di dunia HTTP. HTML adalah bahasa markup ini hanya, tag terbuka, tag dekat, yang memberitahu browser bagaimana untuk membuat konten pada halaman web. Tapi ketika Anda mulai transmisi data di Internet antara browser web dan server, yang mana protokol ini dikenal sebagai HyperText Transfer Protocol mengambil alih. Ini adalah semacam konvensi manusia, ketika Sam dan saya berjabat tangan pada hari Senin, memulai sambungan dan kemudian menutup koneksi, ide yang sama di sini. Bagaimana hasil Google datang kembali ke saya? Bagaimana pengiriman formulir saya pergi ke Google? Nah, ingat dari hari lain bahwa apa yang sebenarnya terjadi bawah kap ketika Anda meminta halaman web, Browser Anda mengirimkan pesan yang agak-samar seperti GET / HTTP/1.1 untuk home page default. Atau, dalam hal ini, karena saya secara khusus meminta sebelumnya search0.html, ini kemudian akan menjadi pesan yang agak samar- bahwa browser saya mengirimkan ke alat. Atau, dalam hal ini dari Google, apa yang sebenarnya dikirim adalah permintaan untuk / pencarian, dan kemudian q =? kucing malas, dengan ditambah ada. Jadi pesan ini, bahwa saya, manusia, saya tidak pernah mengetik, tetapi yang dikirimkan oleh browser saya, ini adalah bagaimana HTTP terjadi. Ini adalah setara dengan tangan kami telah terguncang. Ini adalah permintaan, dan server yang akan mengirim respon. Jadi mari kita lihat ini di bawah tenda. Seperti sebelumnya, kita dapat membuka bidang ini khusus dalam browser. Lihat halaman, memeriksa elemen. Jadi di bawah memeriksa elemen, melihat bahwa apa yang terjadi di Chrome, dan IE dan Firefox memiliki mekanisme yang sama, kita memiliki alat pengembang ini dapat diakses kepada kami. Orang normal tidak menggunakan tab. Tapi kita, sekarang, tertarik pada apa yang terjadi bawah kap pada tingkat jaringan. Jadi jika saya naikkan tingkat jaringan di sini, biarkan aku pergi ke depan dan memperluas jendela ini, membuka entri ini di sini, dan melihat header. Jadi apa yang terjadi ketika saya meminta file dari server web adalah browser saya mengirimkan sejumlah hal. Dan biarkan aku melihat sumber. Jadi di bawah header permintaan, dan ini hanya Chrome menunjukkan kepada saya beberapa output diagnostik, semacam seperti debugger dari beberapa macam, melihat bahwa apa yang telah saya disorot di sini adalah tepat apa Chrome mengirimkan ke server untuk meminta sebuah file yang bernama search0.html. Hal ini memberitahu server apa yang dianggapnya namanya, berkat bidang usus tuan rumah, maka ada beberapa hal yang cukup esoteris di sini, seperti ada hubungannya dengan tanggal dan waktu, ada hubungannya dengan bahasa yang browser mengerti, namun garis benar-benar penting adalah dua pertama di sini. Apa server merespon dengan? Nah, jika kita scroll ke bawah sini dan melihat sumber hal ini, perhatikan bahwa server telah menanggapi dengan pesan yang agak samar juga, 304 tidak diubah. Itu agak aneh, biarkan aku benar-benar mencoba untuk memperbaiki hal ini. Biarkan aku tahan shift dan klik ulang di sini untuk memaksa browser untuk benar-benar membuat permintaan ini untuk pertama kalinya. Kemudian biarkan aku memperbesar, dan kita akan melihat sekarang bahwa respon server, karena saya memegang pergeseran, adalah 200 OK. Jadi Anda mungkin pernah melihat nomor 200 dalam jumlah konteks Web, tapi apa Anda telah kadang-kadang terlihat tak terduga dari server? 404, file tidak ditemukan, 403, terlarang, 500, server error. Jadi ada kode-kode numerik bahwa dunia menggunakan di Web untuk menandakan kesalahan, seperti fungsi C dapat kembali kesalahan dan utama dapat kembali kode keluar. 200, meskipun, Anda jarang melihat karena itu berarti semuanya baik-baik. Dan 304 Anda mungkin pernah melihat karena apa itu menandakan? Itu tidak memiliki - mari kita lihat apakah kita dapat mensimulasikan ini lagi - Oh, sekarang sudah tidak bekerja sama. 304 mengatakan tidak diubah, jadi mengapa server bahkan menanggapi? Nah, untuk efisiensi, web server secara otomatis untuk Anda, jika file tidak berubah, tidak akan memancarkan kembali seluruh file HTML. Itu hanya akan memberitahu browser itu belum berubah. Hanya menggunakan salinan yang sudah Anda miliki. Jadi ada gagasan dari caching di Web untuk kinerja, sehingga Anda tidak membuang-buang waktu dan bandwidth limbah download file lagi dan lagi tidak perlu. Tapi ini halaman web, sekarang, adalah super-sederhana, dan hanya menunjukkan saya HTML yang datang kembali. Mari kita benar-benar menggunakan tab jaringan sekarang untuk melakukan pencarian Google seperti rubah coklat cepat. Biarkan aku kemudian klik CS50 pencarian, dan sekarang, perhatikan di bagian bawah sini sejumlah barang kembali karena ketika saya mengunjungi sebuah website nyata seperti Google.com, mereka memiliki gambar, mereka memiliki teks, mereka memiliki bahasa yang disebut JavaScript sana. Jadi setiap baris dalam tabel ini di sini merupakan sesuatu yang Google dimuntahkan dalam menanggapi permintaan tunggal saya. Yang saya peduli, meskipun, ini yang pertama. Dan jika saya pergi ke pencarian, permintaan, klik lihat sumber di sini, melihat bahwa, memang, pesan samar bahwa browser saya dikirim ke Google adalah dua baris disini, diikuti oleh beberapa informasi rahasia di sini yang akan kita abaikan untuk saat ini. Tapi perhatikan juga, apa yang Chrome cukup berguna dengan, itu juga menunjukkan kepada saya string query yang dikirim masuk Jadi daripada menunjukkan saya ini, yang secara harfiah dikirim, jika saya melihatnya diterjemahkan, Chrome, hanya untuk tujuan debugging, untuk pengembang seperti kita, itu hanya menunjukkan saya versi manusia-ramah - yang tidak bagaimana Anda mengeja rubah, rupanya. Aku hanya melihat ini sekarang - tapi itu menunjukkan kepada Anda apa yang saya, rupanya, diketik. Sementara itu, respon yang datang kembali dari server lagi 200 OK. Tetapi termasuk dalam respon itu, tentu saja, jika kita benar-benar melihat HTML halaman - Maaf, ini adalah cara pintas keyboard sedikit kacau hari ini. Aku akan menangani ini nanti. Jadi, jika kita benar-benar melihat sumber halaman, yang bisa saya lakukan di sini dengan mengklik respon, ini adalah apa yang benar-benar meludah kembali, selain itu pesan 200 OK samar dari server. Sebuah samar sedikit, tetapi di mana semua ini berasal? Nah, mari kita lakukan satu hal lain di sini. Perintah lain yang agak-samar, tapi jenis yang satu ini rapi dalam hal itu mengungkapkan kepada kita apa yang terjadi di bawah tenda. Jadi aku kembali pada Mac saya di sini, saya telah terhubung melalui program yang disebut SSH, Secure Shell, ke server lain karena sebagian besar komputer Harvard memblokir perintah kita akan menjalankan karena ada perintah ini pada beberapa server disebut traceroute yang memungkinkan Anda untuk melacak rute antara titik a dan b, dan sejauh ini kami telah mengambil sepenuhnya untuk diberikan bahwa saya dapat mengetikkan Google.com dan entah bagaimana mendapatkan kembali data dari setengah seluruh negara atau setengah di seluruh dunia. Dengan traceroute kita benar-benar dapat menyelam dalam sedikit lebih dalam tentang bagaimana Internet bekerja, dan melihat apa yang terjadi di bawah tenda. Jadi mari kita pergi ke depan dan sewenang-wenang melacak rute ke, katakanlah, Stanford.edu, yang di seluruh negeri, dan tekan enter. Perintah ini dapat menjadi super-cepat atau super-lambat, tapi apa yang kita lihat sekarang, baris demi baris, adalah setiap salah satu dari langkah-langkah atau hop antara kami dan Palo Alto, atau Stanford, di mana mereka memiliki server web mereka. Jadi, apa masing-masing baris mewakili lebih konkret, meskipun? Sepotong jargon dari Internet? [Mahasiswa, dipahami] >> Apa itu? [Mahasiswa, dipahami] >> Oh, jadi ada waktu, tapi apa setiap baris - apa yang saya maksud dengan hop? Nah, ada hal-hal di Internet disebut router. Dan router, seperti namanya, rute informasi dari satu titik ke titik b. Tapi ada beberapa hal di luar a dan b. Ada c dan d dan e dan f antara baris 1, yang terjadi menjadi alamat IP komputer saya, atau alamat numerik saya, yang unik mengidentifikasi komputer saya, dan langkah 15, yang sebenarnya server web keenam, ternyata, yang aku menyimpulkan dari ini, atau versi 6 dari server web mereka di Stanford. Tapi apa semacam rapi adalah, kita dapat melihat jalan bahwa saya dan 0 s 1 mengambil dari komputer saya ke Stanford. Jadi langkah 1 adalah alamat komputer saya sendiri. Setiap komputer di Internet memiliki pengenal yang unik yang terlihat seperti ini. Number.number.number.number. Di suatu tempat di kampus ini, mungkin di pusat ilmu pengetahuan, adalah router disebut Core Gateway 2-te83, apa pun artinya, jadi ini adalah salah satu router besar Harvard mewah yang banyak rute lalu lintas mereka. Berikut lain dari router Harvard, yang satu ini adalah Border Gateway, berarti perbatasan itu mungkin di pinggiran kampus di suatu tempat. Lalu ada satu nox, baris 4, yaitu Crossroads Utara, yang merupakan ISP besar, penyedia layanan Internet, bahwa tempat-tempat seperti Harvard menghubungkan hingga. Tapi kemudian hal-hal mendapatkan sedikit menarik di baris 6. Di mana bit saya tiba-tiba? Kansas. Dunia memiliki kebiasaan menggunakan kode bandara di banyak hal-hal ini, atau singkatan setidaknya untuk negara atau kota, sehingga terlihat seperti, hanya dalam 60 ms, paket informasi, 0 dan 1 adalah dari laptop saya mendapat semua jalan ke Kansas, dan sekali lagi, dalam 60 ms. Apalagi, setelah Kansas, mereka mengambil tur melalui Houston, mungkin, seperti yang disarankan oleh nama server ini. Jadi hanya sebagai server di Internet harus memiliki alamat numerik, itu juga bisa, opsional, memiliki alamat yang sedikit lebih manusia-ramah bahwa manusia datang dengan. Sekarang, pada langkah 8, kita tidak tahu apa ini. Kadang-kadang router hanya jenis mengabaikan Anda, dan mereka hanya tidak menjawab pertanyaan, jadi itu baik-baik saja. Yang setelah langkah 8 tampaknya mana? L.A. Perhatikan hanya dalam 78 ms, apa yang membawa kita manusia seperti 6 + jam untuk melakukannya secara fisik, mengambil paket informasi di Internet 78 ms untuk melakukan perjalanan sejauh itu. Langkah 10 adalah di LA juga, dan langkah 11 tampaknya sudah utara, di dekat Stanford. Ini adalah batas router mereka, atau router perbatasan. Beberapa langkah di Stanford yang mengabaikan kita, dan terakhir, kami mencapai server web hanya dalam 87 ms. Sekarang, semua angka-angka ini, sebagai samping, hanya memberitahu Anda berapa lama waktu yang dibutuhkan untuk data untuk mendapatkan dari saya untuk masing-masing router, dan itu tidak akumulatif. Apa program ini dilakukan adalah, pertama kali mengirimkan pesan, pada dasarnya, ke router pertama. Kemudian satu ke router kedua, kemudian satu ke router ketiga, mengukur setiap kali. Jadi dalam teori, kali ini akan tumbuh atau setidaknya cukup dekat satu sama lain, dan, memang, orang-orang yang ada di sini di kampus super-kecil. Segera setelah Anda mulai terjadi di seluruh negeri, dibutuhkan data yang sedikit lebih lama untuk melakukan perjalanan, lebih dekat ke 100 ms, memberi atau mengambil. Tapi mari kita pergi ke arah lain sekarang. Bagaimana Cambridge University di Inggris? Biarkan aku bukannya menjalankan traceroute dari www.cam untuk Cambridge, Ac untuk akademik.,. Uk, dan tekan enter sini. Itu cukup sialan cepat. Data saya benar-benar pergi ke Cambridge, Inggris, dalam hitungan detik waktu. Jadi mari kita lihat jalan yang butuh. Harvard, Harvard, Harvard, Crossroads Utara, yang merupakan ISP, dan kemudian ini adalah Crossroads Utara, dan kemudian bam. Apa yang ada di antara langkah 6, dan 7 router 6 dan 7? The Samudra Atlantik. Dan kami menyimpulkan ini dari kenyataan bahwa kita pergi dari 20 ms 80 ms sini untuk sini. Jadi sesuatu yang mengambil 60 ms, memberi atau mengambil, untuk mendapatkan lebih. Dan itu mungkin tubuh besar air. Apa yang terjadi setelah itu? Nah, di sini kita berada di London, hanya 88 ms nanti. Lebih London, lebih London, tidak yakin di mana ini, tapi kami akan menganggap itu di luar London, Cambridge sini, dan akhirnya kita - secara harfiah, University of Cambridge Something.net,. Dan kemudian, akhirnya, di baris 16, web server mereka tampaknya disebut Scorpius bawah kap mesin, meskipun kita tahu sebagai www. Jenis pikiran-bertiup, saya pikir. Pertama kali saya pernah melakukan ini, itu benar-benar meniup pikiran saya. Sayangnya, Harvard blok semacam ini lalu lintas, biasanya, pada jaringan. Jadi Anda tidak bisa melakukannya super mudah. Sadarilah, meskipun, ini di sini adalah mungkin. Baiklah. Mari kita 5 menit istirahat kami di sini. Kami akan kembali dan menyelam lebih dalam. Jadi kita kembali, dan kami sudah jenis melenggang sekitar dalam arah yang berbeda beberapa di sini. Jadi mari kita meringkas apa yang telah terjadi di sini. Kami memulai percakapan berbicara tentang bahasa yang disebut HTML. Sekali lagi, bukan bahasa pemrograman. Ini hanya sebuah bahasa markup yang sebagian besar tentang estetika dan penataan konten dalam bentuk halaman web. Tapi HTML, oleh karena itu, perlu semacam mekanisme untuk bepergian antara browser web dan server. HTML Oleh karena itu semacam naik di atas bahasa lainnya, atau lebih tepat, protokol, yang dikenal sebagai HTTP. Dan HTTP, seperti yang telah kita lihat sejauh ini, adalah jenis analog dengan konvensi ini manusia berjabat tangan. Ketika browser ingin meminta halaman dari server, mengirimkan bahwa "mendapatkan" permintaan dari browser ke server, dan kemudian server merespon dengan nomor seperti 200, semua baik-baik saja, serta HTML atau beberapa nomor buruk seperti 404, file tidak ditemukan. Tapi sementara itu, HTTP itu sendiri tidak Internet, per se. HTTP hanya layanan, fitur dari Internet seperti G chatting adalah layanan lain, seperti email merupakan layanan lain. Ada segala macam hal yang dapat kita lakukan di Internet. HTTP adalah hanya salah satu aplikasi. Jadi di atas - HTTP adalah di atas sesuatu yang lain yang kita tidak menyebutkan nama, Anda mungkin sudah pernah mendengar nama, TCP / IP. Jadi cerita kami hanya diberitahu ada adalah semua tentang bagaimana data perjalanan dari titik ke titik b. Dan dalam hal ini, kita melihat pada tingkat yang sangat rendah router ke router ke router ke router, bagaimana data sebenarnya sedang dikirim. Tapi sepanjang jalan, itu akan menghadapi berbagai hambatan. Selain router ini, ada hal-hal yang disebut firewall di Internet, dan sehingga data, seperti yang kita hanya transmisi dari saya ke Stanford, dari saya ke Cambridge, dikirim ke, pada tingkat ini, sesuatu yang disebut alamat IP. Kami melihat ini beberapa saat yang lalu, dan alamat IP hanya alamat numerik dari w.x.y.z bentuk, di mana masing-masing adalah antara, memberi atau mengambil, 0 dan 255, meskipun Anda tidak dapat cukup menggunakan semua angka-angka. Tapi masing-masing pemegang tempat adalah angka antara 0 dan 255. Jadi alamat IP hari ini adalah 32 bit. Sekarang, yang memberi kita alamat IP berapa banyak mungkin di dunia? Sekitar 4 miliar, karena setiap saat kita sedang menghitung dalam kekuatan dari 2 sepanjang jalan hingga 32 dari sesuatu, yang biasanya memberi kita 4 miliar. Jadi itu banyak alamat IP, tetapi Anda mungkin telah membaca, atau mungkin Anda sekarang melihat dalam pers populer, dorongan menuju versi baru dari IP yang disebut IPv6. Saat ini kita sedang menggunakan versi 4. Ada benar-benar belum versi 5, kami hanya melompat tepat untuk 6. Versi 6 akan menggunakan 128 bit untuk alamat IP, yang panik besar. Kita tidak harus berlari keluar untuk beberapa waktu sekarang, tapi kami telah mulai kehabisan alamat IP versi 4, karena kita semua memiliki hal-hal tidak hanya seperti laptop dan desktop, banyak dari kita memiliki telepon, banyak dari kita memiliki perangkat lain seperti TiVo dan sejenisnya yang memiliki alamat IP sendiri. Harvard sendiri memiliki puluhan ribu komputer. Jadi dunia ini benar-benar kehabisan alamat IP, setidaknya dari formulir ini. Jadi selama beberapa tahun ke depan, Anda akan melihat alamat pada komputer Anda sendiri mungkin perlahan-lahan mengubah sebagai perusahaan semakin banyak dan universitas mulai mendukung versi yang lebih baru. Tapi alamat IP tidak cukup untuk komputer untuk meminta data dari komputer b. Karena komputer b bisa menjadi server, dan server, seperti yang saya sebutkan sebelumnya, dapat melakukan hal-hal tandan. Hal ini dapat meng-host halaman web, dapat menjadi server email, dapat menjadi server Skype, dapat menjadi server obrolan G. Semua berbagai layanan yang dapat disediakan di server semua bisa, secara fisik, berada di mesin yang sama. Jadi selain alamat IP, dunia memiliki hal-hal yang disebut port di Internet. Sebuah port hanya nomor, sehingga ada nomor unik untuk HTTP. Nomornya adalah 80. HTTP juga menggunakan nomor 443, namun lebih khusus, untuk HTTPS dienkripsi. Setiap kali Anda melihat s, untuk aman, yang menggunakan nomor yang berbeda. Ada nomor lain, seperti 25, yang digunakan untuk sesuatu yang disebut SMTP, atau dikenal sebagai email. Ada sesuatu yang disebut 22 untuk SSH, dan ada sejumlah besar pelabuhan lain di luar sana. Sekarang, kita manusia jarang melihat angka-angka. Namun, ketika Anda mengetikkan alamat seperti http://www.facebook.com, browser diam-diam memasukkan 80, karena Anda menggunakan HTTP. Jika Anda, sebagai gantinya, HTTPS jenis, itu diam-diam memasukkan 443. Dan kita bisa melihat jenis ini secara manual jika saya menarik sebuah Brower dan pergi ke http://www.facebook.com:80. Oleh karena itu secara eksplisit tidak hanya mengutip nama website tapi port yang saya ingin berbicara dengan, dan tekan enter. Perhatikan menghilang, karena browser mengasumsikan, oh, 80, aku bahkan tidak akan repot-repot untuk menunjukkan bahwa Anda. Tapi alasan untuk ini adalah bahwa jika saya benar-benar ingin mengirim seseorang email, Saya benar-benar akan mengirimnya kepada mereka pada port 25, bahwa menjadi SMTP. Sedikit terlalu menyederhanakan, tapi beberapa dari Anda memiliki teman-teman yang benar-benar bekerja di Facebook, dan mereka, sama, memiliki server yang menerima email. Setiap kali Anda mengirim email, gmail apa yang dilakukannya bagi Anda atau Outlook atau apa pun program yang anda gunakan, itu semacam diam-diam memasukkan nomor itu juga, 25, dalam kasus itu. Ini kombinasi alamat IP dan nomor yang unik mengidentifikasi komputer di Internet dan layanan tertentu pada komputer itu. Sekarang, tentu saja, sebagian besar dari kita mungkin pernah diketik secara manual alamat IP. Mungkin Anda miliki dalam alat, tetapi di dunia nyata, tidak begitu banyak. Mengapa kita tidak mengetik alamat IP ke browser? Ini akan bekerja, pada kenyataannya, kita bisa melihat ini, mari saya tunjukkan satu lagi perintah yang harus bekerja paling di mana saja di kampus Harvard pada Mac atau PC. Ada perintah ini disebut nslookup, nama lookup server. Jika saya mencari www.cnn.com, ternyata memiliki CNN - oh, menarik. CNN telah mulai menggunakan layanan web Amazon. Anda mungkin tahu dari komputasi awan, salah satu Amazon satu pemain besar dalam komputasi awan. Apa yang saya lakukan adalah hanya, aku berkata, 'Beri aku alamat server web CNN,' tapi ternyata bahwa server web CNN dikelola oleh Amazon, Amazon layanan web, ini menunjukkan. Dan alamat server yang ini di sini. Jadi saya tidak yakin apakah ini akan berhasil, karena mereka tidak terbiasa menggunakan Amazon. Tapi mari kita coba ini, http://, alamat IP, masukkan, dan - apakah itu akan berhasil? Ya. Hal ini akan bekerja. Internet super-lambat hari ini. Tapi, suatu saat, Anda akan melihat beberapa berita. Di sana kami pergi. Bank of America sedang digugat. Baiklah. Hal ini karena alamat IP hanya terjadi oleh identik dengan www.cnn.com. Tentu saja, itu akan menjadi pemasaran yang mengerikan untuk mengatakan, kunjungi kami di Web di 50.112.94.127. Anda tidak akan pernah ingat. Jadi, bahkan hari ini Anda mungkin ingat hal-hal seperti 1-800-COLLECT atau mnemonik dunia datang dengan untuk nomor telepon. Yang, sebelum ponsel, yang agak sulit untuk diingat sampai Anda hanya bisa mengetik dalam dan melupakannya. Jadi Web, juga memiliki konvensi ini nama dan alamat IP, dan ada hal-hal di luar sana yang disebut DNS server, sistem nama domain server, yang menerjemahkan alamat IP ke nama dan sebaliknya. Jadi itulah apa yang terjadi di bawah tenda. Pada akhirnya, kita memiliki TCP / IP, yang merupakan protokol ini sangat rendah tingkat itu, benar-benar, hanya mendapatkan 0 dan 1 di seluruh Internet, dan ia melakukannya dengan menempatkan mereka ke dalam amplop virtual, jika Anda mau, dan menulis di luar amplop alamat IP dari tujuan, serta nomor port numerik dari layanan pada itu tujuan yang ingin berbicara dengan. Sementara itu, di amplop ada juga sesuatu yang dikenal sebagai alamat pengirim, yang merupakan alamat IP Anda, sehingga ketika CNN mendapat paket informasi dari Anda, membuka amplop maya, melihat bahwa Anda ingin halaman rumah, ia tahu dari bagian pengirim amplop maya siapa yang harus mengirim kembali ke HTML. Jadi mari kita lihat ini secara rinci sedikit lebih. Ini adalah dari sebuah perusahaan bernama Ericson, dari beberapa tahun lalu. Dan mereka mengambil beberapa kebebasan dengan bagaimana Internet benar-benar bekerja, tetapi melukiskan gambaran yang jauh lebih visual daripada kapur hanya di sini. Jadi saya memberi Anda "Sedikit Internet." [Narator] Untuk pertama kalinya dalam sejarah, orang dan mesin bekerja sama, mewujudkan mimpi. Sebuah gaya menyatukan yang tidak mengenal batas geografis. Tanpa memandang ras, suku, atau warna. Sebuah era baru di mana komunikasi benar-benar membawa orang bersama-sama. Ini adalah The Dawn of Net. Ingin tahu cara kerjanya? Klik di sini untuk memulai perjalanan Anda ke Net. Sekarang, apa yang terjadi ketika Anda mengklik pada link tersebut? Anda memulai arus informasi. Informasi ini perjalanan ke dalam ruang surat pribadi Anda mana paket IP Mr itu, label, dan mengirimkannya dalam perjalanan. Setiap paket terbatas dalam ukuran. Ruang mail harus memutuskan bagaimana membagi informasi dan bagaimana paket itu. Sekarang, paket membutuhkan label yang berisi informasi penting seperti alamat pengirim, alamat penerima, dan jenis paket itu. Karena ini paket tertentu akan keluar ke Internet, itu juga mendapat alamat untuk server proxy, yang memiliki fungsi khusus, seperti yang akan kita lihat nanti. Paket ini sekarang diluncurkan ke jaringan area lokal, atau LAN. Jaringan ini digunakan untuk menghubungkan semua komputer lokal ' router, printer, dan sebagainya, untuk pertukaran informasi dalam dinding-dinding fisik bangunan. LAN adalah tempat yang cukup terkendali, dan, sayangnya, kecelakaan bisa terjadi. Jalan raya dari LAN dikemas dengan semua jenis informasi. Ini adalah paket IP, paket Novell, AppleTalk paket. Mereka akan melawan lalu lintas, seperti biasa. Router lokal membaca alamat dan, jika perlu, mengangkat paket ke jaringan lain. Ah, router. Sebuah simbol kontrol di dunia yang tampaknya tidak teratur. [Router bergumam dan berbicara dengan dirinya sendiri] [Narator] Itu dia, sistematis, tidak peduli, metodis, konservatif, dan kadang-kadang tidak cukup sampai dengan kecepatan. Tapi setidaknya dia yang tepat, untuk sebagian besar. Seperti paket meninggalkan router, mereka membuat jalan mereka ke dalam internet perusahaan dan kepala untuk beralih router. Sedikit lebih efisien daripada router, switch router bermain cepat dan lepas dengan paket IP, cekatan routing mereka di sepanjang jalan mereka. A 'penyihir pinball,' digital jika Anda mau. [Router beralih berbicara untuk dirinya sendiri] [Narator] Seperti paket tiba di tempat tujuan, mereka dijemput oleh antarmuka jaringan, siap untuk dikirim ke tingkat berikutnya. Dalam kasus ini, proxy. Proxy digunakan oleh banyak perusahaan sebagai semacam orang tengah dalam rangka untuk mengurangi beban pada koneksi internet dan untuk alasan keamanan, juga. Seperti yang Anda lihat, paket semua dari berbagai ukuran tergantung pada konten mereka. Proxy membuka paket dan mencari alamat web atau URL. Tergantung pada apakah alamat diterima, paket dikirim ke Internet. Namun demikian, beberapa alamat yang tidak bertemu dengan persetujuan dari proxy. Artinya, pedoman perusahaan atau manajemen. Ini sewenang ditangani. Kita akan memiliki semua itu. Bagi mereka yang membuatnya, itu di jalan lagi. Selanjutnya, firewall. Firewall perusahaan melayani dua tujuan. Ini mencegah beberapa hal agak menjijikkan dari Internet bisa masuk ke Intranet, dan juga dapat mencegah informasi sensitif dari perusahaan yang dikirim keluar ke Internet. Setelah melalui firewall, router mengambil paket dan menempatkan mereka ke jalan yang lebih sempit, atau bandwidth, seperti yang kita katakan. Jelas, jalan tidak cukup luas untuk membawa mereka semua. Sekarang, Anda mungkin bertanya-tanya apa yang terjadi pada semua paket yang tidak membuatnya sepanjang jalan. Nah, ketika Mr IP tidak menerima pengakuan bahwa paket telah diterima pada waktunya, ia hanya mengirimkan paket pengganti. Kami sekarang siap untuk memasuki dunia internet. Sebuah sarang laba-laba dari jaringan interkoneksi yang span seluruh dunia. Di sini, router dan switch membangun hubungan antara jaringan. Sekarang, Net adalah sebuah lingkungan yang sama sekali berbeda daripada Anda akan menemukan dalam dinding-dinding pelindung dari LAN Anda. Di sini, itu adalah Wild West. Banyak ruang, banyak peluang, banyak hal untuk mengeksplorasi dan tempat-tempat untuk pergi. Berkat kontrol yang sangat sedikit dan regulasi, ide-ide baru menemukan tanah subur untuk mendorong amplop kemungkinan mereka. Tapi karena kebebasan ini, bahaya tertentu juga mengintai. Anda tidak akan pernah tahu kapan Anda akan bertemu dengan ping ditakuti kematian, sebuah versi khusus dari ping permintaan normal, yang idiot terpikir untuk mengacaukan host tidak curiga. Jalur paket kami mengambil mungkin melalui satelit, saluran telepon, nirkabel, atau kabel bahkan melintasi samudra. Mereka tidak selalu mengambil rute tercepat atau terpendek mungkin, tetapi mereka akan sampai di sana pada akhirnya. Mungkin itu sebabnya kadang-kadang disebut "The World Wide Tunggu." Tapi ketika semuanya bekerja dengan lancar, Anda dapat menghindari dunia lima kali selama di drop dari topi, secara harfiah. Dan semua untuk biaya panggilan lokal atau kurang. Menjelang akhir tujuan kita, kita akan menemukan firewall lain. Tergantung pada perspektif Anda sebagai paket data, firewall bisa menjadi benteng keamanan atau musuh yang ditakuti. Itu semua tergantung pada sisi mana Anda berada dan apa niat Anda. Firewall dirancang untuk membiarkan hanya paket yang memenuhi kriteria. Firewall ini beroperasi pada port 80 dan 25. Semua upaya untuk masuk melalui pelabuhan lain ditutup untuk bisnis. Port 25 digunakan untuk paket mail, sedangkan port 80 adalah pintu masuk untuk paket dari internet ke server web. Di dalam firewall, paket disaring lebih teliti. Beberapa paket membuatnya mudah melalui bea cukai, sementara yang lain terlihat hanya sedikit meragukan. Sekarang, petugas firewall tidak mudah tertipu, seperti saat ini ping paket kematian mencoba untuk menyamarkan dirinya sebagai sebuah paket ping normal. [Firewall petugas berbicara dengan paket] [Narator] Bagi paket cukup beruntung untuk membuat sejauh ini, perjalanan hampir berakhir. Ini hanya berbaris pada interface yang akan diambil sampai ke server web. Saat ini, web server dapat berjalan pada banyak hal, dari mainframe ke web cam ke komputer di meja Anda. Mengapa tidak kulkas Anda? Dengan pengaturan yang tepat, Anda dapat mengetahui apakah Anda memiliki bakat untuk ayam Cacciatore, atau jika Anda harus pergi berbelanja. Ingat, ini adalah fajar Net. Hampir semuanya adalah mungkin. Satu demi satu, paket diterima, dibuka, dan membongkar. Informasi yang dikandungnya, yaitu, permintaan Anda untuk informasi, dikirim ke aplikasi web server. Paket itu sendiri adalah daur ulang, siap untuk digunakan lagi, dan penuh dengan informasi yang Anda minta, ditangani, dan dikirim keluar dalam perjalanan kembali kepada Anda. Kembali melewati firewall, router, dan melalui Internet. Kembali melalui firewall perusahaan Anda dan ke antarmuka Anda, siap untuk memasok web browser Anda dengan informasi yang Anda minta. Artinya, film ini. Senang dengan upaya mereka, dan mempercayai dunia yang lebih baik, terpercaya kami paket data naik off bahagia ke matahari terbenam hari yang lain, mengetahui sepenuhnya mereka telah melayani tuannya dengan baik. Sekarang, bukankah itu happy ending? [Malan] Oke, itu sudah cukup. Kita akan melihat Anda minggu depan. [CS50.TV]