Servlet - Permintaan HTTP Klien

Ketika browser meminta halaman web, ia mengirimkan banyak informasi ke server web yang tidak dapat dibaca secara langsung karena informasi ini berjalan sebagai bagian dari header permintaan HTTP. Anda dapat memeriksa Protokol HTTP untuk informasi lebih lanjut tentang ini.

Berikut ini adalah informasi header penting yang berasal dari sisi browser dan Anda akan sering menggunakannya dalam pemrograman web -

Sr.No. Header & Deskripsi
1

Accept

Header ini menetapkan jenis MIME yang dapat ditangani browser atau klien lain. Nilaiimage/png atau image/jpeg adalah dua kemungkinan paling umum.

2

Accept-Charset

Header ini menentukan set karakter yang dapat digunakan browser untuk menampilkan informasi. Misalnya ISO-8859-1.

3

Accept-Encoding

Header ini menentukan jenis pengkodean yang diketahui browser cara menanganinya. Nilaigzip atau compress adalah dua kemungkinan paling umum.

4

Accept-Language

Header ini menetapkan bahasa pilihan klien jika servlet dapat menghasilkan hasil dalam lebih dari satu bahasa. Misalnya en, en-us, ru, dll

5

Authorization

Header ini digunakan oleh klien untuk mengidentifikasi diri mereka sendiri saat mengakses halaman Web yang dilindungi sandi.

6

Connection

Header ini menunjukkan apakah klien dapat menangani koneksi HTTP yang persisten. Koneksi persisten mengizinkan klien atau browser lain untuk mengambil banyak file dengan satu permintaan. NilaiKeep-Alive berarti koneksi persisten harus digunakan.

7

Content-Length

Header ini hanya berlaku untuk permintaan POST dan memberikan ukuran data POST dalam byte.

8

Cookie

Header ini mengembalikan cookie ke server yang sebelumnya mengirimnya ke browser.

9

Host

Header ini menentukan host dan port seperti yang diberikan di URL asli.

10

If-Modified-Since

Header ini menunjukkan bahwa klien menginginkan halaman tersebut hanya jika telah diubah setelah tanggal yang ditentukan. Server mengirimkan kode, 304 yang artinyaNot Modified header jika tidak ada hasil yang lebih baru tersedia.

11

If-Unmodified-Since

Header ini adalah kebalikan dari If-Modified-Because; itu menetapkan bahwa operasi harus berhasil hanya jika dokumen lebih lama dari tanggal yang ditentukan.

12

Referer

Header ini menunjukkan URL dari halaman Web pengarah. Misalnya, jika Anda berada di halaman Web 1 dan mengklik link ke halaman Web 2, URL halaman Web 1 akan disertakan dalam header Referer saat browser meminta halaman Web 2.

13

User-Agent

Header ini mengidentifikasi browser atau klien lain yang membuat permintaan dan dapat digunakan untuk mengembalikan konten yang berbeda ke jenis browser yang berbeda.

Metode untuk membaca HTTP Header

Ada metode berikut yang dapat digunakan untuk membaca header HTTP di program servlet Anda. Metode ini tersedia dengan objek HttpServletRequest

Sr.No. Metode & Deskripsi
1

Cookie[] getCookies()

Mengembalikan larik yang berisi semua objek Cookie yang dikirim klien dengan permintaan ini.

2

Enumeration getAttributeNames()

Mengembalikan Enumerasi yang berisi nama-nama atribut yang tersedia untuk permintaan ini.

3

Enumeration getHeaderNames()

Menampilkan pencacahan semua nama header yang dikandung permintaan ini.

4

Enumeration getParameterNames()

Mengembalikan Enumerasi objek String yang berisi nama parameter yang terdapat dalam permintaan ini

5

HttpSession getSession()

Mengembalikan sesi saat ini yang terkait dengan permintaan ini, atau jika permintaan tidak memiliki sesi, buat satu.

6

HttpSession getSession(boolean create)

Mengembalikan HttpSession saat ini yang terkait dengan permintaan ini atau, jika tidak ada sesi saat ini dan nilai buat benar, mengembalikan sesi baru.

7

Locale getLocale()

Mengembalikan Lokal pilihan di mana klien akan menerima konten, berdasarkan header Terima-Bahasa.

8

Object getAttribute(String name)

Mengembalikan nilai atribut bernama sebagai Objek, atau null jika tidak ada atribut dari nama yang diberikan.

9

ServletInputStream getInputStream()

Mengambil isi permintaan sebagai data biner menggunakan ServletInputStream.

10

String getAuthType()

Mengembalikan nama skema otentikasi yang digunakan untuk melindungi servlet, misalnya, "BASIC" atau "SSL," atau null jika JSP tidak dilindungi.

11

String getCharacterEncoding()

Menampilkan nama pengkodean karakter yang digunakan dalam isi permintaan ini.

12

String getContentType()

Mengembalikan tipe MIME dari isi permintaan, atau null jika tipenya tidak dikenal.

13

String getContextPath()

Mengembalikan porsi URI permintaan yang menunjukkan konteks permintaan.

14

String getHeader(String name)

Mengembalikan nilai dari header permintaan yang ditentukan sebagai String.

15

String getMethod()

Menampilkan nama metode HTTP yang digunakan untuk membuat permintaan ini, misalnya, GET, POST, atau PUT.

16

String getParameter(String name)

Mengembalikan nilai parameter permintaan sebagai String, atau null jika parameter tidak ada.

17

String getPathInfo()

Menampilkan informasi jalur tambahan apa pun yang terkait dengan URL yang dikirim klien saat membuat permintaan ini

18

String getProtocol()

Menampilkan nama dan versi protokol yang diminta.

19

String getQueryString()

Mengembalikan string kueri yang terdapat dalam URL permintaan setelah jalur.

20

String getRemoteAddr()

Mengembalikan alamat Internet Protocol (IP) klien yang mengirim permintaan.

21

String getRemoteHost()

Menampilkan nama klien yang sepenuhnya memenuhi syarat yang mengirim permintaan.

22

String getRemoteUser()

Mengembalikan login pengguna yang membuat permintaan ini, jika pengguna telah diautentikasi, atau null jika pengguna belum diautentikasi.

23

String getRequestURI()

Menampilkan bagian URL permintaan ini dari nama protokol hingga string kueri di baris pertama permintaan HTTP.

24

String getRequestedSessionId()

Mengembalikan ID sesi yang ditentukan oleh klien.

25

String getServletPath()

Menampilkan bagian dari URL permintaan ini yang memanggil JSP.

26

String[] getParameterValues(String name)

Mengembalikan larik objek String yang berisi semua nilai yang dimiliki parameter permintaan, atau null jika parameter tidak ada.

27

boolean isSecure()

Mengembalikan Boolean yang menunjukkan apakah permintaan ini dibuat menggunakan saluran aman, seperti HTTPS.

28

int getContentLength()

Menampilkan panjang, dalam byte, dari isi permintaan dan disediakan oleh aliran input, atau -1 jika panjangnya tidak diketahui.

29

int getIntHeader(String name)

Mengembalikan nilai dari header permintaan yang ditentukan sebagai int.

30

int getServerPort()

Mengembalikan nomor port tempat permintaan ini diterima.

Contoh Permintaan Header HTTP

Berikut adalah contoh yang menggunakan getHeaderNames()metode HttpServletRequest untuk membaca informasi header HTTP. Metode ini mengembalikan Enumerasi yang berisi informasi header yang terkait dengan permintaan HTTP saat ini.

Setelah kita memiliki Enumerasi, kita dapat mengulang Enumerasi dengan cara standar, menggunakan metode hasMoreElements () untuk menentukan kapan harus berhenti dan menggunakan metode nextElement () untuk mendapatkan setiap nama parameter

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
 
// Extend HttpServlet class
public class DisplayHeader extends HttpServlet {
 
   // Method to handle GET method request.
   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");
 
      PrintWriter out = response.getWriter();
      String title = "HTTP Header Request Example";
      String docType =
         "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\n";

      out.println(docType +
         "<html>\n" +
         "<head><title>" + title + "</title></head>\n"+
         "<body bgcolor = \"#f0f0f0\">\n" +
         "<h1 align = \"center\">" + title + "</h1>\n" +
         "<table width = \"100%\" border = \"1\" align = \"center\">\n" +
         "<tr bgcolor = \"#949494\">\n" +
         "<th>Header Name</th><th>Header Value(s)</th>\n"+
         "</tr>\n"
      );
 
      Enumeration headerNames = request.getHeaderNames();
    
      while(headerNames.hasMoreElements()) {
         String paramName = (String)headerNames.nextElement();
         out.print("<tr><td>" + paramName + "</td>\n");
         String paramValue = request.getHeader(paramName);
         out.println("<td> " + paramValue + "</td></tr>\n");
      }
      out.println("</table>\n</body></html>");
   }
   
   // 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 menghasilkan hasil sebagai berikut -

HTTP Header Request Example

Header Name Header Value(s)
accept */*
accept-language en-us
user-agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; InfoPath.2; MS-RTC LM 8)
accept-encoding gzip, deflate
host localhost:8080
connection Keep-Alive
cache-control no-cache