Kod status HTTP Servlet


Format permintaan HTTP dan mesej respons HTTP adalah serupa, dan strukturnya adalah seperti berikut:

  • Baris status awal + pemulangan pengangkutan dan suapan talian (pemulangan pengangkutan + suapan baris)

  • Sifar atau lebih baris tajuk + pemulangan gerabak dan suapan baris

  • Satu baris kosong, iaitu pemulangan gerabak dan suapan baris

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

Sebagai contoh, pengepala respons pelayan kelihatan seperti ini:

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

Barisan status Termasuk versi HTTP (dalam kes ini, HTTP/1.1), kod status (dalam kes ini, 200) dan mesej ringkas yang sepadan dengan kod status (dalam kes ini, OK).

Berikut ialah senarai kod status HTTP dan maklumat berkaitan yang mungkin dikembalikan daripada pelayan web:

KodMesejPenerangan
100Teruskan Hanya sebahagian daripada permintaan telah diterima oleh pelayan, tetapi selagi ia belum ditolak, pelanggan harus meneruskan permintaan tersebut.
101Protokol PenukaranProtokol penukaran pelayan.
200OKPermintaan berjaya.
201DibuatPermintaan selesai dan mencipta sumber baharu.
202DiterimaPermintaan telah diterima untuk pemprosesan, tetapi pemprosesan tidak lengkap.
203Maklumat Tidak Berwibawa
204Tiada Kandungan
205Tetapkan Semula Kandungan
206Kandungan Separa
300Berbilang PilihanSenarai pautan. Pengguna boleh memilih pautan untuk pergi ke lokasi tersebut. Sehingga lima alamat.
301Dipindahkan Secara KekalHalaman yang diminta telah dialihkan ke URL baharu.
302DitemuiHalaman yang diminta telah dialihkan buat sementara waktu ke URL baharu.
303Lihat LainHalaman yang diminta boleh ditemui di bawah URL lain.
304Tidak Diubahsuai
305Gunakan Proksi
306Tidak DigunakanKod ini telah digunakan dalam versi sebelumnya. Ia tidak lagi digunakan, tetapi kod itu kekal.
307Ubah Hala SementaraHalaman yang diminta telah dialihkan buat sementara waktu ke URL baharu.
400Permintaan BurukPelayan tidak memahami permintaan itu.
401Tidak dibenarkanHalaman yang diminta memerlukan nama pengguna dan kata laluan.
402Pembayaran DiperlukanAnda tidak boleh menggunakan kod ini lagi.
403DilarangAkses ke halaman yang diminta adalah dilarang.
404Tidak DitemuiPelayan tidak dapat mencari halaman yang diminta. .
405Kaedah Tidak DibenarkanKaedah yang dinyatakan dalam permintaan tidak dibenarkan.
406Tidak Boleh DiterimaPelayan hanya menjana respons yang tidak diterima oleh pelanggan.
407Pengesahan Proksi DiperlukanAnda mesti menggunakan pengesahan pelayan proksi sebelum permintaan dihantar.
408Permintaan Tamat MasaPermintaan mengambil masa lebih lama daripada pelayan boleh menunggu dan tamat masa.
409KonflikPermintaan tidak dapat diselesaikan kerana konflik.
410HilangHalaman yang diminta tidak tersedia lagi.
411Panjang Diperlukan"Panjang Kandungan" tidak ditentukan. Pelayan tidak boleh mengendalikan maklumat permintaan yang dihantar oleh klien tanpa Panjang Kandungan.
412Prasyarat GagalPrasyarat yang diberikan dalam permintaan telah dinilai oleh pelayan sebagai palsu.
413Minta Entiti Terlalu BesarPelayan tidak menerima permintaan kerana entiti permintaan terlalu besar.
414url-permintaan Terlalu PanjangPelayan tidak menerima permintaan kerana URL terlalu panjang. Berlaku apabila anda menukar permintaan "siaran" kepada permintaan "dapatkan" dengan maklumat pertanyaan yang panjang.
415Jenis Media Tidak Disokong Pelayan tidak menerima permintaan kerana jenis media tidak disokong.
417Jangkaan Gagal
500Ralat Pelayan DalamanPermintaan yang luar biasa. Pelayan menghadapi situasi yang tidak dijangka.
501Tidak DilaksanakanPermintaan tidak lengkap. Pelayan tidak menyokong fungsi yang diperlukan.
502Gerbang BurukPermintaan tidak lengkap. Pelayan menerima respons tidak sah daripada pelayan huluan.
503Perkhidmatan Tidak TersediaPermintaan tidak lengkap. Pelayan terlampau beban buat sementara waktu.
504Tamat Masa GerbangTamat masa Gerbang.
505Versi HTTP Tidak DisokongPelayan tidak menyokong versi "HTTP protocol".

Kaedah untuk menetapkan kod status HTTP

Kaedah berikut boleh digunakan untuk menetapkan kod status HTTP dalam program Servlet. Kaedah ini tersedia melalui objek HttpServletResponse.

< /tr>
Nombor siriKaedah & Perihalan
1public void setStatus ( int statusCode )
序号方法 & 描述
1public void setStatus ( int statusCode )
该方法设置一个任意的状态码。setStatus 方法接受一个 int(状态码)作为参数。如果您的反应包含了一个特殊的状态码和文档,请确保在使用 PrintWriter 实际返回任何内容之前调用 setStatus。
2public void sendRedirect(String url)
该方法生成一个 302 响应,连同一个带有新文档 URL 的 Location 头。
3public void sendError(int code, String message)
该方法发送一个状态码(通常为 404),连同一个在 HTML 文档内部自动格式化并发送到客户端的短消息。
Kaedah ini menetapkan kod status arbitrari. Kaedah setStatus menerima int (kod status) sebagai parameter. Jika reaksi anda mengandungi kod status dan dokumentasi khas, pastikan anda memanggil setStatus sebelum benar-benar mengembalikan apa-apa menggunakan
PrintWriter

.

2public void sendRedirect(String url)Kaedah ini menghasilkan respons 302, bersama-sama dengan The

Lokasi

pengepala URL dokumen baharu.
3public void sendError(int code, String message)

Kaedah ini menghantar kod status (biasanya 404), bersama-sama dengan mesej ringkas yang diformat secara automatik di dalam dokumen HTML dan dihantar kepada pelanggan.

HTTP Status 407 - Need authentication!!!

type Status report

message Need authentication!!!

description The client must first authenticate itself with the proxy (Need authentication!!!).

Apache Tomcat/5.5.29

Contoh kod status HTTP
<🎜>Contoh berikut menghantar kod ralat 407 kepada pelayar klien dan penyemak imbas akan dipaparkan "Perlu pengesahan!!!" <🎜>
// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;

// 扩展 HttpServlet 类
public class showError extends HttpServlet {
 
  // 处理 GET 方法请求的方法
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置错误代码和原因
      response.sendError(407, "Need authentication!!!" );
  }
  // 处理 POST 方法请求的方法
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      throws ServletException, IOException {
     doGet(request, response);
  }
}
<🎜>Sekarang, memanggil Servlet di atas akan memaparkan hasil berikut: <🎜>< / jadual><🎜>

Status HTTP 407 - Perlu pengesahan!!!

<🎜>type < /strong> Laporan status<🎜><🎜>mesej Memerlukan pengesahan!!!<🎜><🎜>penerangan Pelanggan mesti terlebih dahulu mengesahkan dirinya dengan proksi (Perlukan pengesahan!!!).<🎜>

Apache Tomcat/5.5.29