Servlet - Kode Status Http
Format permintaan HTTP dan pesan tanggapan HTTP serupa dan akan memiliki struktur berikut -
Baris status awal + CRLF (Carriage Return + Line Feed yaitu Jalur Baru)
Nol atau lebih baris header + CRLF
Baris kosong, yaitu CRLF
Badan pesan opsional seperti file, data kueri, atau keluaran kueri.
Misalnya, header respons server terlihat seperti berikut -
HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
(Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>
Baris status terdiri dari versi HTTP (HTTP / 1.1 dalam contoh), kode status (200 dalam contoh), dan pesan yang sangat singkat sesuai dengan kode status (OK di contoh).
Berikut ini adalah daftar kode status HTTP dan pesan terkait yang mungkin dikembalikan dari Server Web -
Kode | Pesan | Deskripsi |
---|---|---|
100 | Terus | Hanya sebagian dari permintaan yang telah diterima oleh server, tetapi selama itu belum ditolak, klien harus melanjutkan permintaan |
101 | Switching Protocols | Server beralih protokol. |
200 | baik | Permintaannya oke |
201 | Dibuat | Permintaan selesai, dan sumber daya baru dibuat |
202 | Diterima | Permintaan diterima untuk diproses, tetapi pemrosesan tidak selesai. |
203 | Informasi Non-otoritatif | |
204 | Tidak ada isi | |
205 | Setel Ulang Konten | |
206 | Konten Parsial | |
300 | Pilihan ganda | Daftar tautan. Pengguna dapat memilih link dan pergi ke lokasi tersebut. Maksimal lima alamat |
301 | Pindah Secara Permanen | Halaman yang diminta telah dipindahkan ke url baru |
302 | Ditemukan | Halaman yang diminta telah dipindahkan sementara ke url baru |
303 | Lihat Lainnya | Halaman yang diminta dapat ditemukan di bawah url yang berbeda |
304 | Tidak dimodifikasi | |
305 | Gunakan proxy | |
306 | Tidak terpakai | Kode ini digunakan di versi sebelumnya. Ini tidak lagi digunakan, tetapi kodenya sudah dipesan |
307 | Pengalihan Sementara | Halaman yang diminta telah dipindahkan sementara ke url baru. |
400 | Permintaan yang buruk | Server tidak memahami permintaan tersebut |
401 | Tidak resmi | Halaman yang diminta membutuhkan nama pengguna dan kata sandi |
402 | Pembayaran Diperlukan | Anda belum dapat menggunakan kode ini |
403 | Terlarang | Akses dilarang ke halaman yang diminta |
404 | Tidak ditemukan | Server tidak dapat menemukan halaman yang diminta. |
405 | Metode Tidak Diizinkan | Metode yang ditentukan dalam permintaan tidak diperbolehkan. |
406 | Tidak dapat diterima | Server hanya dapat menghasilkan respon yang tidak diterima oleh klien. |
407 | Autentikasi Proxy Diperlukan | Anda harus mengautentikasi dengan server proxy sebelum permintaan ini dapat dilayani. |
408 | Request Timeout | Permintaan membutuhkan waktu lebih lama daripada yang disiapkan server untuk menunggu. |
409 | Konflik | Permintaan tidak dapat diselesaikan karena ada konflik. |
410 | Hilang | Halaman yang diminta tidak lagi tersedia. |
411 | Panjang Diperlukan | "Panjang-Konten" tidak ditentukan. Server tidak akan menerima permintaan tanpa itu. |
412 | Prekondisi Gagal | Prasyarat yang diberikan dalam permintaan dievaluasi sebagai salah oleh server. |
413 | Entitas Permintaan Terlalu Besar | Server tidak akan menerima permintaan, karena entitas permintaan terlalu besar. |
414 | Request-url Terlalu Panjang | Server tidak akan menerima permintaan, karena urlnya terlalu panjang. Terjadi ketika Anda mengubah permintaan "post" menjadi permintaan "get" dengan informasi query yang panjang. |
415 | Jenis Media Tidak Didukung | Server tidak akan menerima permintaan, karena jenis media tidak didukung. |
417 | Harapan Gagal | |
500 | Kesalahan server dari dalam | Permintaan itu belum selesai. Server menemui kondisi yang tidak terduga. |
501 | Tidak Diterapkan | Permintaan itu belum selesai. Server tidak mendukung fungsionalitas yang diperlukan. |
502 | Gateway Buruk | Permintaan itu belum selesai. Server menerima tanggapan yang tidak valid dari server hulu. |
503 | Layanan tidak tersedia | Permintaan itu belum selesai. Server kelebihan beban atau down untuk sementara. |
504 | Gateway Timeout | Gerbang telah habis waktunya. |
505 | Versi HTTP Tidak Didukung | Server tidak mendukung versi "protokol http". |
Metode untuk Mengatur Kode Status HTTP
Metode berikut dapat digunakan untuk mengatur Kode Status HTTP dalam program servlet Anda. Metode ini tersedia dengan objek HttpServletResponse .
Sr.No. | Metode & Deskripsi |
---|---|
1 | public void setStatus ( int statusCode ) Metode ini menetapkan kode status arbitrer. Metode setStatus menggunakan int (kode status) sebagai argumen. Jika tanggapan Anda menyertakan kode status khusus dan dokumen, pastikan untuk memanggil setStatus sebelum benar-benar mengembalikan konten apa pun dengan PrintWriter . |
2 | public void sendRedirect(String url) Metode ini menghasilkan respons 302 bersama dengan header Lokasi yang memberikan URL dokumen baru |
3 | public void sendError(int code, String message) Metode ini mengirimkan kode status (biasanya 404) bersama dengan pesan singkat yang secara otomatis diformat di dalam dokumen HTML dan dikirim ke klien. |
Contoh Kode Status HTTP
Berikut ini adalah contoh yang akan mengirimkan kode kesalahan 407 ke browser klien dan browser akan menunjukkan "Perlu otentikasi !!!" pesan.
// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
// Extend HttpServlet class
public class showError extends HttpServlet {
// Method to handle GET method request.
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set error code and reason.
response.sendError(407, "Need authentication!!!" );
}
// Method to handle POST method request.
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
Sekarang memanggil servlet di atas akan menampilkan hasil berikut -
HTTP Status 407 - Need authentication!!!
type Status report
messageNeed authentication!!!
descriptionThe client must first authenticate itself with the proxy (Need authentication!!!).
Apache Tomcat/5.5.29