GET

Metode HTTP

Spesifikasi metode HTTP GET

Metode GET meminta transfer representasi yang dipilih saat ini untuk sumber daya target. GET adalah mekanisme utama pengambilan informasi dan fokus dari hampir semua pengoptimalan kinerja. Oleh karena itu, ketika orang berbicara tentang mengambil beberapa informasi yang dapat diidentifikasi melalui HTTP, mereka umumnya mengacu pada membuat permintaan GET.

Memang sangat menggoda untuk memikirkan pengidentifikasi sumber daya sebagai nama jalur sistem file jarak jauh dan representasi sebagai salinan dari isi file tersebut. Kenyataannya, seperti itulah sumber daya yang diimplementasikan (lihat Bagian 9.1 untuk pertimbangan keamanan terkait). Namun, tidak ada batasan seperti itu dalam praktiknya. Antarmuka HTTP untuk sebuah sumber daya bisa saja diimplementasikan sebagai sebuah pohon objek konten, sebuah tampilan terprogram pada berbagai catatan basis data, atau sebuah pintu gerbang ke sistem informasi lain. Bahkan ketika mekanisme pemetaan URI terkait dengan sistem file, server asal dapat dikonfigurasi untuk mengeksekusi file dengan permintaan sebagai input dan mengirimkan output sebagai representasi daripada mentransfer file secara langsung. Terlepas dari itu, hanya server asal yang perlu mengetahui bagaimana setiap pengenal sumber dayanya berhubungan dengan implementasi dan bagaimana setiap implementasi berhasil memilih dan mengirimkan representasi terkini dari sumber daya target dalam respons terhadap GET.

Sebuah klien dapat mengubah semantik GET menjadi sebuah "permintaan rentang", meminta transfer hanya beberapa bagian dari representasi yang dipilih, dengan mengirimkan sebuah bidang header Rentang dalam permintaan (RFC7233).

Muatan dalam pesan permintaan GET tidak memiliki semantik yang ditentukan; mengirimkan badan muatan pada permintaan GET dapat menyebabkan beberapa implementasi yang ada menolak permintaan tersebut.

Respons terhadap permintaan GET dapat di-cache; cache MUNGKIN menggunakannya untuk memenuhi permintaan GET dan HEAD berikutnya kecuali jika dinyatakan lain oleh bidang header Cache-Control (Bagian 5.2 RFC7234).

Metode HTTP GET telah ditentukan dalam bagian 4.3.1 dari dokumen RFC 7231 oleh Internet Engineering Task Force (IETF) dan World Wide Web Consortium (W3C).

Deskripsi metode GET

Metode GET dari protokol HTTP dapat dibandingkan dengan pustakawan digital. Ia dengan sopan meminta server untuk menampilkan data tanpa membuat perubahan pada data itu sendiri - sebuah permintaan yang murni pasif.

Apa yang membuat metode GET menjadi istimewa?

  1. Konsistensi: Bayangkan meminta pustakawan untuk memberikan buku yang sama berkali-kali - Anda akan mendapatkan buku yang sama setiap kali. Hal yang sama berlaku untuk permintaan GET: ia secara konsisten memberikan hasil yang sama.
  2. Baca, jangan tulis: Permintaan GET memiliki karakter sebagai pengamat. Ia melihat data tetapi tidak mengubahnya.
  3. Informasi di URL: Pikirkan URL sebagai alamat atau kartu indeks. Menunjukkan buku atau informasi apa yang Anda cari. Namun, hati-hati: kartu ini seharusnya tidak berisi catatan pribadi, karena dapat dilihat oleh orang lain.
  4. Respon cepat dan efisien: Berkat kemampuan untuk menyimpan respons dalam cache, metode GET dapat dengan cepat merespons permintaan berulang, mirip dengan pustakawan yang terorganisir dengan baik yang tahu persis di mana setiap buku berada.

Namun, ada juga keterbatasannya:

  1. Ruang terbatas untuk catatan: URL hanya memiliki ruang terbatas untuk informasi. Itu seperti menulis di kartu indeks kecil.
  2. Tidak ada rahasia: Karena URL dapat dilihat dan disimpan, Anda seharusnya tidak mencatat informasi sensitif di dalamnya.
  3. Tidak ada intervensi: Seorang pengamat tidak mempengaruhi apa yang ia amati. Oleh karena itu, metode GET tidak boleh digunakan untuk memodifikasi data. Ada alat lain di kotak alat digital kita untuk itu.

Secara keseluruhan, metode GET adalah alat yang handal dan esensial di ruang digital, membantu kita untuk mengambil informasi dengan efisien dan aman.

Contoh untuk metode HTTP GET

Request header:
GET /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Accept: application/json
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
Cache-Control: max-age=0
Response header:
Content-Type: application/json
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache