Dalam pelajaran ini, kita akan melihat hubungan antara klien dan server. Arsitektur Klien/server menawarkan kemungkinan komunikasi yang tidak terbatas, dan itulah yang memungkinkan Internet. Kami akan membahas pemahaman dasar tentang model klien/server yang nantinya akan digunakan untuk memanggil API. Pelajaran ini berada di luar cakupan pelajaran ini untuk mencakup sumber daya yang lengkap untuk arsitektur klien/server--sebaliknya, kita akan fokus pada prinsip-prinsip utama komunikasi klien/server.
Anda akan dapat:
Model teknologi komunikasi server klien adalah sekumpulan arsitektur aplikasi terdistribusi dan operasi jaringan yang mengelola beban kerja antara penyedia layanan, yang disebut server , dan peminta layanan, yang disebut klien .
Meskipun model server klien dapat digunakan oleh program dalam komputer individual, kami akan fokus pada aspek yang berhubungan dengan lingkungan jaringan. Dalam hal ini, klien mengatur koneksi ke server melalui jaringan area lokal (LAN), jaringan area luas (WAN) seperti Internet. Pernahkah Anda memainkan Xbox Live atau menggunakan PlayStation Network? Xbox One Anda adalah kliennya, dan ketika masuk ke jaringan, ia menghubungi server Xbox Live untuk mengambil sumber daya game seperti pembaruan, video, dan demo game.
Arsitektur server klien berlapis-lapis khas yang sebagian besar dari kita gunakan dalam kehidupan sehari-hari dapat ditunjukkan seperti di bawah ini.
Klien adalah perangkat keras atau perangkat lunak komputer yang meminta layanan yang disediakan oleh server. Server sering kali (tetapi tidak selalu) terletak di komputer fisik yang terpisah.
Server adalah komputer fisik yang didedikasikan untuk menjalankan layanan guna melayani kebutuhan klien. Tergantung pada layanan yang berjalan, dapat berupa server file, server database, server media rumah, server cetak, server email, atau server web .
Gagasan tentang Klien dan Server yang berkomunikasi melalui jaringan inilah yang memungkinkan melihat situs web dan berinteraksi dengan aplikasi Web (seperti Gmail, Facebook, LinkedIn). Model ini adalah cara untuk menggambarkan hubungan memberi-dan-menerima antara klien dan server dalam aplikasi Web dan mengatur bagaimana informasi dikirimkan antar komputer.
Mari kita lihat seperti apa aplikasi web dasar yang menerima permintaan dari klien web dan menyajikannya sesuai kebutuhan.
Aplikasi Web (aplikasi Web) adalah program aplikasi yang disimpan di server jarak jauh dan dikirimkan melalui Internet melalui antarmuka browser. Layanan web menurut definisinya adalah aplikasi Web dan banyak, meskipun tidak semua, situs web berisi aplikasi Web. Setiap komponen situs web yang menjalankan beberapa fungsi bagi pengguna memenuhi syarat sebagai aplikasi Web. Mesin pencari Google adalah aplikasi web, namun konsep dasarnya hampir tidak berbeda dengan direktori telepon yang memungkinkan Anda mencari nama atau nomor.
Sebagian besar aplikasi web sebenarnya menggunakan antarmuka browser untuk berinteraksi, yaitu pengguna akhir meminta akses dan meminta informasi/layanan dari aplikasi ini melalui antarmuka browser web modern. Ada ratusan cara untuk membangun dan mengkonfigurasi aplikasi Web tetapi kebanyakan dari mereka mengikuti struktur dasar yang sama: klien web, server web, dan database.
Klien adalah tempat pengguna akhir berinteraksi. Kode "sisi klien" sebenarnya bertanggung jawab atas sebagian besar apa yang sebenarnya dilihat pengguna. Untuk meminta beberapa informasi sebagai halaman web, sisi klien mungkin bertanggung jawab untuk: meliputi:
Sebagian besar tugas ini dikelola oleh teknologi mirip HTML/CSS/JavaScript untuk menyusun informasi, gaya halaman, dan menyediakan objek interaktif untuk navigasi dan fokus.
Server web dalam aplikasi Web adalah yang mendengarkan permintaan yang masuk dari klien. Saat Anda menyiapkan server HTTP (HyperText Transfer Protocol - Bahasa internet), kami menyiapkannya untuk mendengarkan nomor port. Nomor port selalu dikaitkan dengan alamat IP komputer. Anda dapat menganggap port sebagai saluran terpisah di komputer yang dapat kita gunakan untuk melakukan tugas berbeda: satu port dapat menjelajahi www.facebook.com sementara port lainnya mengambil email Anda. Hal ini dimungkinkan karena masing-masing aplikasi (browser Web dan klien email) menggunakan nomor port yang berbeda.
Setelah Anda menyiapkan server HTTP untuk mendengarkan port tertentu, server menunggu permintaan klien datang ke port spesifik tersebut. Setelah mengautentikasi klien, server melakukan tindakan apa pun yang dinyatakan oleh permintaan dan mengirimkan data apa pun yang diminta melalui respons HTTP.
Basis data adalah fondasi arsitektur Web. SQL/NoSQL atau database sejenisnya adalah tempat menyimpan informasi agar mudah diakses, dikelola, dan diperbarui. Jika Anda membuat situs media sosial, misalnya, Anda mungkin menggunakan database untuk menyimpan informasi tentang pengguna, postingan, komentar, dll. Saat pengunjung meminta halaman, data yang dimasukkan ke halaman tersebut berasal dari database situs, memungkinkan interaksi pengguna secara real-time dengan situs seperti Facebook atau aplikasi seperti Gmail.
Pada contoh gambar di atas, kita dapat melihat pengaturan yang disebutkan di atas sedang beraksi. Browser mengirimkan permintaan ke server web dengan memanggil domainnya yaitu www.google.com. Berdasarkan siapa pemohonnya, server mengumpulkan informasi yang diperlukan untuk database SQL. Informasi ini dibungkus sebagai kode HTML dan dikirim kembali ke klien. Browser web membaca informasi penataan dan gaya yang tertanam dalam HTML dan menampilkan halaman kepada pengguna sesuai dengan itu.
Ada banyak detail tentang arsitektur klien/server dan bagaimana arsitektur tersebut terwujud di Internet. Kami akan lebih fokus pada ide-ide yang disorot di bagian ini dengan menyiapkan klien dan membuat permintaan dengan Python. Keterampilan ini akan membantu kami meminta data dari server untuk eksperimen analitis kami. berikut adalah beberapa sumber tambahan untuk Anda jika Anda ingin menggali lebih dalam model server klien dan cara pengaturannya untuk berbagai arsitektur.
Dalam pelajaran ini, kita melihat dasar-dasar model server klien dan fokus pada bagaimana model ini diimplementasikan untuk aplikasi berbasis web. Kami melihat peran klien web, server web, dan database yang membawa informasi klien. Dalam pelajaran berikut, kita akan melihat bagaimana mengimplementasikan ide-ide ini menggunakan Python!