Internet
Bagaimana Server Web Bekerja
Pernahkah Anda bertanya-tanya tentang mekanisme yang mengirimkan halaman ini kepada Anda? Kemungkinan Anda sekarang sedang duduk di depan komputer, melihat halaman ini di browser.
Jadi, ketika Anda mengklik link untuk halaman ini, atau mengetikkan URL-nya (pencari sumber daya seragam), apa yang terjadi di balik layar untuk menampilkan halaman ini ke layar Anda?
Jika Anda pernah penasaran tentang prosesnya, atau pernah ingin mengetahui beberapa mekanisme spesifik yang memungkinkan Anda menjelajahi Internet, lanjutkan membaca. Pada artikel ini, Anda akan mempelajari bagaimana server Web menghadirkan halaman ke rumah, sekolah, atau kantor Anda. Ayo kita mulai!
Proses Dasar
Katakanlah Anda sedang duduk di depan komputer, menjelajahi web, dan Anda mendapat telepon dari seorang teman yang berkata, “Saya baru saja membaca artikel yang bagus! Ketik URL ini dan periksa. Ada di https://www.tamboenman.xyz/2021/03/bagaimana-server-web-bekerja.html”. Jadi Anda mengetik URL itu ke browser Anda dan tekan enter kembali. Dan secara ajaib, di mana pun di dunia tempat URL itu berada, laman itu muncul di layar Anda.
Pada tingkat yang paling dasar, diagram berikut menunjukkan langkah-langkah yang membawa halaman itu ke layar Anda:
Browser Anda membentuk koneksi ke server Web, meminta halaman dan menerimanya.
Dibalik Layar
Jika Anda ingin lebih mendetail tentang proses memasukkan halaman Web ke layar komputer Anda, berikut adalah langkah-langkah dasar yang terjadi di balik layar:
Browser membagi URL menjadi tiga bagian:
● Protokol (“http”)
● Nama server (“www.tamboenman.xyz”)
● Nama file (“web-server.html”)
Browser berkomunikasi dengan name server untuk menerjemahkan nama server “www.tamboenman.xyz” menjadi Alamat IP, yang digunakannya untuk terhubung ke mesin server. Browser kemudian membentuk koneksi ke server di alamat IP itu di port 80. (Kita akan membahas port nanti di artikel ini.)
Mengikuti protokol HTTP, browser mengirim permintaan GET ke server, meminta file “https://www.tamboenman.xyz/2021/03/bagaimana-server-web-bekerja.html”. (Perhatikan bahwa cookie dapat dikirim dari browser ke server dengan permintaan GET).
Server kemudian mengirim teks HTML untuk halaman Web ke browser. (Cookie juga dapat dikirim dari server ke browser di header halaman.) Browser membaca tag HTML dan memformat halaman ke layar Anda.
Jika Anda belum pernah menjelajahi proses ini sebelumnya, itu banyak kosakata baru. Untuk memahami keseluruhan proses ini secara mendetail, Anda perlu mempelajari tentang alamat IP, port, protokol … Bagian berikut akan memandu Anda melalui penjelasan lengkap.
Internet
Jadi, apa itu “Internet”? Internet adalah kumpulan jutaan komputer yang sangat besar, semuanya terhubung bersama dalam jaringan komputer. Jaringan memungkinkan semua komputer untuk berkomunikasi satu sama lain.
Komputer rumah dapat dihubungkan ke Internet menggunakan modem saluran telepon, DSL atau modem kabel yang berkomunikasi dengan penyedia layanan Internet (ISP). Komputer dalam bisnis atau universitas biasanya memiliki kartu antarmuka jaringan (NIC) yang secara langsung menghubungkannya ke jaringan area lokal (LAN) di dalam bisnis.
Bisnis kemudian dapat menghubungkan LAN-nya ke ISP menggunakan saluran telepon berkecepatan tinggi seperti saluran T1. Saluran T1 dapat menangani sekitar 1,5 juta bit per detik, sedangkan saluran telepon normal yang menggunakan modem biasanya dapat menangani 30.000 hingga 50.000 bit per detik.
ISP kemudian menyambung ke ISP yang lebih besar, dan ISP terbesar mempertahankan “backbones” serat optik untuk seluruh negara atau wilayah. Backbones di seluruh dunia terhubung melalui jalur serat optik, kabel bawah laut, atau tautan satelit. Dengan cara ini, setiap komputer di Internet terhubung ke setiap komputer lain di Internet.
Klien dan Server
Secara umum, semua mesin di Internet dapat dikategorikan menjadi dua jenis: server dan klien. Mesin yang menyediakan layanan (seperti server Web atau server FTP) ke mesin lain adalah server.
Dan mesin yang digunakan untuk terhubung ke layanan tersebut adalah klien. Saat Anda terhubung ke Yahoo! di www.yahoo.com untuk membaca halaman, Yahoo! menyediakan mesin (mungkin sekumpulan mesin yang sangat besar), untuk digunakan di Internet, untuk melayani permintaan Anda. Yahoo! menyediakan server.
Mesin Anda, sebaliknya, mungkin tidak memberikan layanan kepada siapa pun di Internet. Oleh karena itu, ini adalah mesin pengguna, juga dikenal sebagai klien. Mungkin dan umum bagi mesin untuk menjadi server dan klien, tetapi untuk tujuan kita di sini, Anda dapat menganggap sebagian besar mesin sebagai satu atau yang lain.
Mesin server mungkin menyediakan satu atau lebih layanan di Internet. Misalnya, mesin server mungkin memiliki perangkat lunak yang berjalan di atasnya yang memungkinkannya bertindak sebagai server Web, server email, dan server FTP.
Klien yang datang ke mesin server melakukannya dengan maksud tertentu, sehingga klien mengarahkan permintaan mereka ke server perangkat lunak tertentu yang berjalan di mesin server secara keseluruhan. Misalnya, jika Anda menjalankan browser Web di mesin Anda, kemungkinan besar ia ingin berbicara dengan server Web di mesin server. Aplikasi Telnet Anda akan ingin berbicara dengan server Telnet, aplikasi email Anda akan berbicara dengan server email, dan seterusnya …
Alamat IP
Untuk menjaga agar semua mesin ini tetap lurus, setiap mesin di Internet diberi alamat unik yang disebut alamat IP. IP adalah singkatan dari Internet Protocol, dan alamat ini adalah angka 32-bit, biasanya dinyatakan sebagai empat “oktet” dalam “angka desimal bertitik.” Alamat IP tipikal terlihat seperti ini:
216.27.61.137
Keempat angka dalam alamat IP disebut oktet karena dapat memiliki nilai antara 0 dan 255, yaitu 28 kemungkinan per oktet.
Setiap mesin di Internet memiliki alamat IP yang unik. Sebuah server memiliki alamat IP statis yang tidak terlalu sering berubah. Mesin rumah yang melakukan panggilan melalui modem sering kali memiliki alamat IP yang ditetapkan oleh ISP saat mesin melakukan panggilan masuk.
Alamat IP tersebut unik untuk sesi tersebut, mungkin berbeda pada saat mesin melakukan panggilan masuk. Ini cara, ISP hanya membutuhkan satu alamat IP untuk setiap modem yang didukungnya, bukan untuk setiap pelanggan.
Jika Anda bekerja pada mesin Windows, Anda dapat melihat banyak informasi Internet untuk mesin Anda, termasuk alamat IP dan nama host Anda saat ini, dengan perintah WINIPCFG.EXE (IPCONFIG.EXE untuk Windows 2000/XP). Di mesin UNIX, ketik nslookup di command prompt, bersama dengan nama mesin, seperti www.tamboenman.xyz, mis. “nslookup www.tamboenman.xyz”, untuk menampilkan alamat IP mesin, dan Anda dapat menggunakan perintah nama host untuk mempelajari nama mesin Anda.
Nama Domain
Karena kebanyakan orang kesulitan mengingat rangkaian angka yang membentuk alamat IP, dan karena alamat IP terkadang perlu diubah, semua server di Internet juga memiliki nama yang dapat dibaca manusia, yang disebut nama domain. Misalnya, www.tamboenman.xyz adalah nama permanen yang dapat dibaca manusia. Lebih mudah bagi kebanyakan dari kita untuk mengingat www.tamboenman.xyz daripada mengingat 172.217.3.179.
Nama www.tamboenman.xyz sebenarnya memiliki tiga bagian:
1. Nama host (“www”)
2. Nama domain (“tamboenman”)
3. Nama top-level domain (“xyz”)
Nama domain dalam domain “.com” dikelola oleh pencatat bernama VeriSign. VeriSign juga mengelola nama domain “.net”. Registrar lain (seperti RegistryPro, NeuLevel, dan Public Interest Registry) mengelola domain lain (seperti .pro, .biz, dan .org).
VeriSign membuat nama domain tingkat atas dan menjamin bahwa semua nama dalam domain tingkat atas adalah unik. VeriSign juga memelihara informasi kontak untuk setiap situs dan menjalankan database “whois”.
Nama host dibuat oleh perusahaan yang menghosting domain. “www” adalah nama host yang sangat umum, tetapi banyak tempat sekarang mengabaikannya atau menggantinya dengan nama host yang berbeda yang menunjukkan area tertentu dari situs tersebut. Misalnya, di encarta.msn.com, nama domain untuk ensiklopedia Encarta Microsoft, “encarta” ditetapkan sebagai nama host, bukan “www.”
Name Server
Satu set server yang disebut Domain Name Servers (DNS) memetakan nama yang dapat dibaca manusia ke alamat IP. Server ini adalah database sederhana yang memetakan nama ke alamat IP, dan didistribusikan ke seluruh Internet.
Sebagian besar perusahaan, ISP, dan universitas menggunakan server nama kecil untuk memetakan nama host ke alamat IP. Ada juga server nama pusat yang menggunakan data yang disediakan oleh VeriSign untuk memetakan nama domain ke alamat IP.
Jika Anda mengetik URL “https://www.tamboenman.xyz/2021/03/bagaimana-server-web-bekerja.html” ke dalam browser Anda, browser Anda mengekstrak nama “www.tamboenman.xyz”, meneruskannya ke server nama domain, dan domain server nama mengembalikan alamat IP yang benar untuk www.tamboenman.xyz.
Sejumlah server nama mungkin terlibat untuk mendapatkan alamat IP yang benar. Misalnya, dalam kasus www.tamboenman.xyz, server nama untuk domain level teratas “xyz” akan mengetahui alamat IP untuk server nama yang mengetahui nama host, dan kueri terpisah ke server nama tersebut, yang dioperasikan oleh ISP tamboenman, dapat mengirimkan alamat IP sebenarnya untuk mesin server Tamboenman.
Di mesin UNIX, Anda dapat mengakses layanan yang sama menggunakan perintah nslookup. Cukup ketikkan nama seperti “www.tamboenman.xyz” ke dalam baris perintah, dan perintah akan menanyakan server nama dan mengirimkan alamat IP yang sesuai kepada Anda.
Jadi ini dia: Internet terdiri dari jutaan mesin, masing-masing dengan alamat IP yang unik. Banyak dari mesin ini adalah mesin server, artinya mereka menyediakan layanan ke mesin lain di Internet. Anda telah mendengar banyak dari server ini: server email, server Web, server FTP, server Gopher dan server Telnet, untuk beberapa nama. Semua ini disediakan oleh mesin server.
Port
Setiap mesin server membuat layanannya tersedia ke Internet menggunakan port bernomor, satu untuk setiap layanan yang tersedia di server. Misalnya, jika mesin server menjalankan server Web dan server FTP, server Web biasanya akan tersedia di port 80, dan server FTP akan tersedia di port 21. Klien terhubung ke layanan di alamat IP tertentu dan di port tertentu.
Setiap layanan paling terkenal tersedia di nomor port terkenal. Berikut beberapa nomor porta yang umum:
● echo 7
● daytime 13
● qotd 17 (Quote of the Day)
● ftp 21
● telnet 23
● smtp 25 (Simple Mail Transfer, meaning e-mail)
● time 37
● nameserver 53
● nicname 43 (Who Is)
● gopher 70
● finger 79
● WWW 80
Jika mesin server menerima koneksi pada port dari dunia luar, dan jika firewall tidak melindungi port, Anda dapat menghubungkan ke port dari mana saja di Internet dan menggunakan layanan.
Perhatikan bahwa tidak ada yang memaksa, misalnya, server Web berada pada port 80. Jika Anda menyiapkan mesin Anda sendiri dan memuat perangkat lunak server Web di atasnya, Anda dapat meletakkan server Web pada port 918, atau yang lainnya. port yang tidak digunakan, jika Anda mau.
Kemudian, jika mesin Anda dikenal sebagai xxx.yyy.com, seseorang di Internet dapat menyambung ke server Anda dengan URL http://xxx.yyy.com:918. “: 918” secara eksplisit menentukan nomor port, dan harus disertakan agar seseorang dapat menjangkau server Anda. Ketika tidak ada port yang ditentukan, browser hanya mengasumsikan bahwa server menggunakan port 80 yang terkenal.
Protokol
Setelah klien terhubung ke layanan di port tertentu, ia mengakses layanan menggunakan protokol tertentu. Protokol adalah cara yang ditentukan sebelumnya di mana seseorang yang ingin menggunakan layanan berbicara dengan layanan itu. “Seseorang” bisa jadi seseorang, tetapi lebih sering lagi itu adalah program komputer seperti browser Web. Protokol sering kali berupa teks, dan secara sederhana menjelaskan bagaimana klien dan server akan melakukan percakapan mereka.
Mungkin protokol yang paling sederhana adalah protokol siang hari. Jika Anda terhubung ke port 13 pada mesin yang mendukung server siang hari, server akan mengirimkan kesan tanggal dan waktu saat ini dan kemudian menutup koneksi.
Protokolnya adalah, “Jika Anda terhubung dengan saya, saya akan mengirimkan tanggal dan waktu, lalu memutuskan sambungan.” Kebanyakan mesin UNIX mendukung server ini. Jika Anda ingin mencobanya, Anda dapat menghubungkannya dengan aplikasi Telnet. Di UNIX, sesi akan terlihat seperti ini:
%telnet web67.ntx.net 13Trying 216.27.61.137…Connected to web67.ntx.net.Escape character is ‘^]’.Sun Oct 25 08:34:06 1998Connection closed by foreign host.
Pada mesin Windows, Anda dapat mengakses server ini dengan mengetik “telnet web67.ntx.net 13” pada prompt MSDOS.
Dalam contoh ini, web67.ntx.net adalah mesin UNIX server, dan 13 adalah nomor port untuk layanan siang hari. Aplikasi Telnet terhubung ke port 13 (telnet secara alami terhubung ke port 23, tetapi Anda dapat mengarahkannya ke port mana pun), kemudian server mengirimkan tanggal dan waktu dan memutus. Sebagian besar versi Telnet memungkinkan Anda menentukan nomor port, sehingga Anda dapat mencoba menggunakan versi Telnet apa pun yang tersedia di mesin Anda.
Kebanyakan protokol lebih terlibat daripada siang hari dan ditentukan dalam dokumen Request for Comment (RFC) yang tersedia untuk umum (lihat http://sunsite.auc.dk/RFC/ untuk arsip yang bagus dari semua RFC). Setiap server Web di Internet sesuai dengan protokol HTTP, diringkas dengan baik dalam The Original HTTP seperti yang didefinisikan pada tahun 1991.
Bentuk paling dasar dari protokol yang dipahami oleh server HTTP hanya melibatkan satu perintah: GET. Jika Anda terhubung ke server yang memahami protokol HTTP dan memberitahukannya ke “GET nama file”, server akan merespons dengan mengirimkan konten dari file bernama dan kemudian memutuskan sambungan. Berikut sesi tipikal:
%telnet www.tamboenman.xyz 80Trying 172.217.3.179…Connected to howstuffworks.com.Escape character is ‘^]’.GET https://www.tamboenman.xyz/ …Connection closed by foreign host.
Dalam protokol HTTP asli, yang akan Anda kirimkan hanyalah nama file yang sebenarnya, seperti “/” Protokol kemudian dimodifikasi untuk menangani pengiriman URL lengkap. Hal ini memungkinkan perusahaan yang menghosting domain virtual, tempat banyak domain berada di satu mesin, untuk menggunakan satu alamat IP untuk semua domain yang mereka host.
Menyatukan Semuanya
Sekarang Anda tahu banyak tentang Internet. Anda tahu bahwa saat Anda mengetik URL ke browser, langkah-langkah berikut terjadi:
Browser memecah URL menjadi tiga bagian:
● Protokol (“http”)
● Nama server (“www.tamboenman.xyz”)
● Nama file (“2021/03/bagaimana-server-web-bekerja.html”)
Browser berkomunikasi dengan server nama untuk menerjemahkan nama server, “www.tamboenman.xyz”, menjadi alamat IP, yang digunakannya untuk terhubung ke mesin server tersebut. Browser kemudian membentuk koneksi ke server Web di alamat IP tersebut pada port 80. Mengikuti protokol HTTP, browser mengirimkan permintaan GET ke server, meminta file “https://www.tamboenman.xyz/2021/03/bagaimana-server-web-bekerja.html” (Perhatikan bahwa cookie dapat dikirim dari browser ke server dengan permintaan GET ) Server mengirimkan teks HTML untuk halaman Web ke browser. (Cookie juga dapat dikirim dari server ke browser di header halaman.) Browser membaca tag HTML dan memformat halaman ke layar Anda.
Ekstra: Keamanan
Anda dapat melihat dari uraian ini bahwa server Web dapat menjadi perangkat lunak yang cukup sederhana. Ini mengambil nama file yang dikirim dengan perintah GET, mengambil file itu dan mengirimkannya ke kabel ke browser.
Bahkan jika Anda memperhitungkan semua kode untuk menangani port dan koneksi port, Anda dapat dengan mudah membuat program C yang mengimplementasikan server Web sederhana dalam kurang dari 500 baris kode. Jelas, server Web tingkat perusahaan yang lengkap lebih terlibat, tetapi dasarnya sangat sederhana.
Sebagian besar server menambahkan beberapa tingkat keamanan ke proses penyajian. Misalnya, jika Anda pernah pergi ke halaman Web dan browser memunculkan kotak dialog yang menanyakan nama dan kata sandi Anda, Anda telah menemukan halaman yang dilindungi kata sandi.
Server memungkinkan pemilik halaman memelihara daftar nama dan sandi untuk orang-orang yang diizinkan mengakses halaman; server memungkinkan hanya orang-orang yang mengetahui kata sandi yang benar yang melihat halaman. Server yang lebih canggih menambahkan keamanan lebih lanjut untuk memungkinkan koneksi terenkripsi antara server dan browser, sehingga informasi sensitif seperti nomor kartu kredit dapat dikirim di Internet.
Hanya itu yang ada di server Web yang memberikan halaman statis standar. Halaman statis adalah halaman yang tidak berubah kecuali pembuatnya mengedit halaman tersebut.