"Hai, Amigo!"
"Hai, Bilaabo!"
"Hal baru apa yang akan kamu ceritakan padaku hari ini?"
"Banyak hal. Tapi untuk memulai, saya pikir kita akan membahas bekerja dengan jaringan dan Internet. Tertarik?"
"Ya. Galactic Internet sangat keren."
"Oke, tapi mari kita mulai dengan beberapa sejarah. Di awal abad ke-21, situasinya seperti ini…"
"Setiap komputer yang terhubung ke Internet memiliki nomor unik. Ini adalah nomor 4-byte biasa. Ini disebut alamat IP."
"Tetapi manusia memiliki ingatan yang buruk dan berjuang untuk mengingat sesuatu seperti 2108458776, jadi mereka sering menulis setiap byte secara terpisah."
"Jika kita membagi angka empat byte 2108458776 menjadi byte terpisah, kita mendapatkan 125.172.135.24. Seperti yang Anda ingat, setiap byte terdiri dari 8 bit dan dapat berisi angka dari 0 hingga 255."
"Jadi, begitukah cara kita menulis nomornya?"
"Ya. Lebih mudah (bagi manusia) untuk mengingat angka empat byte jika ditulis seperti ini."
"Ternyata, pilihan untuk menggunakan hanya 4 byte segera mempermainkan mereka. Jumlah perangkat yang terhubung ke Internet tumbuh begitu cepat sehingga mereka segera kehabisan nomor."
"Bagaimana mereka menyiasatinya?"
"Mereka melakukan apa yang biasanya dilakukan manusia."
"Mereka datang dengan standar baru untuk alamat IP dan dengan bangga menamakannya IPv6."
"Tidak seperti alamat IP biasa (disebut IPv4) yang menggunakan 4 byte untuk membentuk angka unik, standar baru ini menggunakan 16."
"Bayangkan saja, manusia tidak dapat mengingat 10 digit dalam angka biasa (seperti 2108458776), jadi mereka harus membaginya menjadi 4 bagian, tetapi kemudian mereka berpikir untuk menggunakan angka yang terdiri dari 16 byte."
"Ya, terkadang manusia memang aneh."
"Ya. Manusia adalah manusia."
"Konon, mereka berhasil keluar dari kesulitan mereka."
"Mereka bosan mengingat angka-angka itu dan memutuskan untuk menggantinya dengan kata-kata."
"Bagaimana? Bisakah Anda memberi saya contoh?"
"Tentu saja, web.mail.com , google.com , new.books.amazon.com , …"
"Nama semacam ini disebut domain."
"Agar Internet ini berfungsi dengan baik, mereka membuat tabel khusus yang disebut Domain Name System (DNS) yang menyimpan alamat IP dari setiap nama domain."
"Begini cara kerjanya."
1) Pengguna memasukkan alamat di browser, misalnya, web.mail.com .
2) Browser mengakses DNS dan menggunakan nama domain untuk mendapatkan alamat IP.
3) Permintaan dengan URL yang diperlukan dikirim ke alamat IP ini.
"Itu tidak terlihat sangat sederhana."
"Tapi pendekatan ini memang memiliki beberapa manfaat:"
" 1) Manusia mudah mengingat nama-nama yang bisa diucapkan."
" 2) Nama domain dapat dibangun secara hierarkis dengan menambahkan subdomain di awal nama. Persis seperti nama paket di Java."
" 3) Jika Anda perlu mengubah alamat IP server web, Anda hanya perlu mengubah data DNS, dan semuanya akan berfungsi seperti sebelumnya — pengguna tidak perlu mengingat alamat baru."
"DNS terlihat seperti ini:"
Nama domain | alamat IP |
---|---|
mail.com | 128.35.36.189 |
web.mail.com | 145.12.17.13 |
baru.mail.com | 192.155.15.3 |
google.com | 92.117.151.100 |
google.com | 193.168.0.1 |
docs.google.com | 217.12.222.1 |
… |
"Masuk akal."
"Pokoknya, domain adalah nama komputer, tetapi kita tidak membutuhkan komputer itu — kita membutuhkan apa yang ada di komputer. Untuk itulah URL digunakan."
"Awalnya, URL sebenarnya adalah tautan ke file di komputer lain. Misalnya:"
Contoh |
---|
http :// info.codegym.cc / pengguna/info/profile.html |
Keterangan |
http adalah protokol untuk komunikasi client-server info.codegym.cc adalah nama domain komputer user/info/profile.html adalah path ke file di komputer |
"Pada awal pengembangan jaringan, server web hanya dapat menggunakan URL untuk melayani file yang disimpannya di suatu tempat. URL sebenarnya adalah jalur global ke file: nama komputer + jalur."
"Kemudian, ketika server web mulai membuat file sendiri, URL berubah sedikit dan menjadi permintaan ke server web. Parameter permintaan juga ditambahkan."
"Saat ini sangat jarang melihat ekstensi file di akhir URL. "URL modern hanyalah tautan unik dengan parameter. Lebih seperti pemanggilan metode daripada jalur file global."
"URL modern klasik terlihat seperti ini:"
Mengurai URL |
---|
http :// codegym.cc / alpha/api/contacts ? userid=13&filter=none&page=3 |
Deskripsi bagian dari URL |
codegym.cc adalah nama domain — nama unik (alamat) komputer di Internet |
http adalah protokol untuk komunikasi client-server |
alpha/api/contacts adalah permintaan server web atau permintaan halaman web di server |
userid=13 & filter=none & page=3 adalah string dengan parameter permintaan |
"Ya, saya ingat. Anda memberi tahu saya tentang URL baru-baru ini."
"Dan tentang pelabuhan juga. Anda menggunakan contoh gedung apartemen."
"Sebaiknya beri tahu saya apa itu 'http'. Saya melihat 'protokol' tertulis di mana-mana, tapi saya tidak jelas apa itu."
"Oke. Aku akan memberitahumu tanpa basa-basi lagi."
" HTTP adalah singkatan dari Hyper T ext T ransport P rotocol dan untuk mentransfer hypertext. "
"Apa itu hiperteks?"
"Ini HTML."
"Secara kasar, protokol adalah seperangkat aturan untuk komunikasi. Ini menjelaskan permintaan yang dapat dikirim ke server web, dan dalam format apa, serta bagaimana server web harus merespons."
"Singkatnya, situasinya begini. File teks biasa atau, jika Anda suka, sejumlah besar teks dikirim antara klien dan server. "
" Permintaan datang ke server, dan server memberikan respons untuk setiap permintaan."
"Berikut adalah contoh permintaan dan tanggapan seperti itu:"
GET alpha/api/contacts HTTP/1.1
Host: codegym.cc
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close
GET – request subtype
alpha/api/contacts – request to the web server
HTTP/1.1 – protocol version – HTTP/1.1
Host: codegym.cc – domain name
User-Agent: Mozilla/5… – unique browser name
Accept: text/html – requested document type: HTML
Connection: close – close the server connection after processing the request.
"Baris pertama adalah permintaan sebenarnya. Berikut ini adalah parameter permintaan tambahan, juga dikenal sebagai 'bidang tajuk'."
"Dan inilah contoh tanggapan:"
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: Apache
X-Powered-By: PHP/5.2.4-2ubuntu5wm1
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT
Content-Language: en
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Connection: close
<html><body><a href="http://ample.com/about.html#contacts">Click here</a></body></html>
HTTP/1.1 200 OK - «200 OK» means everything is okay.
Date: Wed, 11 Feb 2009 - Date on which the request was processed
Server: Apache - Name of the web server
X-Powered-By: PHP - The server uses PHP
Last-Modified: Wed, 11 Feb 2009 - The time of the last update of the requested file
Content-Language: en - The language of the file
Content-Type: text/html; charset=utf-8 – This is an HTML-file with UTF-8 encoding
Content-Length: 1234 - The response is 1234 bytes long
Connection: close - The connection will be closed after the request is handled
<html><body><a href="http://ample - The HTML file itself.
"Saya ingin menarik perhatian Anda pada dua hal:"
"Pertama, apa pun yang Anda minta, sepertinya permintaan file ke server. Tidak masalah apakah file itu ada di server atau server menghasilkannya sebagai tanggapan atas permintaan tersebut."
"Kedua, file itu sendiri dikirim sebagai bagian dari respons HTTP . Dengan kata lain, kami melihat beberapa data tambahan di awal respons server, dan kemudian isi file yang disajikan. "
"Menarik sekali! Aku tidak yakin aku mengerti semuanya. Aku akan membacanya lagi nanti."
"Oh, saya ingin memberi tahu Anda tentang satu hal kecil tapi menarik lainnya: kue."
"Apa itu?"
"Menurut protokol HTTP, cookie adalah bagian kecil dari informasi yang dikirimkan server ke klien untuk disimpan di klien. Dan mereka dikirim kembali ke server sebagai bagian dari permintaan berikutnya. "
"Dan apa gunanya itu?"
"Misalkan pengguna masuk di beranda situs web. Server membuat objek sesi di server untuk pengguna ini, dan nomor sesi unik dikirim ke klien sebagai cookie. Selama permintaan berikutnya dari klien ke server, nomor sesi ini, bersama dengan cookie lainnya, akan dikirim kembali ke server. Ini berarti server dapat mengenali pengguna yang mengirim permintaan baru."
"Sangat menarik!"
"Yap. Saat kamu menulis servletmu sendiri, kita akan membahas topik ini lebih dekat. Tapi untuk saat ini, mari kita istirahat."
"Terserah apa kata anda."
GO TO FULL VERSION