Skip to main content

Apa itu HTTP?

Pendahuluan

Setelah mengetahui apa itu internet dan bagaimana cara bekerjanya, kali ini kita akan mengenal HTTP. HTTP adalah singkatan dari Hypertext Transfer Protocol, yang merupakan sebuah protokol jaringan yang biasa digunakan untuk pertukaran data berbentuk dokumen HTML, CSS, JavaScript, JSON, audio, dan jenis dokumen lainnya. Pada awalnya didesain untuk komunikasi antara web browser dan web server, namun saat ini biasa juga digunakan untuk kebutuhan lain.

Sejarah Singkat

HTTP memiliki pengaruh yang kuat dalam perkembangan World Wide Web (WWW). Protokol ini pertama kali diusulkan oleh Tim Berners-Lee pada tahun 1989 sebagai bagian dari proyek untuk menciptakan sistem informasi global di CERN (Organisasi Eropa untuk Penelitian Nuklir).

HTTP/0.9

Versi pertama dirilis pada tahun 1991, pada saat itu HTTP tidak memiliki kode versi, namun biasa disebut dengan dengan versi 0.9. Pada versi ini, HTTP hanya bisa melakukan request GET dan hanya bisa menerima dokumen berbentuk HTML dari server.

HTTP/1.0

Pada tahun 1996, versi 1.0 dari HTTP dirilis, yang merupakan revisi terakhir dari HTTP/1.0-draft yang dirilis pada tahun 1992, dan pada versi 1.0 ini terdapat beberapa perubahan yang di antaranya adalah:

  • Sudah mendukung untuk pertukaran data selain dokumen HTML dengan memanfaatkan header Content-Type.
  • Ditambahkan method POST dan HEAD.

HTTP/1.1

Setahun kemudian, versi 1.1 pertama kali dirilis, dan kemudian lanjut pada tahun 1999 rilis untuk versi revisi dengan beberapa perbaikan dalam spesifikasi asli HTTP/1.1, serta menambahkan beberapa fitur tambahan, di antaranya:

  • Ditambahkan method PUT, PATCH, OPTIONS, DELETE.
  • Koneksi persisten, yang mengizinkan koneksi untuk tetap terbuka secara default setelah request-response selesai, memungkinkan beberapa permintaan berturut-turut. Untuk menutup koneksi, klien dapat mengirimkan header Connection: close dalam permintaan terakhirnya, sehingga mengakhiri koneksi dengan aman.

Versi ini adalah versi yang paling banyak digunakan hingga saat ini.

HTTP/2

Pada tahun 2015, HTTP merilis versi major selanjutnya, yaitu HTTP/2. Saat ini pun sudah mulai banyak diadopsi oleh seluruh Web di seluruh dunia. Lalu jika pada web browser belum mendukung versi 2 ini, maka secara otomatis browser tersebut akan menggunakan versi 1.1. Lihat RFC 7540 untuk melihat detail perubahannya.

HTTP/3

Versi major selanjutnya dirilis pada tahun 2022 yaitu HTTP/3, yang merupakan evolusi lebih lanjut dari protokol HTTP setelah HTTP/2. HTTP/3 secara substansial berbeda dari pendahulunya karena mengganti transport layer protokol dari TCP (Transmission Control Protocol) yang digunakan oleh HTTP/1.x dan HTTP/2, menjadi QUIC (Quick UDP Internet Connections). Detailnya ada di RFC 9114.

Cara Kerja HTTP

Ilustrasi HTTP Seperti yang sudah dijelaskan sebelumnya, HTTP adalah protokol yang digunakan dalam pertukaran data antara klien dan server, tepatnya klien mengirimkan request ke server, lalu server mengembalikan response kepada klien tersebut. Ada beberapa hal yang bisa diilustrasikan sebagai klien, tapi kali ini kita akan ilustrasikan sebagai web browser.

Ketika misalnya kita mengetikan URL https://app.zerocosttechschool.com dan membukanya pada browser kita, maka browser sebagai klien sedang mengirimkan request kepada server, lalu server mengirimkan response berupa dokumen HTML, CSS, dan dokumen lain yang dibutuhkan. Alur Situs 0CTS Dan seperti inilah hasil di browser: Situs 0CTS

Komponen Utama HTTP

HTTP Method

Merupakan sebuah metode bagaimana request akan dikirimkan ke server. HTTP method terdiri dari GET, HEAD, POST, PUT, PATCH, OPTIONS, dan DELETE. Tiap method memiliki fungsinya masing-masing.

  • GET: Digunakan untuk request data/dokumen ke server tanpa si klien mengirimkan suatu data. Pada contoh di atas, kita sudah melakukan request dengan method GET ke https://app.zerocosttechschool.com.
  • HEAD: Mirip seperti GET, tapi hanya menerima response apakah data yang di-request itu ada atau tidak.
  • POST: Dapat mengirimkan data ketika melakukan request ke server melalui body dari request, sehingga biasanya digunakan untuk mengirim data baru.
  • PUT: Digunakan untuk mengganti semua data yang terdapat di server dengan data baru yang dikirim di request.
  • PATCH: Digunakan untuk mengganti sebagian data.
  • OPTIONS: Digunakan untuk melihat opsi method apa saja yang bisa dilakukan pada server.
  • DELETE: Digunakan untuk menghapus data.

HTTP Headers

Merupakan sebuah informasi tambahan dengan format key-value terkait request atau response yang dikirimkan. Pada browser pun kita bisa melihat headers dengan membuka network tool, biasanya dibuka dengan shortcut F12, atau inspect element lalu pilih tab "Network". Contohnya seperti berikut dengan browser Firefox: Browser Network Tool Dari list yang ada, kita bisa pilih yang paling atas, yang merupakan dokumen HTML dari situs https://app.zerocosttechschool.com, dan ini adalah detail dari headers tersebut:

Request Headers

Request Headers HTML 0CTS

Response Headers

Response Headers HTML 0CTS

HTTP Status

Merupakan 3 digit kode yang ada di response HTTP, yang menandakan status dari response tersebut. Saat membuka situs 0CTS sebelumnya, pada tampilan headers di network tool pun kita bisa melihat ada key Status yang bernilai 200, yang artinya request dan response sukses dijalankan.

Headers HTML 0CTS

Itu adalah 1 di antara banyaknya kode status HTTP, tapi secara garis besar dibagi menjadi 5 jenis, yaitu:

  • 1xx: Memberikan informasi tentang proses status atau kondisi server.
  • 2xx: Menandakan bahwa response sukses.
  • 3xx: Mengindikasikan pengalihan (redirection).
  • 4xx: Menandakan kesalahan dari sisi klien.
  • 5xx: Menandakan kesalahan dari sisi server.

"xx" mengacu ke angka di antara 00 dan 99 yang masing-masing memiliki detail arti yang berbeda. Kamu bisa lihat detail selengkapnya di MDN.

HTTP Body

Kita sudah singgung hal ini sebelumnya pada bagian HTTP Method, tepatnya pada penjelasan terkait POST, yap jadi HTTP Body adalah data yang bisa dikirim dari request (biasa juga disebut payload), tapi bisa juga diterima dari response. Pada contoh di atas saat kita membuka situs 0CTS, maka kita hanya mengirim request GET dan tanpa menyertakan body.

Lalu juga body ini ada keterkaitannya dengan header Content-Type yang sudah disebutkan sebelumnya pada bagian dirilisnya HTTP/1.0, dan jika kita perhatikan lagi pada gambar Response Headers sebelumnya, maka di situ ada key content-type dengan isi text/html, yang berarti server mengirimkan data berbentuk dokumen HTML. Isi data dari body bisa berupa:

  • HTML: Yaitu dokumen untuk menampilkan halaman sebuah situs website.
  • Form data: Data yang di-submit dari form HTML dengan method POST.
  • JSON: File berbasis teks key-value yang umumnya digunakan dalam proses pertukaran data antara server dan klien. JSON bisa menjadi format file untuk body request maupun response.
  • Binary: Yaitu data tidak terstruktur yang di antaranya adalah gambar, audio, dan video.

Tentang Penulis :