KOMUNIKASI CLIENT-SERVER

Komunikasi Client - Server



    Salah satu protokol yang dapat digunakan untuk berinteraksi dengan web server adalah HTTP/HTTPS. Dalam protokol ini, pola request-response digunakan, yang berarti kita harus melakukan permintaan sebelum mendapatkan tanggapan. Ketika kita memesan kopi di kedai kopi, ini selalu terjadi.

       Jika kita ingin membeli kopi, kopi yang kita inginkan tidak datang sendiri. Kita harus menghubungi kasir atau pelayan untuk memintanya, dan mereka akan meneruskan permintaan kita ke barista. Barista membuat kopi untuk kita, dan kita harus memberikannya kembali ke pelayan untuk dihidangkan.

source image: https://www.dicoding.com

    Komunikasi antara client dan server menggunakan protokol HTTP/S memiliki pola yang sama. Untuk memudahkan pemahaman, sebutlah client sebagai Front-End dan server sebagai Back-End. Server tidak akan mengirimkan data jika tidak ada permintaan dari client; hanya ketika client meminta sesuatu, server akan menanggapi.

source image: https://www.dicoding.com

    Dalam hal permintaan (request), kita harus memberi tahu pelayan dengan jelas apa yang ingin kita minta. Sebagai contoh, jika seseorang meminta kopi, beritahu mereka kopi apa yang mereka inginkan. Jika kita ingin menanyakan lokasi toilet, katakan, "Di mana letak toilet?" Jika permintaan kita tidak memiliki keterangan yang cukup, pelayan tidak dapat memprosesnya.


source image: https://www.dicoding.com

Dibandingkan dengan permintaan yang dikirim melalui protokol HTTP, permintaan yang diajukan oleh klien harus memiliki informasi yang memadai agar server dapat mengeksekusi permintaan tersebut. Informasi yang harus disertakan dalam permintaan dapat mencakup:

1. Request line : berisikan method/verb seperti GET (mengambil data), POST (menambahkan/mengirim
    data), PUT (memperbaharui data), atau DELETE (menghapus data); path atau alamat yang diminta;
    dan versi HTTP yang digunakan.

2. Header: memuat informasi terkait permintaan seperti format dokumen (misalnya, application/json,
    text/html, dll.), kunci akses, dan sebagainya.

3. Body (opsional): mengandung data yang dibutuhkan oleh server; ini dapat dalam bentuk teks, JSON,
    atau format lainnya. Jika server tidak membutuhkan data apa pun, body tidak perlu dilampirkan.


Jika request dilampirkan dengan informasi yang tidak jelas atau tidak sesuai, server akan menolaknya dengan tanggapan negatif. Respon negatif? Apa itu?

Setiap permintaan yang dibuat, baik dengan informasi yang tepat atau tidak, akan menerima tanggapan. Tanggapan yang dikirimkan ke client dari server juga mengandung informasi. Beberapa informasi yang dilampirkan oleh respons adalah sebagai berikut:

1. Status line : berisikan HTTP versi yang digunakan; status code berupa tiga digit angka yang
    menandakan keberhasilan dari permintaan; reason phrase atau status text yang merupakan pesan
    berdasarkan status code dalam bentuk teks sehingga lebih mudah dimengerti.

2. Header : mengandung informasi yang dilampirkan terkait response seperti format dokumen.

3. Body (opsional, namun biasanya selalu dilampirkan) : memuat data yang dikirimkan oleh server.
    Data dapat berupa HTML, JSON, gambar, dsb.


Apa artinya ketika kita berbicara tentang respons negatif? Ketika permintaan klien tidak dipenuhi, server akan memberikan tanggapan negatif. Di dunia nyata, ketika kita meminta kopi di kedai, mereka tidak dapat memenuhi permintaan kita karena masalah teknis. Kita hanya menerima pesan "Maaf stok kopi habis" atau "Maaf mesin kopi sedang rusak" daripada mendapatkan kopi.


source image: https://www.dicoding.com

Dengan cara yang sama seperti protokol HTTP, kita tidak akan mendapatkan data yang diinginkan jika kita meminta sesuatu yang server tidak dapat memprosesnya. Server akan memberikan respons negatif dengan alasan mengapa ia tidak dapat memenuhi permintaannya (misalnya, pesan "Not Found", "Bad Request", atau jenis pesan lainnya).

Kita dapat mengetahui sebuah request berhasil atau tidak melalui status code yang dikirim oleh response. Sebuah request berhasil bila status code response diawali dengan angka 1, 2 atau 3, selain itu request gagal dieksekusi.

Posting Komentar

0 Komentar