HTTPQUERY
Bahasa Indonesia

202 Accepted

Penggunaan

Status code 202 Accepted berfungsi sebagai tanda terima: server telah menerima permintaan dan berniat memproses kiriman tersebut. Dalam praktiknya, ini berarti server telah memvalidasi format permintaan dan menempatkan pekerjaan itu ke dalam antrean internal. Tugas yang diantrekan sering kali berupa proses berdurasi panjang atau bagian dari operasi batch.

Tidak ada mekanisme bagi server untuk mengirim respons susulan yang menunjukkan hasil akhirnya. Klien bertanggung jawab melakukan polling secara berkala, sepanjang server menyediakan endpoint status.

Dampak SEO

Googlebot menunggu sebentar untuk mendapatkan konten ketika menemui respons 202. Konten yang diterima dalam rentang waktu tunggu tersebut diteruskan ke alur pengindeksan, tetapi pengindeksan tidak dijamin.

Begitu respons sukses 200 tiba, polling dihentikan. Hasil valid lainnya mencakup 201 ketika sumber daya baru telah dibuat dan tersedia pada URI di header Location, atau 204 ketika pekerjaan selesai tanpa konten untuk dikembalikan.

Contoh

Klien mengirimkan data XML yang mendefinisikan sebuah job. Server mengonfirmasi penerimaan kiriman tersebut. Permintaan berikutnya dari klien memeriksa apakah pekerjaan sudah selesai. Pada akhirnya, server menandakan penyelesaiannya.

Permintaan

POST /job HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 68

<?xml version="1.0"?>
<job>
  <id>125</id>
  <task>G01</task>
</job>

Respons

HTTP/1.1 202 Accepted
Link: </job/status/125>; rel="http://example.re/job-status"
Content-Length: 0

Permintaan status 1

GET /job-status/125 HTTP/1.1
Host: example.com

Respons

HTTP/1.1 202 Accepted
Content-Length: 0

Permintaan status 2

GET /job-status/125 HTTP/1.1
Host: example.com

Respons

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 18

{"success":"true"}

Setelah status code 200 tiba, klien berhenti melakukan polling dan menindaklanjuti hasilnya.

Isi respons pada 202

Respons 202 Accepted diizinkan menyertakan message body. Isi tersebut umumnya memuat status permintaan saat ini, tautan ke endpoint pemantau status, atau perkiraan waktu operasi akan selesai. Berbeda dengan 201 yang menunjuk ke sumber daya yang telah dibuat, isi respons 202 menggambarkan operasi yang masih tertunda itu sendiri.

202 vs 201

Respons 201 memastikan sebuah sumber daya telah dibuat dan langsung tersedia. Respons 202 memastikan permintaan telah diterima tetapi pemrosesannya belum selesai. Gunakan 201 ketika sumber daya sudah ada pada saat respons dikirim. Gunakan 202 ketika pekerjaan diantrekan atau bersifat asinkron dan hasil akhirnya belum diketahui.

Referensi kode

.NET

HttpStatusCode.Accepted

Rust

http::StatusCode::ACCEPTED

Rails

:accepted

Go

http.StatusAccepted

Symfony

Response::HTTP_ACCEPTED

Python3.5+

http.HTTPStatus.ACCEPTED

Java

java.net.HttpURLConnection.HTTP_ACCEPTED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_ACCEPTED

Angular

@angular/common/http/HttpStatusCode.Accepted