HTTPQUERY
Bahasa Indonesia

300 Multiple Choices

Penggunaan

Ketika kode status 300 Multiple Choices diterima, isi body pesan berbeda-beda tergantung pada metode permintaannya. Permintaan HEAD tidak menyertakan body pesan. Untuk metode lain, body berisi sebuah daftar yang darinya klien memilih response yang paling sesuai.

Untuk response selain HEAD, body berisi daftar pilihan yang tersedia. Header Link dengan rel=“alternate” juga digunakan untuk mengidentifikasi setiap opsi. Jika ada response bawaan atau server memiliki pilihan yang diutamakan, header Location mengidentifikasi preferensi tersebut.

Contoh

Klien meminta sebuah sumber daya dan server menawarkan beberapa opsi. Header-nya memuat path menuju setiap sumber daya. Karena ini menyusul sebuah permintaan GET, body menyediakan daftar opsi yang dapat diklik.

Permintaan

GET /tech-news HTTP/1.1
Host: example.com

Respons

HTTP/1.1 300 Multiple Choices
Link: </leading/news.html>; rel="alternate"
Link: </bleeding/news.html>; rel="alternate"
Location: </leading/news.html>
Content-Type: text/html
Content-Length: 164

<h2>Choose from one of the following</h2>
<ul>
  <li><a href=/leading/news.html>Leading edge</a>
  <li><a href=/bleeding/news.html>Bleeding edge</a>
</ul>

Perilaku browser

Sebagian besar browser tidak menampilkan antarmuka pemilihan ketika menerima response 300. Ketika header Location hadir, browser biasanya mengikuti opsi yang diutamakan secara otomatis, serupa dengan redirect 302. Tanpa header Location, browser merender body response yang memuat daftar pilihan yang tersedia. Dalam praktiknya, 300 jarang dijumpai karena negosiasi konten (Content-Negotiation) menangani pemilihan format secara transparan.

Referensi kode

.NET

HttpStatusCode.MultipleChoices

Rust

http::StatusCode::MULTIPLE_CHOICES

Rails

:multiple_choices

Go

http.StatusMultipleChoices

Symfony

Response::HTTP_MULTIPLE_CHOICES

Python3.5+

http.HTTPStatus.MULTIPLE_CHOICES

Java

java.net.HttpURLConnection.HTTP_MULT_CHOICE

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_MULTIPLE_CHOICES

Angular

@angular/common/http/HttpStatusCode.MultipleChoices