HTTP
HTTP, singkatan dari Hypertext Transfer Protocol, adalah protokol standar yang digunakan di Internet untuk komunikasi antara browser/klien dan server.
Cara komunikasinya sangat sederhana. Klien/browser mengirim rekues ke server lewat protokol ini yang minimal berisi satu HTTP method, server lalu mengirim respon ke klien yang berisi data atau dokumen plus kode status.

Method
HTTP Method | |
|---|---|
GET | Untuk mengambil data atau file dari server. Otomatis dikirim oleh browser waktu kita buka website. |
POST | Dipakai untuk mengirim data ke server. |
PUT | Mirip POST tapi sifatnya idempotent artinya kalo kita kirim rekues ini 2x untuk menyimpan resource (data atau file) yang sama, server nggak membuat duplikat. Resource-nya tetap satu hanya dia di-update di rekues kedua dst. |
DELETE | Dipakai untuk menghapus resource. |
PATCH | Memodifikasi resource. |
OPTIONS | Yang pertama dikirim browser untuk mengecek apakah rekues bisa diterima server atau nggak. Rekues ini sering disebut preflight. |
Sebenarnya nggak ada aturan baku tentang method mana yang harus dipakai & untuk keperluan apa karena semua tergantung backend. BE bisa saja menerima POST untuk menggantikan PUT, PATCH, & DELETE .
Kode Status
Kode status HTTP ada banyak tapi yang banyak dipakai antara lain:
Kode | |
|---|---|
| 200 | Rekues sukses. Server mengirim respon yang diharapkan. |
| 401 | Rekues ditolak karena masalah otentikasi. Contohnya: user belum login |
| 500 | Ada error di sisi server |
| 404 | Resource nggak ditemukan misalnya karena URLnya salah. |
Secured Protocol
Ada dua protokol HTTP yang umum dipakai untuk mengakses website atau resource yaitu HTTP & HTTPS. HTTPS adalah versi yang lebih aman karena ada faktor enkripsi & saat ini lebih banyak digunakan daripada HTTP biasa karena Chrome, Firefox, Opera akan menampilkan peringatan kalo kita mengakses website yang nggak pakai protokol HTTPS.
Untuk menggunakan protokol HTTPS, kita perlu instal sertifikat SSL di server. Umumnya berbayar tapi ada juga layanan sertifikat SSL gratis dari Let's Encrypt.