‫Instruktur: Jadi tujuan kami
‫adalah untuk mengembangkan aplikasi back-end dengan
‫Node dan oleh karena itu mungkin
‫ide yang baik untuk mendapatkan pemahaman dasar tentang bagaimana web
‫sebenarnya bekerja di belakang layar, bukan?
‫Dan ini akan menjadi kuliah paket yang sangat lengkap.
‫Jadi mari kita selami.
‫Sekarang, untuk mendapatkan pemahaman yang lebih baik
‫tentang bagaimana web sebenarnya
‫bekerja, mari kita mulai dengan
‫mengajukan pertanyaan: Apa yang sebenarnya terjadi
‫setiap kali kita
‫mengetikkan URL ke browser untuk membuka halaman web baru?
‫Atau setiap kali kami meminta data dari beberapa API?
‫Yang sebenarnya hampir sama dan
‫mari kita fokus pada contoh situs web sederhana di sini.
‫Nah, jawaban yang paling sederhana adalah bahwa browser
‫kita yang juga disebut klien mengirimkan permintaan ke
‫server tempat halaman web di-host.
‫Dan server kemudian akan mengirimkan kembali tanggapan,
‫yang akan berisi halaman web yang baru saja kita minta.
‫Dan proses ini disebut model request-response
‫atau juga arsitektur client-server.
‫Dan semua yang akan
‫kita bicarakan di bagian ini berkisar pada konsep dasar ini.
‫Oke, tapi sekarang mari kita melangkah lebih jauh karena
‫ini mungkin bukan hal baru bagi Anda
‫saat ini, bukan?
‫Jadi katakanlah kita ingin mengakses Google
‫Maps dengan menulis google. com/maps ke browser kami sebagai URL.
‫Dan setiap URL mendapatkan HTTP atau HTTPS, yaitu
‫untuk protokol yang akan digunakan
‫pada koneksi.
‫Dan kita akan membicarakannya nanti di video ini.
‫Kemudian kita memiliki nama domain di
‫sini, yaitu google. com dalam
‫hal ini, dan juga setelah garis miring, yang disebut
‫sumber daya yang akan
‫kita akses, dan dalam hal ini, /maps.
‫Sekarang yang perlu Anda ketahui di sini adalah bahwa
‫nama domain seperti google. com sebenarnya bukan
‫alamat sebenarnya dari server yang kita coba
‫akses tetapi hanya nama bagus yang mudah kita hafal.
‫Jadi kita membutuhkan semacam cara untuk mengubah nama domain
‫ke alamat server yang
‫sebenarnya dan itu terjadi melalui DNS.
‫Jadi DNS adalah singkatan dari Domain Name
‫Server, yang merupakan server khusus yang pada
‫dasarnya seperti buku telepon internet.
‫Jadi langkah pertama yang terjadi ketika kita membuka sebuah
‫website adalah browser membuat permintaan ke DNS dan server
‫khusus ini kemudian akan mencocokkan alamat web
‫yang kita ketikkan ke browser dengan
‫alamat IP server yang sebenarnya.
‫Baiklah.
‫Dan sebenarnya ini
‫terjadi melalui penyedia layanan internet atau ISP Anda tetapi
‫detail lengkapnya tidak terlalu penting bagi kami.
‫Apa yang perlu Anda pertahankan
‫dari bagian ini adalah bahwa domain tersebut bukan
‫alamat sebenarnya dan bahwa DNS akan mengubahnya menjadi alamat IP asli itu,
‫yang kemudian dapat dipanggil oleh browser setelah dikirim kembali ke
‫browser kami.
‫Jadi begini alamat aslinya,
‫jadi masih ada protokolnya, tapi kemudian muncul alamat IP-nya.
‫Dan juga port yang kita akses di server.
‫Dan nomor port benar-benar hanya
‫untuk mengidentifikasi layanan tertentu yang berjalan di
‫server sehingga Anda dapat menganggapnya seperti sub-alamat.
‫Ingat bagaimana kami mendengarkan port 8000
‫di server web kami ketika kami mengaturnya di
‫persimpangan itulah port ini.
‫Harap perhatikan juga bahwa nomor port tidak
‫ada hubungannya dengan sumber daya Google Maps yang
‫ingin kami akses.
‫Sumber daya itu sebenarnya akan dikirim
‫dalam permintaan HTTP seperti yang akan kita lihat sebentar lagi.
‫Oke, dan ini mengakhiri langkah pertama.
‫Jadi begitu kita memiliki alamat
‫web yang sebenarnya, koneksi soket TCP
‫dibuat antara browser dan
‫server, yang sekarang akhirnya terhubung.
‫Dan koneksi ini biasanya tetap hidup
‫selama waktu yang diperlukan untuk mentransfer
‫semua file situs web.
‫Sekarang, apa TCP dan IP kita?
‫Nah, TCP adalah Protokol Kontrol Transmisi dan IP
‫adalah Protokol Internet, dan
‫bersama-sama mereka adalah protokol komunikasi yang
‫menentukan dengan tepat bagaimana data bergerak melintasi web.
‫Jadi
‫mereka pada dasarnya adalah sistem kontrol
‫dasar internet, karena, sekali lagi, merekalah yang menetapkan
‫aturan tentang bagaimana data bergerak di internet.
‫Dan jangan khawatir, kita akan belajar lebih banyak tentang TCP/IP
‫nanti di video ini.
‫Bagaimanapun, sekarang saatnya untuk membuat permintaan kami.
‫Dan request yang kita buat adalah
‫request HTTP dimana HTTP merupakan singkatan dari HyperText Transfer Protocol.
‫Jadi setelah TCP/IP, HTTP adalah protokol komunikasi lainnya.
‫Dan omong-omong, protokol komunikasi hanyalah sebuah
‫sistem aturan yang
‫memungkinkan dua atau lebih pihak untuk berkomunikasi.
‫Dan dalam kasus HTTP, itu hanya sebuah protokol yang
‫memungkinkan klien dan server web untuk berkomunikasi dengan
‫mengirimkan permintaan dan pesan tanggapan dari
‫klien ke server dan kembali.
‫Sekarang, pesan permintaan akan terlihat seperti ini.
‫Jadi awal pesan adalah bagian terpenting
‫yang disebut garis awal, yang berisi metode HTTP
‫yang digunakan dalam
‫permintaan, kemudian target permintaan dan versi HTTP.
‫Jadi tentang metode HTTP, ada banyak yang tersedia tetapi
‫yang paling penting adalah mendapatkan
‫hanya untuk meminta data, memposting untuk mengirim data dan
‫menempatkan dan menambal untuk memodifikasi data pada dasarnya.
‫Jadi Anda melihat permintaan HTTP ke server tidak
‫hanya untuk mendapatkan data tetapi kami juga dapat mengirim data.
‫Baiklah?
‫Sekarang tolong jangan khawatir jika semua ini terdengar terlalu
‫berlebihan untuk Anda saat ini.
‫Kami akan, tentu saja, menggunakan
‫hal-hal ini sepanjang sisa kursus, yang sebenarnya
‫merupakan alasan utama mengapa saya memberi tahu Anda hal ini.
‫Bagaimanapun, tentang target permintaan, di
‫sinilah server berpikir bahwa kita ingin mengakses
‫sumber daya peta dalam contoh ini.
‫Ingat itu?
‫Jadi kami memiliki /maps di URL kami dan sekarang dikirim
‫sebagai target dalam permintaan HTTP
‫sehingga server dapat mengetahui apa yang harus dilakukan dengannya.
‫Dan jika ini kosong, jadi jika itu hanya sebuah garis miring, pada
‫dasarnya, maka kita akan mengakses root situs web
‫yang akan menjadi hanya google. com dalam contoh ini.
‫Kemudian bagian selanjutnya dari permintaan adalah header permintaan yang
‫hanya beberapa informasi yang kami kirimkan
‫tentang permintaan itu
‫sendiri, dan ada banyak header berbeda yang
‫tersedia seperti browser apa yang digunakan
‫untuk membuat permintaan, jam berapa, bahasa pengguna dan banyak, banyak lainnya.
‫Terakhir, jika kita mengirim data ke server,
‫akan ada badan permintaan yang
‫berisi data tersebut, misalnya, yang berasal dari formulir HTML.
‫Jadi itu adalah permintaan HTTP.
‫Sekarang, tentu saja, bukan
‫kami pengembang yang menulis permintaan
‫ini secara manual, tetapi masih sangat penting
‫bagi Anda untuk memahami seperti apa permintaan HTTP dan juga
‫responsnya karena Anda akan banyak bekerja dengannya, oke?
‫Juga, saya ingin menyebutkan bahwa ada juga HTTPS seperti yang
‫mungkin Anda ketahui.
‫Dan perbedaan utama antara HTTP dan HTTPS adalah bahwa
‫HTTPS dienkripsi menggunakan TLS atau SSL, yang merupakan beberapa protokol lagi
‫tetapi saya tidak akan
‫membuat Anda bosan dengan ini.
‫Namun selain enkripsi tambahan ini,
‫logika antara permintaan dan respons HTTP masih
‫berlaku untuk HTTPS.
‫Baiklah, jadi permintaan kami sekarang mengenai server, yang
‫akan bekerja sampai situs web kami siap
‫untuk dikirim kembali.
‫Dan itu akan mengirimnya kembali menggunakan, seperti yang
‫bisa Anda tebak, respons HTTP.
‫Dan pesan respons HTTP sebenarnya terlihat
‫sangat mirip dengan permintaan.
‫Begitu juga dengan garis start, header dan body.
‫Garis awal memiliki, selain versi HTTP, kode
‫status dan pesan.
‫Jadi, pada dasarnya, untuk
‫memberi tahu klien apakah permintaannya berhasil atau tidak.
‫Ini 200, misalnya, berarti oke, dan yang
‫semua orang tahu adalah kode status 404 yang
‫berarti tidak ditemukan.
‫Dan dari sinilah kode 404 yang sudah
‫Anda ketahui ini berasal.
‫Kemudian header respon atau informasi tentang
‫respon itu sendiri.
‫Jadi seperti sebelumnya, dan ada banyak sekali yang tersedia
‫dan kita juga bisa membuat header kita sendiri.
‫Sekarang, apa yang berbeda tentang
‫header respons adalah bahwa sebenarnya pengembang back-end
‫seperti Anda yang menentukannya dan mengirimkannya kembali sebagai respons.
‫Baiklah.
‫Akhirnya, bagian terakhir dari respons,
‫sekali lagi, adalah tubuh, yang sebenarnya hadir di
‫sebagian besar respons.
‫Dan itu juga pengembang yang secara khusus mengirimkan
‫kembali tubuh sebagai tanggapan.
‫Dan kami sebenarnya sudah melakukan ini di
‫persimpangan menggunakan respons. akhir, ingat?
‫Dan isi biasanya harus berisi HTML situs web
‫yang kami minta atau, misalnya, data JSON
‫yang berasal dari API atau semacamnya.
‫Jadi kami berbicara dengan sangat
‫rinci tentang bagian
‫terpenting di sini, yaitu permintaan HTTP dan responsnya.
‫Tetapi dalam contoh imajiner kami, kami hanya melakukan satu
‫permintaan ke google. com dan mendapat satu tanggapan.
‫Namun, jika itu adalah situs web yang
‫kami coba akses, akan ada lebih banyak permintaan dan tanggapan.
‫Dan itu karena ketika kami melakukan permintaan
‫pertama, yang kami dapatkan hanyalah file HTML awal, file
‫itu kemudian akan dipindai untuk semua aset
‫yang dibutuhkan untuk membangun seluruh
‫situs web seperti JavaScript, file CSS, file gambar, atau lainnya. aktiva.
‫Dan untuk setiap file yang
‫berbeda ini, browser kemudian akan membuat permintaan HTTP baru ke server.
‫Jadi, pada dasarnya, semua bolak-balik antara
‫klien dan server yang baru saja dijelaskan
‫terjadi untuk setiap
‫file yang disertakan dalam situs web.
‫Namun, ada beberapa permintaan dan tanggapan yang terjadi pada
‫saat yang bersamaan.
‫Namun jumlahnya sebenarnya terbatas
‫karena jika tidak, koneksi akan mulai melambat.
‫Oke, dan akhirnya, ketika semua file telah tiba, situs web
‫dirender di browser
‫sesuai dengan spesifikasi HTML, CSS, dan JavaScript yang
‫mungkin sudah Anda ketahui.
‫Dan sekarang, sebagai bagian terakhir dari teka-teki
‫ini, mari kita bicara lagi tentang TCP/IP
‫dan mencari tahu bagaimana data permintaan dan respons sebenarnya
‫dikirim ke seluruh web.
‫Jadi kami katakan sebelumnya bahwa TCP dan
‫IP adalah protokol komunikasi yang
‫menentukan bagaimana data bergerak melintasi web.
‫Sekarang, saya tidak akan membahas banyak detail di sini,
‫tetapi inilah yang perlu Anda ketahui.
‫Pertama, tugas TCP adalah memecah permintaan dan
‫tanggapan menjadi ribuan potongan kecil yang disebut paket
‫sebelum ditetapkan.
‫Kemudian begitu mereka sampai di tujuan,
‫itu akan merakit kembali
‫semua paket ke dalam permintaan atau
‫respons asli sehingga pesan tiba
‫di tujuan secepat mungkin, yang tidak mungkin jika
‫kami mengirim situs web sebagai satu bagian besar.
‫Jadi itu seperti mencoba melewati
‫lalu lintas dansa dengan seperti bus terbesar yang
‫dapat Anda bayangkan.
‫Jadi, bukan ide yang bagus.
‫Sekarang, di bagian kedua, tugas protokol IP
‫adalah mengirim dan merutekan semua paket ini
‫melalui internet.
‫Jadi memastikan bahwa semuanya tiba di tujuan
‫yang harus mereka tuju menggunakan alamat IP pada setiap paket.
‫Dan sekali lagi, ini hanyalah gambaran umum yang sangat
‫luas tentang apa yang sebenarnya terjadi di balik layar
‫web, karena itu sebenarnya terlalu banyak informasi daripada
‫yang sebenarnya Anda perlukan
‫untuk menjadi pengembang back-end yang hebat.
‫Tapi saya harap Anda masih menemukan informasi
‫ini berguna dan menarik, dan juga tidak terlalu membingungkan.
‫Sekarang, di video berikutnya, kita akan benar-benar
‫melakukan beberapa permintaan HTTP sehingga Anda menjadi sedikit lebih akrab
‫dengan protokolnya.