SPEAKER: Mari kita bercakap tentang lain protocol-- Pemindahan Hiperteks yang Protokol, atau HTTP. Oleh itu, kita telah berbincang tentang IP dan TCP dalam video sebelumnya. Dan mereka adalah protokol yang menentukan bagaimana maklumat bergerak dari mesin ke mesin dan daripada program untuk program atau perkhidmatan untuk menawarkan perkhidmatan melalui internet, melalui rangkaian ini router dan mesin. Tetapi itu biasanya tidak keseluruhan gambar, bukan? Biasanya apabila kita menghantar maklumat, program ini itself-- apabila data adalah menerima, berkata, sebagai contoh, dalam e-mel melalui TCP port 25 atau permintaan halaman web melalui port 80, biasanya ada satu sistem peraturan yang terdapat untuk memproses apa yang saya baru sahaja diterima. Dan HTTP adalah contoh hanya protokol itu. HTTP adalah satu-satunya permohonan protokol lapisan yang kita akan bercakap tentang. Tetapi ia adalah set yang lain peraturan menetapkan bagaimana maklumat untuk dihantar dan diproses melalui internet. Khususnya, HTTP menentukan bagaimana seseorang mesti membuat permintaan untuk laman web dan tepat bagaimana pelayan, mesin yang menjadi tuan rumah laman web, menyampaikan maklumat yang menyandarkan kepada pelanggan. Jadi protokol ini tidak benar-benar mempunyai apa-apa kaitan dengan bagaimana maklumat bergerak dari titik A ke titik B. Ia benar-benar sistem peraturan bagi- ia pada dasarnya peraturan pertunangan untuk bekerja dengan laman web, sama seperti apabila seseorang gelombang tangan mereka pada anda, anda sepatutnya gelombang kembali. Itulah semacam protokol manusia biasa. Protokol HTTP hanya berkata, jika anda ingin meminta web yang halaman, pastikan penampilan format anda seperti this-- jenis format seperti surat perniagaan, sebagai contoh. Dan sambutan yang akan sama datang mengikut protokol ini. Terdapat lain-lain protokol lapisan permohonan bahawa kita tidak akan bercakap kira-kira dalam video. Tetapi ini termasuk perkara-perkara seperti Protokol Pemindahan Fail, Mudah Protokol Pemindahan bagi Mail menghantar e-mel, Pengagihan Data Perkhidmatan, Remote Desktop Protokol, RDP, yang digunakan jika anda mahu dari jauh akses komputer anda daripada komputer lain, XMPP, yang kerap dikenali sebagai Jabber atau chat, jadi ini adalah protokol untuk menggunakan perkhidmatan sembang. Dan terdapat banyak, banyak, banyak lagi. Jadi setiap kali anda menggunakan perkhidmatan, perkhidmatan yang menjangkakan maklumat untuk received-- permintaan menjadi received-- dalam format yang tertentu dan diperlukan untuk kembali maklumat kembali dalam format yang tertentu juga. Oleh itu, marilah kita kembali kepada ilustrasi kami daripada kita yang ingin bercakap dengan internet. Oleh itu, kita berpuas hati, dan kita mahu untuk pergi ke cats.com, bukan? Jadi, jika kita hanya bercakap dengan cats.com, kita boleh berkata sesuatu seperti hey, boleh saya lihat halaman rumah anda? Dan cats.com akan mungkin bertindak balas, yeah, pasti. Di sini anda pergi. Jadi, itu satu bentuk manusia daripada meminta-jawab. Apa yang kelihatan seperti dalam HTTP? Baik, ia sebenarnya jenis diterjemahkan cukup bersih untuk sesuatu seperti ini. Kita mungkin boleh mengatakan GET / HTTP / 1.1 dari cats.com tuan rumah. Jadi, pada asasnya apa yang saya lakukan di sini adalah meminta untuk www.cats.com/ laman web. Kami biasanya meninggalkan slash pada masa kini, tetapi itu akan hanya Maksud utama cats.com ini. Oh, dan dengan cara itu, saya akan menjadi menggunakan versi HTTP 1.1 untuk berkomunikasi dengan anda. Itulah jenis seakan-akan berkata, seperti, dengan cara itu, Saya akan bercakap dalam bahasa Perancis, atau dengan cara itu, Saya akan bercakap dalam Bahasa Inggeris. Itu hanya format protokol. Ia juga 1.0, yang merupakan tidak biasa digunakan lagi. Jadi, saya bercakap HTTP 1.1, dan Saya mahu www.cats.com/. Sila dapatkan bahawa bagi saya. Dan kemudian ada maklumat lain, too-- dot, dot, dot sana, yang merupakan maklumat mengenai yang anda begitu cats.com akan tahu di mana untuk menghantarnya. Tetapi ini adalah dua jenis bahagian kritikal pada awal-awal HTTP request-- seperti apabila anda memulakan surat yang kamu katakan, sayang, kosong. Ini adalah sangat serupa dalam semangat untuk itu. Dan jika cats.com akan berkata, oh, pasti, di sini anda pergi. Mereka mungkin bertindak balas seperti this-- Saya juga bertindak balas. Saya juga bercakap HTTP 1.1. Permintaan anda diluluskan, 200 OK. Apa yang anda kira-kira untuk terima adalah HTML dan kemudian dot, dot, dot beberapa maklumat tambahan. Dan di bahagian paling bawah daripada permintaan sebenarnya HTML, bahasa penanda itu, Kandungan laman utama cats.com ini. Jadi HTTP / 1.1-- Saya mengakui anda permintaan telah diterima melalui HTTP 1.1. Permintaan anda telah diluluskan. Saya boleh memberi anda apa yang anda mahu, 200 OK. Anda kira-kira untuk menerima HTML. Dan kemudian di sini adalah HTML yang anda minta. Tetapi kadang-kadang permintaan kami tidak selalu pergi agak mengikut perancangan. Bolehkah saya lihat halaman cats.html anda? Nah, bagaimana jika mereka berkata, kami tidak mempunyai laman cats.html, yang seolah-olah jenis realistik kerana mereka cats.com. Anda akan berfikir mereka perlu cats.html. Tetapi OK. Jadi ini adalah jenis yang interaksi manusia konvensional kami telah kini mempunyai dengan cats.com. Bagaimana yang menterjemah? Ini mungkin sesuatu yang biasa kepada anda. Permintaan kami kelihatan sama, kecuali bukannya mendapat slash kita kini mendapat cats.html. Jadi sekarang apa yang pada asasnya keseluruhan ini permintaan mengatakan ini sila berikan saya www.cats.com/cats.html. Jadi tuan rumah dan tengah sebahagian daripada yang baris atas terdapat mengesan dengan tepat apa halaman Saya sedang meminta. Tetapi cats.com dalam kes ini tidak akan dapat bertindak balas secara positif. Mereka tidak tahu kita sedang bercakap tentang. Dan hal ini adalah sesuatu yang anda mungkin mempunyai dilihat HTTP sebelum itu 1.1 404 Not Found. Saya tidak dapat mencari apa yang yang anda meminta. Dengan cara ini, saya akan memberikan anda kembali beberapa HTML, dan biasanya yang HTML adalah kandungan beberapa 404 halaman. Dan dalam hal cats.com, ia mungkin beberapa kucing comel dalam bakul dengan 404 muka yang sedih akan datang kepada mereka, kerana anda akan menjadi sedih apabila anda tidak mendapat halaman yang anda cari. Itulah jenis asas-asas apa yang protokol, permintaan protokol HTTP seperti. Mereka benar-benar serupa dengan bagaimana kita akan membuat interaksi yang sama dalam konvensyen hanya manusia meminta sesuatu dan mendapatkan itu kembali atau menulis surat dan mengharapkan sambutan surat dalam format tertentu. Yang cukup banyak apa HTTP hanya canonicalizing untuk semua peranti yang ingin akses laman web, pemindahan hiperteks. Jadi garis bentuk, ini kaedah versi permintaan sasaran HTTP, dipanggil garis permintaan HTTP. Ia biasanya perkara pertama yang dihantar sebagai sebahagian daripada permintaan HTTP atau jika anda meminta HTTP. Ia semacam suka, seperti yang saya katakan, katanya: sayang, kosong di bahagian atas surat anda. Mereka tahu bahawa anda menuliskannya surat. Jadi ini adalah hampir sama dengan mengatakan, saya tahu bahawa mereka membuat permintaan HTTP dan ini adalah format yang tertentu mereka meminta. Versi HTTP mungkin sentiasa akan menjadi HTTP / 1/1. 1.0 juga wujud tetapi tidak benar-benar digunakan lagi. Untuk tujuan CS50, GET mungkin sentiasa apa yang anda akan menjadi menggunakan apabila anda benar-benar membuat permintaan HTTP langsung. Tetapi POST adalah satu lagi pilihan yang kita tidak akan bercakap tentang sekarang. Dan kemudian permintaan-sasaran adalah apa halaman pada pelayan tuan rumah anda ingin mendapatkan. Seperti yang saya katakan, yang nama hos adalah barisan yang berasingan, biasanya baris kedua permintaan keseluruhan. Dan sebagainya diambil bersama-sama, pihak nama dan sasaran permintaan nyatakan tertentu sumber itu dicari. Dalam contoh 404 kami kedua yang lalu, saya meminta sekali lagi untuk www.cats.com, cats.com menjadi tuan rumah. Dan selaras permintaan saya, Saya berkata /cats.html. Itu adalah sasaran permintaan saya. Jadi secara keseluruhan saya meminta untuk kandungan atau sumber yang terletak di www.cats.com/cats.html. Dan kemudian berdasarkan sama ada sumber wujud dan sama ada pelayan boleh menyampaikan sumber menurut pelanggan yang permintaan, anda mungkin akan mendapat pelbagai kod status kembali. Sebahagian daripada kod status anda lihat kerana mereka adalah sebahagian daripada sambutan. Sesetengah daripada mereka, 200 OK, adalah mungkin cukup senyap. Anda mungkin tidak pernah dilihat halaman yang bertindak balas 200 OK. Anda hanya mendapat halaman. Ia tidak seperti ralat 404, yang biasanya cukup jelas. Anda biasanya melihat bahawa ia mengatakan 404. Jadi mari kita bercakap tentang apa yang ada dari orang-orang kod status mungkin. Sekali lagi, apabila pelayan bertindak balas kepada kami, mereka akan bertindak balas status versi HTTP. Biasanya HTTP / 1.1. Apakah ini kod status akan menjadi? Nah, kita mungkin akan mendapat kejayaan. Jadi dalam kategori kejayaan, kita mungkin akan mendapat kod 200 dengan OK teks. Apakah ini bermakna? Nah, segala-galanya adalah baik. Anda telah membuat permintaan yang sah. Berikut adalah jawapan yang sah. Saya dapat menyampaikan apa yang anda mahu. Kadang-kadang anda mungkin akan mendapat perkara-perkara lain bahawa anda tidak akan melihat dengan segera tetapi agak kegagalan. Mereka dipanggil suisnya. Ada dua yang biasa di sini. 301 Permanently-- Berpindah apa ini pada dasarnya bermakna adalah laman yang kini berada di lokasi baru. Ia akan tinggal di sana selama-lamanya. Dan pelayar akan secara automatik mengarahkan anda. Jadi, anda akan tidak pernah benar-benar melihat 301, sama ada, melainkan jika anda menggunakan benar-benar keluar-of-tarikh pelayar, mungkin, kerana sambutan 301 adalah sebahagian daripada dot, dot, dot sambutan 301. Ia juga memberitahu anda di mana halaman baru adalah. Dan sebagainya pelayar akan hanya mengarahkan anda ke sana, menganggap bahawa anda mahu pergi ke sana. Kadang-kadang anda juga akan mendapat 302 dijumpai. Dan yang satu ini anda sebenarnya mungkin masih melihat sekali-sekala. Kadang-kadang laman berpindah buat sementara waktu. Oleh itu, ia tidak akan dibina ke permintaan itu memberitahu pelayar untuk selama-lamanya berubah bila-bila masa ia melihat kepadamu apa yang engkau membuat untuk mengubahnya kepada sesuatu yang lain. Jadi, anda mungkin melihat 302 Dijumpai, yang pada asasnya kata halaman ini hidup di tempat lain. Tetapi ia tidak akan tinggal di sana selama-lamanya. Ia akan akhirnya mungkin pergi kembali kepada di mana anda fikir ia. Maka anda akan mendapatkan perkara yang seperti kesilapan pelanggan. Jadi ini adalah orang-orang yang anda telah mungkin dilihat, kini. Anda mungkin tidak pernah melihat yang 200s atau 300-an, tetapi anda mungkin biasa dengan 400-an. Dan itulah yang kita akan bercakap kira-kira dalam satu saat, 500-an juga. Anda mungkin melihat 401 yang tidak dibenarkan. Biasanya ini bermakna anda cuba untuk mengakses laman, tetapi anda belum log masuk. Jadi, anda cuba pergi ke beberapa profil atau sesuatu di Facebook atau anda cuba dan akses some-- anda berada di tempat kerja. Anda cuba untuk mengakses sesuatu di internet kerja anda, tetapi anda belum log masuk. Anda tidak boleh melihat halaman. Anda mungkin mendapat 401 yang tidak dibenarkan, yang bermaksud kita mungkin akan dapat memenuhi permintaan ini, tetapi pada mulanya, anda perlu log masuk untuk berbuat demikian. Sebaliknya, anda mungkin akan mendapat 403 Larangan, yang ia tidak benar-benar kira jika anda log masuk atau tidak. Permintaan ini tidak dibenarkan. Sumber yang wujud pada pelayan. Tetapi anda tidak dibenarkan untuk mengaksesnya. Ini adalah fail biasanya dalaman yang tinggal pada pelayan untuk pelbagai sebab tetapi tidak bertujuan untuk menjadi ke tempat-tempat dunia luar, dan supaya mereka adalah dilarang. Mereka tinggal di sana. Saya tidak mengatakan saya tidak boleh menemuinya. Tetapi saya katakan saya tidak boleh memberikannya kepada anda. Dan ia tidak kira jika anda log masuk atau tidak. Kemudian sudah tentu, sangat umum 404 Not Found. Fail tidak wujud pada pelayan. Saya ingin memenuhi permintaan anda, tetapi saya tidak boleh. Anda juga kadang-kadang melihat pelayan kesilapan, yang paling biasa umumnya menjadi 500 Ralat Pelayan Dalaman, yang sebenarnya tidak memberitahu anda apa-apa pada semua tentang apa yang telah berlaku. Tetapi ia tidak benar-benar anda membuat kesilapan dalam permintaan anda. Ini sebenarnya pelayan gagal menunaikan permintaan itu entah bagaimana. Jadi 500 adalah tindak balas umum. Anda juga akan melihat sesuatu seperti Perkhidmatan Unavailable, yang saya percaya adalah kod 503. Dan Gateway Timeout-- jika anda pernah mempunyai halaman yang adil duduk di sana memuatkan dan memuatkan dan loading dan anda tidak tahu jika ia akan beban dan kemudian akhirnya ia hanya says-- hanya memberikan sehingga. Itulah 504 Gateway Had masa. Pelayan mahu melaksanakan permintaan anda, kerana berlaku kesilapan pada side-- pelayan bukan pada side-- anda untuk menyebabkan bahawa untuk menjadi masalah. Sekarang, kita boleh berakhir cerita di sini, tetapi apa yang saya benar-benar akan lakukan sekarang adalah saya akan membuka pelayar saya dan menunjukkan kepada anda bagaimana anda mungkin dapat melihat sesetengah kod status walaupun anda biasanya tidak melihat mereka. Dan kami akan berbuat demikian dengan mengambil yang melihat beberapa alat pemaju. Baiklah Jadi di sini saya sekarang dalam tetingkap pelayar saya. Dan saya mahu belajar sedikit lebih mengenai permintaan HTTP. Bagaimana saya know-- sudah tentu kita tahu jika halaman goes-- apabila ada masalah, kita akan mendapat 404. Kita melihat bahawa. Kita tidak perlu untuk menggambarkan bahawa. Tetapi apakah beberapa yang lain? Dan bagaimana kita akan melihat permintaan ini dalam tindakan? Perkara Jadi pertama saya akan lakukan adalah membuka Alat Pembangun. Jadi Alat Pembangun dibina ke dalam pelayar moden dan membolehkan kita untuk melihat perkara-perkara bahawa kita tidak melakukan sebaliknya see-- beberapa jenis maklumat tambahan sebanyak sedang dihantar di bawah web kami permintaan. Saya menggunakan Google Chrome di sini. Dan untuk membuka Alat Pembangun dalam Chrome, anda hanya tekan F-12, dan ia akan membuka sehingga di sebelah. Apabila saya menaip permintaan itu, saya akan zum masuk supaya kita dapat melihat apa yang sedang berlaku di sini. Tetapi apa yang saya akan lakukan pada pelayar saya bar is-- dan saya akan zum di lebih sini-- Aku akan membuat permintaan kepada www.google.com. Kami semua mungkin dibuat permintaan ini sebelum ini. Saya akan tekan Enter. Sekarang, di sini dalam Pemaju saya Alat, saya telah memilih tab Rangkaian. Dan anda dapati banyak perkara di sini. Lihatlah these-- 200 OK, 200 OK, beberapa ini kod status datang. Saya tidak tahu mengapa saya mendapat 302 Found. Saya tidak sedar saya melihat bahawa salah satu. Tetapi pada dasarnya notis yang cukup banyak, dari segi request-- Google saya Saya membuat sangat mudah permintaan untuk halaman Google. Dan dalam proses menyampaikan permintaan saya, Google nampaknya telah membuat banyak permintaan lain bagi pihak saya. Tetapi saya telah membuat permohonan untuk mendapatkan Google halaman dan saya mendapat banyak 200 OKS. Saya tidak melihat 200 OK pada skrin saya, tetapi saya mendapat banyak permintaan yang telah dibuat. Satu lagi yang saya cukup pasti akan bekerja is-- untuk bersiar- benar-benar tua-sekolah, anda mungkin tahu bahawa Facebook adalah tidak sentiasa di Facebook.com. Di peringkat awal ia di wwww.thefacebook.com. Mereka nampaknya tidak boleh mendapat akses untuk Facebook.com untuk agak seketika. Dan jadi apa yang saya menjangkakan di sini adalah untuk mendapatkan maklumat. Dan kita akan melihat jika ini kuali keluar. Apa yang saya menjangkakan sini adalah untuk mendapatkan maklumat bahawa Facebook telah berpindah secara kekal dari thefacebook.com untuk Facebook.com. Jadi, saya mengharapkan suatu tempat berhampiran bahagian atas permintaan saya lebih dalam Alat Pembangun saya untuk mendapatkan pemberitahuan 301 bahawa Facebook telah berpindah secara kekal. Sekali lagi, saya tidak akan melihat 301 pada skrin pelayar saya. Dan kerana ia adalah 301, ia adalah satu langkah yang kekal. Pelayar saya, adalah bahawa ia adalah satu pelayar moden, mungkin akan mengarahkan saya Facebook.com juga. Tetapi mari kita lihat apa yang berlaku. Dan sekarang saya akan pergi ke thefacebook.com. Dan yep, ada ia betul di bahagian atas. Ia pergi, tetapi ia berada di sana. Biar saya tatal ke atas di sini. Di sini di bahagian atas. Saya membuat permintaan kepada thefacebook.com, dan saya mendapat jawapan bahawa halaman ini telah berpindah secara kekal. Dan kemudian 307 di sini adalah yang redirect dalaman. Dan hal ini adalah apa yang benar-benar mempunyai mendorong saya untuk lebih www.facebook.com biasa. Jadi ini Kod balas lakukan masih berlaku, walaupun kita tidak dapat melihat mereka. Saya tidak akan menggambarkan 401, 403, 404, kerana anda mungkin telah melihat mereka yang berada di pelbagai mata. Dan 500, saya hanya akan menjadi jenis daripada- kita akan mendapatkan bertuah jika mendapat 500 kerana kita tidak tahu apa yang pelayan pada masa ini turun di mana sahaja. Tetapi kod ini melakukan wujud, dan ada cara yang untuk mengakses mereka walaupun kita tidak melihat mereka secara langsung pada sistem kami. Saya Doug Lloyd. Ini adalah CS50.