Ketika browser meminta halaman web, ia mengirimkan serangkaian informasi ke server web yang tidak dapat dibaca secara langsung karena informasi tersebut dikirim sebagai bagian dari header HTTP. Anda dapat memeriksa protokol HTTP untuk informasi lebih lanjut.
Tabel berikut mencantumkan beberapa konten penting dari header informasi sisi browser. Anda akan sering melihat informasi ini dalam pemrograman jaringan di masa mendatang:
informasi | menggambarkan |
---|---|
Menerima | Menentukan tipe MIME yang dapat ditangani oleh browser atau klien lain. Nilainya biasanya image/png atau image/jpeg |
Terima-Charset | Menentukan kumpulan karakter yang akan digunakan oleh browser. Seperti ISO-8859-1 |
Terima-Encoding | Tentukan jenis pengkodean. Nilainya biasanya gzip atau kompres |
Bahasa Terima | Tentukan bahasa pilihan klien. Servlet akan memberikan prioritas untuk mengembalikan hasil yang ditetapkan dalam bahasa saat ini, jika servlet mendukung bahasa ini. Seperti en, en-us, ru, dll. |
Otorisasi | Identifikasi pengguna yang berbeda saat mengakses halaman web yang dilindungi kata sandi |
Koneksi | Menunjukkan apakah klien dapat menangani koneksi persisten HTTP. Koneksi persisten memungkinkan klien atau browser mengambil banyak file dalam satu permintaan. Keep-Alive berarti mengaktifkan koneksi yang persisten |
Panjang Konten | Berlaku hanya untuk permintaan POST, yang menunjukkan jumlah byte data POST |
kue | Mengembalikan cookie yang sebelumnya dikirim ke browser ke server |
Tuan rumah | Tunjukkan nama host dan nomor port di URL asli |
Jika-Dimodifikasi-Sejak | Menunjukkan bahwa klien hanya memerlukan halaman web ini jika telah diubah pada tanggal yang ditentukan. Server mengirimkan kode 304 ke klien, menunjukkan bahwa tidak ada sumber daya yang diperbarui. |
Jika-Tidak Dimodifikasi-Sejak | Berbeda dengan If-Modified- Since, operasi hanya akan berhasil jika dokumen belum diubah sejak tanggal yang ditentukan |
Referensi | Menandai URL halaman yang direferensikan. Misalnya, jika Anda berada di halaman 1 lalu mengklik link ke halaman 2, URL halaman 1 akan disertakan dalam header permintaan browser untuk halaman 2. |
Agen-Pengguna | Digunakan untuk membedakan permintaan yang dikirim oleh browser atau klien berbeda dan mengembalikan konten berbeda ke jenis browser berbeda |
Objek permintaan adalah turunan dari kelas javax.servlet.http.HttpServletRequest. Setiap kali klien meminta halaman, mesin JSP menghasilkan objek baru untuk mewakili permintaan tersebut.
Objek permintaan menyediakan serangkaian metode untuk mendapatkan header informasi HTTP, termasuk data formulir, cookie, metode HTTP, dll.
Selanjutnya, kami akan memperkenalkan beberapa metode yang biasa digunakan dalam pemrograman JSP untuk mendapatkan header informasi HTTP. Silakan lihat tabel di bawah ini untuk detailnya:
nomor seri | Metode & Deskripsi |
---|---|
1 | Cookie[] getCookies() mengembalikan array semua cookie pada klien |
2 | Pencacahan getAttributeNames() mengembalikan kumpulan semua nama atribut objek permintaan |
3 | Pencacahan getHeaderNames() mengembalikan kumpulan nama semua header HTTP |
4 | Pencacahan getParameterNames() mengembalikan kumpulan semua parameter dalam permintaan |
5 | HttpSession getSession() mengembalikan objek sesi yang sesuai dengan permintaan. |
6 | HttpSession getSession(boolean create) mengembalikan objek sesi yang sesuai dengan permintaan. Jika tidak ada dan parameter create benar, objek sesi baru dikembalikan. |
7 | Locale getLocale() mengembalikan objek Locale dari halaman saat ini, yang dapat diatur sebagai respons |
8 | Objek getAttribute(String name) mengembalikan nilai atribut bernama nama, atau null jika tidak ada. |
9 | ServletInputStream getInputStream() mengembalikan aliran input yang diminta |
10 | String getAuthType() mengembalikan nama skema otentikasi yang digunakan untuk melindungi servlet, seperti "BASIC" atau "SSL" atau null jika JSP tidak menetapkan tindakan perlindungan |
11 | String getCharacterEncoding() mengembalikan nama set pengkodean karakter permintaan |
12 | String getContentType() mengembalikan tipe MIME dari isi permintaan, atau null jika tidak diketahui. |
13 | String getContextPath() mengembalikan jalur konteks yang ditentukan dalam URI permintaan |
14 | String getHeader(String name) mengembalikan header informasi yang ditentukan berdasarkan nama |
15 | String getMethod() mengembalikan metode HTTP dalam permintaan ini, seperti GET, POST, atau PUT |
16 | String getParameter(String name) mengembalikan parameter yang ditentukan berdasarkan nama dalam permintaan ini, atau null jika tidak ada. |
17 | String getPathInfo() mengembalikan jalur tambahan apa pun yang terkait dengan URL permintaan ini |
18 | String getProtocol() mengembalikan nama protokol dan versi yang digunakan oleh permintaan ini |
19 | String getQueryString() mengembalikan string kueri yang terdapat dalam URL permintaan ini |
20 | String getRemoteAddr() mengembalikan alamat IP klien |
dua puluh satu | String getRemoteHost() mengembalikan nama lengkap klien |
dua puluh dua | String getRemoteUser() mengembalikan pengguna yang diautentikasi oleh klien melalui login, atau null jika pengguna tidak diautentikasi. |
dua puluh tiga | String getRequestURI() mengembalikan URI permintaan |
dua puluh empat | String getRequestedSessionId() mengembalikan ID sesi yang ditentukan berdasarkan permintaan |
25 | String getServletPath() mengembalikan jalur servlet yang diminta |
26 | String[] getParameterValues(String name) mengembalikan semua nilai parameter dengan nama yang ditentukan, atau null jika tidak ada. |
27 | boolean isSecure() mengembalikan apakah permintaan menggunakan saluran terenkripsi, seperti HTTPS |
28 | int getContentLength() mengembalikan jumlah byte yang terdapat dalam isi permintaan. Jika tidak diketahui, ia mengembalikan -1 |
29 | int getIntHeader(String name) mengembalikan nilai header permintaan dengan nama yang ditentukan |
30 | int getServerPort() mengembalikan nomor port server |
Dalam contoh ini, kita akan menggunakan metode getHeaderNames() dari kelas HttpServletRequest untuk membaca header HTTP. Metode ini mengembalikan informasi header permintaan HTTP saat ini dalam bentuk enumerasi.
Setelah mendapatkan objek Enumeration, gunakan metode standar untuk melintasi objek Enumeration, gunakan metode hasMoreElements() untuk menentukan kapan harus berhenti, dan metode nextElement() untuk mendapatkan nama setiap parameter.
<%@ page import="java.io.*,java.util.*" %><html><head><title>Contoh Permintaan Header HTTP</title></head><body><center><h2 >Contoh Permintaan Header HTTP</h2><table align="center"><tr bgcolor="#949494"><th>Nama Header</th><th>Nilai Header</th></tr ><% Pencacahan headerNames = permintaan.getHeaderNames(); while(headerNames.hasMoreElements()) { String paramName = (String)headerNames.nextElement(); keluar.print("<tr><td>" + paramName + "</td> n"); String paramValue = permintaan.getHeader(paramName); out.println("<td> " + paramValue + "</td></tr>n"); }%></tabel></pusat></tubuh></html>
Akses main.jsp, Anda akan mendapatkan hasil sebagai berikut:
Nama Tajuk | Nilai Tajuk |
---|---|
menerima | */* |
menerima bahasa | en-kita |
agen pengguna | Mozilla/4.0 (kompatibel; MSIE 7.0; Windows NT 5.1; Trident/4.0; InfoPath.2; MS-RTC LM 8) |
menerima pengkodean | gzip, kempis |
tuan rumah | host lokal:8080 |
koneksi | Tetap Hidup |
kontrol cache | tanpa cache |
Anda dapat mencoba metode lain dari kelas HttpServletRequest pada kode di atas.