Kod status HTTP JSP


Format permintaan HTTP dan respons HTTP adalah serupa, dan kedua-duanya mempunyai struktur berikut:

  • Mulakan dengan baris status + CRLF (pemulangan pengangkutan dan suapan talian)

  • Modul pengepala baris sifar atau berbilang +CRLF

  • Baris kosong, seperti CRLF

  • Isi mesej pilihan seperti fail, data pertanyaan, output pertanyaan

Sebagai contoh, pengepala respons pelayan kelihatan seperti berikut:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
  (Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>


baris status mengandungi versi HTTP, kod status dan mesej ringkas yang sepadan dengan kod status.


Jadual berikut menyenaraikan kod status HTTP dan mesej berkaitan yang mungkin dikembalikan daripada pelayan:

Kod StatusMesejPenerangan
100 Teruskan Hanya sebahagian daripada permintaan diterima oleh pelayan, tetapi selagi ia tidak ditolak oleh pelayan, pelanggan akan meneruskan permintaan
101 Menukar Protokol Protokol Tukar Pelayan
200 OK Permintaan disahkan
201 Dicipta Lengkap atas permintaan, sumber baharu dicipta
202 Diterima Permintaan telah diterima tetapi tidak diproses
203 Maklumat Tidak Berwibawa
204 Tiada Kandungan
205 Tetapkan Semula Kandungan
206 Kandungan Separa
300 Pelbagai Pilihan Jadual hiperpautan Pengguna boleh memilih hiperpautan dan mengaksesnya Maksimum 5 hiperpautan disokong
301 Bergerak Secara Kekal Halaman yang diminta telah dialihkan ke URL baharu
302 Ditemui Halaman yang diminta telah dialihkan buat sementara waktu ke URL baharu
303 Lihat Lain Halaman yang diminta boleh didapati di bawah URL lain
304 Tidak Diubahsuai
305 Gunakan Proksi
306Tidak digunakan Kod status ini tidak lagi digunakan, tetapi kod status dikekalkan
307 Ubah hala Sementara Halaman yang diminta telah dialihkan buat sementara waktu ke URL baharu
400 Permintaan Buruk Pelayan tidak mengenali permintaan
401 Tanpa kebenaran Halaman yang diminta memerlukan nama pengguna dan kata laluan
402 Pembayaran DiperlukanKod status ini belum boleh digunakan lagi
403 Dilarang Akses ke halaman yang diminta adalah dilarang
404 Tidak Ditemui Pelayan tidak dapat mencari halaman yang diminta
405 Kaedah Tidak Dibenarkan Kaedah yang dinyatakan dalam permintaan tidak dibenarkan
406 Tidak Boleh Diterima Pelayan hanya boleh membuat respons yang tidak boleh diterima oleh pelanggan
407 Pengesahan Proksi Diperlukan Pelayan proksi mesti disahkan sebelum permintaan boleh disampaikan
408 Minta Tamat Masa Masa permintaan melebihi masa yang pelayan boleh menunggu dan sambungan telah diputuskan
409 Konflik Permintaan bercanggah
410 Pergi Halaman yang diminta tidak lagi tersedia
411 Panjang Diperlukan "Panjang Kandungan" tidak ditakrifkan, pelayan enggan menerima permintaan
412 Prasyarat Gagal Prasyarat yang diminta telah dinilai oleh pelayan sebagai palsu
413 Minta Entiti Terlalu Besar Pelayan enggan menerima permintaan kerana entiti yang diminta terlalu besar
414 Permintaan-url Terlalu Panjang Pelayan enggan menerima permintaan kerana URL terlalu panjang.Sebilangan besar maklumat pertanyaan muncul apabila menukar permintaan "POST" kepada permintaan "GET"
415 Jenis Media Tidak Disokong Pelayan enggan menerima permintaan kerana jenis media tidak disokong
417 Jangkaan Gagal
500 Ralat Pelayan Dalaman Permintaan tidak lengkap dan pelayan menghadapi keadaan yang tidak dijangka
501 Tidak Dilaksanakan Permintaan tidak lengkap dan pelayan tidak menyediakan fungsi yang diperlukan
502 Gerbang Buruk Permintaan tidak lengkap dan pelayan menerima respons tidak sah daripada pelayan huluan
503 Perkhidmatan Tidak Tersedia Permintaan tidak lengkap dan pelayan dimulakan semula atau ditutup buat sementara waktu
504 Tamat Masa Gateway Tamat masa gerbang
505 Versi HTTP Tidak Disokong Pelayan tidak menyokong versi HTTP yang dinyatakan

Kaedah untuk menetapkan kod status HTTP

Jadual berikut menyenaraikan kaedah yang digunakan untuk menetapkan kod status dalam kelas HttpServletResponse:

S.N.Kaedah & Penerangan
S.N.方法 & 描述
1public void setStatus ( int statusCode )


此方法可以设置任意的状态码。如果您的响应包含一个特殊的状态码和一个文档,请确保在用PrintWriter返回任何内容前调用setStatus方法
2public void sendRedirect(String url)


此方法产生302响应,同时产生一个 Location 头告诉URL 一个新的文档
3public void sendError(int code, String message)


此方法将一个状态码(通常为 404)和一个短消息,自动插入HTML文档中并发回给客户端

1

public void setStatus ( int statusCode )


Kaedah ini boleh menetapkan sebarang kod status. Jika respons anda mengandungi kod status khas dan dokumen, pastikan anda memanggil kaedah setStatus

js_http_status_codes.jpg

sebelum mengembalikan apa-apa dengan PrintWriter 2
<🎜>public void sendRedirect(String url)<🎜>
<🎜> Kaedah ini menjana respons 302 dan juga menjana pengepala Lokasi yang memberitahu URL dokumen baharu <🎜><🎜><🎜><🎜> 3<🎜><🎜>public void sendError(int code, String message)<🎜>
<🎜> Kaedah ini secara automatik memasukkan kod status (biasanya 404) dan mesej ringkas ke dalam dokumen HTML dan menghantarnya semula kepada klien <🎜><🎜><🎜><🎜><🎜><🎜> Contoh program kod status HTTP <🎜><🎜>Contoh berikut akan menghantar kod ralat 407 kepada penyemak imbas, dan kemudian penyemak imbas akan memberitahu anda "Perlukan pengesahan!!!". <🎜>
<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
   // 设置错误代码,并说明原因
   response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>
<🎜>Apabila anda mengakses halaman JSP di atas, anda akan mendapat keputusan berikut: <🎜><🎜><🎜>Anda juga boleh cuba menggunakan kod status lain untuk melihat sama ada anda akan mendapat sebarang keputusan yang tidak dijangka. <🎜><🎜>