> ipsaya.id

Belajar Dasar HTTP

@ 2024.10.27

Apa itu HTTP?

HTTP (singkatan dari Hypertext Transfer Protocol) adalah protokol yang berada di layer 7, yang berfungsi untuk mengatur bagaimana struktur data dan cara memproses data yang ditransfer melalui internet.

Konsep penting dalam HTTP adalah adanya dua pihak yang saling berkomunikasi, yaitu klien dan server. Komunikasi antara klien dan server dapat terjadi apabila pertama kali dimulai oleh klien yang meminta “sesuatu” ke server, yang kemudian direspons oleh server sesuai dengan apa yang klien minta.

Cara server tahu apa yang diminta oleh klien salah satunya dari URL.

URL (singkatan dari Uniform Resource Locator) salah satu fungsinya sebagai alamat untuk identifikasi lokasi situs web berada (dari domain) dan lokasi konten situs web (dari path).

Ciri-ciri alamat URL pada protokol HTTP diawali dengan http://, misalnya http://ipsaya.id/json.

Struktur URL

Struktur URL pada HTTP tidak hanya mencakup nama domain dan path saja, tetapi ada yang lain seperti port dan parameter kueri.

Struktur URL

Protokol

http pada segmen pertama URL berfungsi sebagai penanda bahwa URL tersebut merupakan URL berprotokol HTTP.

Protokol mengatur bagaimana cara klien dan server memproses data yang ditransfer melalui internet.

Contoh protokol lain yang digunakan di browser adalah https:// (protokol HTTP yang terenkripsi) dan ftp:// (protokol untuk berbagi file).

Port

Port berformat angka dari 0 hingga 65.535 yang digunakan untuk mengidentifikasi program yang berjalan di sistem operasi, terutama di server.

Jadi, ketika ada data yang masuk ke komputer server, informasi port digunakan oleh sistem operasi agar dapat meneruskan data ke program yang benar (program yang me-listen port tersebut).

Normalnya, port yang ada di URL tidak ditampilkan ketika kamu membuka situs web di browser, karena klien (browser) akan menggunakan port default apabila port tidak dicantumkan ke dalam struktur URL, port default tersebut adalah 80 (HTTP) dan 443 (HTTPS).

Path

Path berfungsi sebagai lokasi konten dari situs web, misalnya konten situs yang terdiri atas daftar postingan blog ipsaya.id, path-nya adalah /blog/.

Apabila path tidak ada dalam struktur URL, browser akan menggunakan path default /. Biasanya path tersebut digunakan sebagai halaman depan dari situs web.

Parameter Kueri

Kueri parameter adalah parameter tambahan yang dikirim ke server, penggunaan kueri parameter tergantung dari situs web yang diakses.

Contoh di dunia nyata, mesin pencari Google menggunakan parameter kueri sebagai kata kunci pencarian dengan struktur URL sebagai berikut:

https://www.google.com/search?q=ipsaya.id

Anchor

Anchor digunakan sebagai penanda bagian tertentu dari konten situs web. Jadi, ketika membuka URL yang mengandung anchor #subjudul, browser akan men-scroll ke elemen yang termasuk subjudul.

Anchor hanya berada di browser dan tidak akan dikirimkan ke server.

Cara Kerja HTTP

Ketika kamu membuka situs http://ipsaya.id/json yang terjadi di balik layar adalah browser (klien) mengirimkan permintaan ke server ipsaya.id yang isinya adalah:

GET /json HTTP/1.1
Host: ipsaya.id
Accept-Language: id

Kemudian server membalasnya dengan respons berikut ini:

HTTP/1.1 200 OK
Date: Thu, 06 Feb 2025 18:56:48 GMT
Server: cloudflare
Content-Type: application/json

{"ip": "104.21.0.224" … (sisa datanya...)

Hasil respons tersebut diproses oleh browser, kemudian ditampilkan di layar komputer.

Permintaan dan respons harus sesuai dengan standar protokol HTTP, agar kedua belah pihak bisa saling mengerti.

Struktur Permintaan HTTP

HTTP Request

Struktur permintaan HTTP terdiri atas:

  • Metode adalah jenis operasi yang klien inginkan
  • Path yang ingin diakses oleh klien
  • Versi protokol HTTP yang diminta oleh klien
  • Header yang terdiri atas informasi tambahan untuk server (opsional)
  • Data yang dikirim untuk server (opsional)

Struktur Respons HTTP

HTTP Response

Struktur respons HTTP terdiri atas:

  • Versi protokol HTTP yang dikirim oleh server
  • Kode status sebagai penanda bahwa yang klien minta dapat dipenuhi atau tidak serta alasannya apabila yang diminta tidak dapat dipenuhi
  • Makna status kode yang menjelaskan secara singkat dari status kode
  • Header yang terdiri atas informasi tambahan untuk klien (opsional)
  • Data yang dikirim oleh server sesuai yang klien minta (opsional)

Jenis Metode

Setiap membuat permintaan HTTP harus mengandung jenis metode yang sesuai dengan yang klien minta.

Jenis metode yang umum digunakan antara lain GET, POST, PUT, dan DELETE.

Metode tersebut digunakan dalam situs web yang mengandung operasi CRUD (Create, Read, Update, & Update).

Misalnya, pada situs berjenis blog terdapat fitur untuk membuat, mengakses, memperbarui, dan menghapus artikel.

Format HTTP header terdiri atas nama header dan isinya yang dikirimkan oleh klien dan server.

Misalnya, browser (klien) secara otomatis mengirimkan header User-Agent yang mengandung informasi nama dan versi browser serta nama sistem operasi yang sedang digunakan pada setiap permintaan HTTP.

Kode Status

Kode status merupakan kode 3 digit pada respons HTTP, kode status dibagi menjadi lima kelompok:

  • 100-199: respons transien, ada lanjutannya
  • 200-299: sukses
  • 300-399: pengalihan URL
  • 400-499: yang klien minta tidak dapat dipenuhi
  • 500-599: ada masalah pada server

Kode status mempunyai maknanya masing-masing, daftar lengkapnya ada di MDN.

Berikut ini adalah kode status yang paling umum:

  • 200 - OK: sukses dan tidak ada masalah sama sekali
  • 201 - Created: data yang dikirim telah diterima oleh server
  • 301 - Moved permanently: ada pengalihan URL secara permanen
  • 400 - Bad request: ada kesalahan pada permintaan klien
  • 401 - Unauthorized: klien tidak punya akses
  • 404 - Not found: yang klien minta tidak ada
  • 500 - Internal server error: ada yang error pada server

HTTPS

Protokol HTTPS yang format URL-nya diawali dengan https:// adalah versi HTTP yang terenkripsi dengaj TLS.

Tujuan HTTP dienkripsi dengan TLS agar data yang ditransfer tidak dapat dimanipulasi dan diketahui oleh si perantara (seperti Internet Service Provider).

Inspeksi Jaringan di Browser

Kamu bisa mencoba fitur inspeksi jaringan yang tersedia di browser untuk melihat langsung bagaimana cara kerja protokol HTTP di browser.

Fitur tersebut terdiri atas semua log keluar-masuk HTTP pada saat membuka situs web.

Cara mengakses fitur inspekstor jaringan di browser: