Anda mungkin pernah mendengar permintaan GET dan POST, tetapi itu baru permulaan.

Setiap permintaan HTTP menggunakan metode untuk menjelaskan tujuan utamanya. Setiap metode memiliki kegunaan khusus untuk tugas mulai dari mengambil halaman web hingga menghapus sumber daya. GET dan POST adalah dua yang paling familiar, tapi ada tujuh lainnya.

Pelajari tentang konsep ini dan untuk apa masing-masing dari sembilan kemungkinan metode HTTP itu.

Apa Itu Metode HTTP?

Setiap permintaan HTTP yang Anda buat menyertakan tindakan dan target untuk tindakan tersebut, seperti kata kerja dan kata benda yang bertindak sebagai objek.

URL mengidentifikasi sumber daya unik, bertindak sebagai target permintaan. Sementara itu, kata kerja—tindakan apa yang akan dilakukan pada URL tersebut—diwakili oleh sebuah metode.

Baris pertama permintaan HTTP memberikan informasi paling signifikan termasuk versi HTTP, URL sumber daya, dan metode permintaan:

DAPATKAN /software/htp/cics/index.html HTTP/1.1

Apa 9 Metode HTTP itu?

Empat metode pertama setara dengan empat tindakan dari model CRUD: Buat, Baca, Perbarui, dan Hapus. Metode HTTP masing-masing adalah

instagram viewer
POS, MENDAPATKAN, MELETAKKAN, Dan MENGHAPUS.

MENDAPATKAN

Permintaan default paling umum yang akan Anda kirim saat menjelajahi web dan mengklik link atau meminta data melalui API. Server harus mengembalikan sumber daya di badan responsnya.

POS

Gunakan POST untuk membuat sumber daya baru, terutama jika sumber daya tersebut memiliki sumber daya induk yang dapat diidentifikasi. Misalnya, jika Anda memiliki sumber daya /klien, Anda harus membuat klien baru dengan mem-POST data yang diperlukan ke /klien.

MELETAKKAN

Perbarui atau ganti sumber daya yang ada. Ini mirip dengan POST, tetapi klien bertanggung jawab untuk memilih pengidentifikasi unik untuk sumber daya. Untuk membuat resource menggunakan PUT, URL resource harus menyertakan pengidentifikasi, misalnya, /clients/007.

MENGHAPUS

Gunakan metode ini untuk menghapus sumber daya yang Anda tentukan di URL. Seperti semua metode HTTP, dukungan turun ke server. Itu mungkin membiarkan siapa pun menghapus sumber daya, meskipun itu jelas berisiko. Server yang mendukung DELETE biasanya akan membutuhkan otentikasi dan otorisasi.

Dua metode lain memberikan sedikit variasi di atas: PATCH Dan KEPALA. Anda mungkin menganggapnya berguna saat menggunakan API tertentu atau jika Anda membuat sendiri.

PATCH

Metode PATCH memperbarui sumber daya yang ada, dengan hanya sebagian data. Dengan kata lain, Anda tidak perlu menyediakan representasi lengkap dari sumber daya baru, cukup bidang yang perlu Anda perbarui.

KEPALA

Permintaan HEAD adalah ketika Anda menginginkan informasi tentang sumber daya, tetapi bukan sumber daya itu sendiri. Respons tidak akan menyertakan isi, tetapi akan berisi sekumpulan header HTTP yang berguna. Anda dapat mengetahui ukuran total file sebelum mengunduhnya, melalui header respons Content-Length.

Metode yang tersisa—PILIHAN, MENGHUBUNG, Dan JEJAK—lebih tidak jelas. Mereka berurusan dengan metadata, jaringan, dan pemecahan masalah. Anda mungkin menganggapnya berguna dalam jenis pemrograman tertentu, tetapi Anda mungkin tidak akan menggunakannya setiap hari.

PILIHAN

Server harus merespons metode ini dengan memberi tahu Anda metode HTTP mana yang benar-benar didukung sumber daya. Ini dapat berguna untuk penemuan.

MENGHUBUNG

Jenis perangkat lunak jaringan tertentu dapat menggunakan metode ini untuk membuat terowongan antara dua komputer. Ini sering digunakan untuk memulai koneksi HTTPS melalui proxy.

JEJAK

Metode ini berguna untuk pemecahan masalah. Saat menerimanya, server harus mengirimkan kembali permintaan yang diterimanya di badan tanggapan. Metode ini menyediakan mekanisme untuk memeriksa apakah mesin perantara telah mengubah detail permintaan.

GET dan HEAD adalah satu-satunya dua metode yang didukung oleh setiap server web umum. Server tertentu mungkin mendukung atau tidak mendukung metode lain, jadi Anda harus memeriksanya terlebih dahulu.

Kapan Anda Bisa Menggunakan Metode Ini?

Sering kali, metode HTTP akan transparan bagi Anda. Namun, Anda harus mempertimbangkannya jika menambahkan formulir ke halaman web atau menggunakan API.

Metode HTTP dalam HTML

Itu membentuk elemen metode atribut memungkinkan Anda mengatur metode HTTP untuk digunakan saat formulir dikirimkan. HTML hanya mendukung pos Dan mendapatkan nilai untuk atribut ini—ditambah alternatif dialog yang tidak jelas.

<membentukmetode="pos">
...
membentuk>

Anda dapat menggunakan fitur seperti Alat Pengembang Chrome untuk melihat Jaringan lalu lintas dan konfirmasikan metode yang dikirim browser Anda untuk permintaan tertentu. Perhatikan bahwa sebagian besar formulir web akan mengirim POST karena biasanya memperbarui data di server. Namun, banyak formulir pencarian menggunakan GET karena mereka hanya mengambil data tanpa mengubahnya.

Karena data POST bukan bagian dari URL, ini lebih pribadi daripada jika Anda mengirimkannya melalui GET. Data masih ada di badan permintaan di mana, secara teori, penyerang dapat mencegatnya. Tetapi mengirim data melalui HTTPS harus mengurangi masalah ini.

Anda tidak boleh menerapkan login pengguna dengan permintaan GET. Meskipun login mungkin tampak lebih seperti operasi baca daripada membuat atau memperbarui, Anda tetap perlu menggunakan POST untuk mengamankan data.

Karena formulir HTML hanya mendukung GET dan POST, Anda tidak dapat langsung membuat formulir yang, misalnya, menghapus sumber daya di server. Solusi umum, yang menghormati prinsip REST di server, adalah menggunakan variabel placeholder dan berpura-pura bahwa itu adalah metode HTTP asli. Misalnya:

<membentukmetode="pos">
<memasukkanjenis="tersembunyi"nama="_metode"nilai="MENGHAPUS" />
...
membentuk>

Kode sisi server Anda dapat memeriksa keberadaan variabel 'metode proxy' ini dan memperlakukannya seolah-olah itu adalah metode sebenarnya yang digunakan. Misalnya, dalam PHP:

$metode = $_SERVER["REQUEST_METHOD"];

jika (array_key_exists("_metode", $_REQUEST)) {
$metode = $_REQUEST["_metode"];
}

Mengirim Permintaan HTTP Secara Terprogram

Web Fetch API menyediakan fungsi JavaScript fetch() yang dapat Anda gunakan untuk mengirim permintaan HTTP. Ini mendukung berbagai metode, bukan hanya GET dan POST yang didukung HTML.

Fungsi pengambilan akan mengirimkan permintaan GET secara default. Untuk menggunakan metode yang berbeda, tentukan namanya sebagai nilai untuk a metode properti dalam objek yang Anda kirim sebagai argumen kedua.

mengambil(' https://example.com/', { metode: "KEPALA" });

Anda juga dapat mengirim permintaan HTTP dari banyak bahasa sisi server, termasuk PHP. Dalam bahasa itu, perpustakaan curl adalah cara yang umum untuk mengirimkan permintaan semacam itu.

Pustaka curl memiliki opsi CURLOPT_CUSTOMREQUEST yang dapat Anda atur untuk menentukan metode

jika ($ch = curl_init($url)) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'MELETAKKAN');
curl_exec($ch);
// ...
}

Melalui Baris Perintah

Alat baris perintah curl memungkinkan Anda mentransfer data ke atau dari server, melalui salah satu dari beberapa protokol. HTTP (dan HTTPS) adalah dua kasus penggunaan yang sangat umum.

Secara default, curl mengirimkan permintaan GET, karena Anda dapat mengonfirmasi dengan perintah berikut:

curl -v -s -o /dev/null example.com/get-test

Anda dapat melihat metode permintaan pada baris kelima dari output:

Anda dapat mengubah metode permintaan yang dikirimkan curl menggunakan flag -X:

curl -v -s -o /dev/null example.com/get-test -X POST

Sekarang, curl mengirimkan permintaan menggunakan metode POST:

HTTP Memiliki Banyak Kegunaan

Sebagian besar yang Anda lakukan di web akan melibatkan permintaan GET standar, dengan POST sesekali untuk pengiriman formulir. Tetapi HTTP adalah protokol yang jauh lebih ekspresif daripada yang disarankan.

Beberapa metode yang paling umum mencerminkan model CRUD yang menjadikan HTTP dasar yang sangat baik untuk membangun API yang berfokus pada sumber daya.