Format permintaan HTTP dan respons HTTP serupa, dan keduanya memiliki struktur berikut:
Mulai dengan baris status + CRLF (carriage return dan line feed)
Modul header baris nol atau ganda+CRLF
Baris kosong, seperti CRLF
Isi pesan opsional seperti file, data kueri, keluaran kueri
Misalnya, header respons server terlihat seperti ini:
HTTP/1.1 200 OKTipe Konten: text/htmlHeader2: ...HeaderN: ... (Baris Kosong)<!doctype ...><html><head>...</head><body> ... </tubuh></html>
Baris status berisi versi HTTP, kode status, dan pesan singkat yang sesuai dengan kode status.
Tabel berikut mencantumkan kode status HTTP dan pesan terkait yang mungkin dikembalikan dari server:
kode status | informasi | menggambarkan |
---|---|---|
100 | Melanjutkan | Hanya sebagian saja permintaan yang diterima oleh server, namun selama tidak ditolak oleh server, maka klien akan meneruskan permintaan tersebut. |
101 | Peralihan Protokol | protokol peralihan server |
200 | OKE | Permintaan dikonfirmasi |
201 | Dibuat | Permintaan selesai dan sumber daya baru dibuat |
202 | Diterima | Permintaan diterima tetapi tidak diproses |
203 | Informasi Non-otoritatif | |
204 | Tidak Ada Konten | |
205 | Setel Ulang Konten | |
206 | Konten Sebagian | |
300 | Pilihan Ganda | Tabel hyperlink. Pengguna dapat memilih hyperlink dan mengaksesnya. Maksimum 5 hyperlink didukung. |
301 | Dipindahkan 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 Proksi | |
306 | Tidak digunakan | Kode status ini tidak lagi digunakan, namun kode status tetap dipertahankan |
307 | Pengalihan Sementara | Halaman yang diminta telah dipindahkan sementara ke URL baru |
400 | Permintaan Buruk | Server tidak mengenali permintaan tersebut |
401 | Tidak sah | Halaman yang diminta memerlukan nama pengguna dan kata sandi |
402 | Diperlukan Pembayaran | Kode status ini belum dapat digunakan |
403 | Terlarang | Akses ke halaman yang diminta dilarang |
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 membuat respon yang tidak dapat diterima oleh klien |
407 | Diperlukan Otentikasi Proksi | Server proxy harus diautentikasi sebelum permintaan dapat dilayani |
408 | Batas Waktu Permintaan | Waktu permintaan melebihi waktu menunggu server, dan sambungan terputus. |
409 | Konflik | Ada konflik dalam permintaan tersebut |
410 | Hilang | Halaman yang diminta tidak lagi tersedia |
411 | Panjang Diperlukan | "Panjang Konten" tidak ditentukan, server menolak menerima permintaan |
412 | Prasyarat Gagal | Prasyarat yang diminta dievaluasi oleh server sebagai salah |
413 | Entitas Permintaan Terlalu Besar | Server menolak menerima permintaan tersebut karena entitas yang diminta terlalu besar. |
414 | URL Permintaan Terlalu Panjang | Server menolak menerima permintaan tersebut karena URL-nya terlalu panjang. Informasi kueri dalam jumlah besar sering kali muncul saat mengubah permintaan "POST" menjadi permintaan "GET". |
415 | Jenis Media Tidak Didukung | Server menolak menerima permintaan tersebut karena jenis media tidak didukung |
417 | Harapan Gagal | |
500 | Kesalahan Server Internal | Permintaan tidak lengkap dan server mengalami kondisi yang tidak terduga. |
501 | Tidak Diimplementasikan | Permintaan tidak lengkap dan server tidak menyediakan fungsionalitas yang diperlukan |
502 | Gerbang yang buruk | Permintaan tidak lengkap dan server menerima respons yang tidak valid dari server hulu. |
503 | Layanan Tidak Tersedia | Permintaan tidak lengkap dan server untuk sementara dimulai ulang atau dimatikan. |
504 | Batas Waktu Gerbang | Batas waktu gerbang habis |
505 | Versi HTTP Tidak Didukung | Server tidak mendukung versi HTTP yang ditentukan |
Tabel berikut mencantumkan metode yang digunakan untuk menetapkan kode status di kelas HttpServletResponse:
hal | Metode & Deskripsi |
---|---|
1 | public void setStatus (int statusCode) Metode ini dapat mengatur kode status apa pun. Jika respons Anda berisi kode status khusus dan dokumen, pastikan untuk memanggil metode setStatus sebelum mengembalikan apa pun dengan PrintWriter |
2 | public void sendRedirect(String url) Metode ini menghasilkan respons 302 dan header Lokasi untuk memberi tahu URL dokumen baru. |
3 | public void sendError(int code, String message) Metode ini secara otomatis memasukkan kode status (biasanya 404) dan pesan singkat ke dalam dokumen HTML dan mengirimkannya kembali ke klien. |
Contoh berikut akan mengirimkan kode kesalahan 407 ke browser, dan browser akan memberi tahu Anda "Perlu otentikasi!!!".
<html><head><title>Menetapkan Kode Status HTTP</title></head><body><% // Mengatur kode kesalahan dan menjelaskan alasannya respon.sendError(407, "Perlu autentikasi!!!" ) ; %></tubuh></html>
Mengakses halaman JSP di atas, Anda akan mendapatkan hasil sebagai berikut:
Anda juga dapat mencoba menggunakan kode status lain untuk melihat apakah Anda mendapatkan hasil yang tidak diharapkan.