English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Wenn der Browser eine Webseite anfordert, sendet er spezifische Informationen an den Webserver, die nicht direkt gelesen werden können, da diese Informationen als Teil des HTTP-Anfragenkopfes übertragen werden. Sie können HTTP-Protokoll Mehr Informationen dazu.
Nachfolgend sind wichtige Headerinformationen von der Browserseite aufgeführt, die Sie im Web-Entwicklung häufig verwenden können:
Headerinformation | Beschreibung |
---|---|
Akzeptieren | Diese Headerinformation gibt an, welche MIME-Typen der Browser oder andere Clients verarbeiten können. Wert Bild/png oder Bild/jpeg sind die häufigsten beiden möglichen Werte. |
Akzeptieren-Zeichensatz | Diese Headerinformation gibt an, welche Zeichensätze der Browser verwenden kann, um Informationen anzuzeigen. Zum Beispiel ISO-8859-1。 |
Akzeptieren-Zeichensatz | Diese Headerinformation gibt an, welche Zeichensätze der Browser verarbeiten kann. Wert gzip oder komprimieren sind die häufigsten beiden möglichen Werte. |
Akzeptieren-Sprache | Diese Headerinformation gibt an, welche Sprache der Client bevorzugt, und in diesem Fall erzeugt der Servlet Ergebnisse in mehreren Sprachen. Zum Beispiel en, en-us, ru u. a. |
Autorisierung | Diese Headerinformation wird verwendet, um die Identität des Clients zu erkennen, wenn dieser auf eine geschützte Webseite zugreift. |
Verbindung | Diese Headerinformation weist darauf hin, ob der Client eine persistente HTTP-Verbindung verarbeiten kann. Eine persistente Verbindung ermöglicht es dem Client oder anderen Browsern, mehrere Dateien durch eine einzige Anfrage abzurufen. Wert Behalten-Alive bedeutet, dass eine persistente Verbindung verwendet wurde. |
Content-Length | Diese Header-Information betrifft nur POST-Anfragen und gibt die Größe der POST-Daten in Bytes an. |
Cookie | Diese Header-Information gibt die zuvor an den Browser gesendeten Cookies zurück an den Server. |
Host | Diese Header-Information gibt den Hostnamen und den Port der ursprünglichen URL an. |
If-Modified-Since | Diese Header-Information zeigt, dass der Client die Seite will, die nach dem angegebenen Datum geändert wurde. Wenn keine neuen Ergebnisse verwendet werden können, sendet der Server eine 304 Code, der Not Modified Header. |
If-Unmodified-Since | Diese Header-Information ist If-Modified-Seit dem Gegenteil, es wird angegeben, dass der Vorgang nur erfolgreich ist, wenn das Dokument vor dem angegebenen Datum ist. |
Referer | Diese Header-Information zeigt die URL der verweisenden Webseiten an. Zum Beispiel, wenn Sie auf einer Webseite 1wenn ein Link auf eine Webseite 2wenn der Browser eine Webseite 2 wenn 1 URL enthält in der Regel den Referer-Header. |
User-Agent | Diese Header-Informationen erkennen den Browser oder andere Client, der die Anfrage sendet, und können verschiedeneren Browsern unterschiedliche Inhalte zurückgeben. |
Nachstehende Methoden können in Servlet-Programmen verwendet werden, um HTTP-Header zu lesen. Diese Methoden werden durch HttpServletRequest Objekt verfügbar.
Nummer | Methode & Beschreibung |
---|---|
1 | getCookies() Ruft ein Array zurück, das alle Cookie-Objekte enthält, die der Client mit dieser Anfrage gesendet hat. |
2 | getAttributeNames() Ruft ein Enumeration-Objekt zurück, das die Namen der Attribute enthält, die für diese Anfrage verfügbar sind. |
3 | getHeaderNames() Ruft ein Enumeration-Objekt zurück, das alle in dieser Anfrage enthaltenen Header-Namen enthält. |
4 | getParameterNames() Ruft ein Enumeration-Objekt zurück, das die Namen der Parameter enthält, die in dieser Anfrage enthalten sind. |
5 | getSession() Ruft die aktuelle Session-Sitzung, die mit dieser Anfrage verknüpft ist, zurück oder erstellt eine neue, wenn keine Session-Sitzung vorhanden ist. |
6 | getSession(boolean create) Ruft die aktuelle HttpSession, die mit dieser Anfrage verknüpft ist, zurück oder erstellt eine neue Session-Sitzung, wenn keine aktuelle Sitzung vorhanden ist und der Wert create wahr ist. |
7 | getLocale() Basierend auf Accept-Sprachkopf, gibt die bevorzugte Regionaleinstellung des Clients zurück, der Inhalte akzeptiert. |
8 | Object getAttribute(String name) Gibt den Wert der benannten Eigenschaft als Objekt zurück oder null, wenn keine Eigenschaft mit dem gegebenen Namen existiert. |
9 | ServletInputStream getInputStream() Stellt den Anfragekörper in binärem Datenformat mit ServletInputStream zur Verfügung. |
10 | String getAuthType() Gibt den Namen der Authentifizierungsmethode zurück, die Servlet schützt, z.B. "BASIC" oder "SSL", wird null zurückgegeben, wenn das JSP nicht geschützt ist. |
11 | String getCharacterEncoding() Gibt den Namen der Zeichencodierung zurück, die im Anfragekörper verwendet wird. |
12 | String getContentType() Gibt den MIME-Typ des Anfragekörpers zurück, wenn der Typ nicht bekannt ist, wird null zurückgegeben. |
13 | String getContextPath() Gibt den Teil der Anfrage-URI zurück, der die Anfragekontext anzeigt. |
14 | String getHeader(String name) Gibt den Wert des angegebenen Anfragekopfes als Zeichenkette zurück. |
15 | String getMethod() Gibt den Namen des HTTP-Verfahrens zurück, z.B. GET, POST oder PUT. |
16 | String getParameter(String name) Gibt den Wert des Anfrageparameters als Zeichenkette zurück oder null, wenn der Parameter nicht existiert. |
17 | String getPathInfo() Gibt zusätzliche Pfadinformationen zurück, die mit der von der Anwendung gesendeten URL zusammenhängen, wenn die Anfrage gesendet wird. |
18 | String getProtocol() Gibt den Namen und die Version des Anfrageprotokolls zurück. |
19 | String getQueryString() Gibt den Query String zurück, der im Pfad der Anfrage-URL enthalten ist. |
20 | String getRemoteAddr() Gibt die Internet Protocol (IP)-Adresse des Clients zurück, der die Anfrage gesendet hat. |
21 | String getRemoteHost() Gibt den vollständigen Namen des Clients zurück, der die Anfrage gesendet hat. |
22 | String getRemoteUser() Gibt den angemeldeten Benutzer zurück, der die Anfrage ausgelöst hat, wenn der Benutzer bereits authentifiziert wurde, oder null, wenn der Benutzer nicht authentifiziert wurde. |
23 | String getRequestURI() Der Teil der URL, der im Query String bis zur ersten Zeile der HTTP-Anfrage zurückgegeben wird, enthält einen Teil der Anfrage-URL. |
24 | String getRequestedSessionId() 返回由客户端指定的 session 会话 ID。 |
25 | String getServletPath() 返回调用 JSP 的请求的 URL 的一部分。 |
26 | String[] getParameterValues(String name) 返回一个字符串对象的数组,包含所有给定的请求参数的值,如果参数不存在则返回 null。 |
27 | boolean isSecure() 返回一个布尔值,指示请求是否使用安全通道,如 HTTPS。 |
28 | int getContentLength() 以字节为单位返回请求主体的长度,并提供输入流,或者如果长度未知则返回 -1。 |
29 | int getIntHeader(String name) 返回指定的请求头的值为一个 int 值。 |
30 | int getServerPort() 返回接收到这个请求的端口号。 |
31 | int getParameterMap() 将参数封装成 Map 类型。 |
下面的示例使用 HttpServletRequest 的 getHeaderNames() 方法读取 HTTP 头信息。该方法返回一个枚举,包含与当前的 HTTP 请求相关的头信息。
一旦我们有一个枚举,我们可以以标准方式循环枚举,使用 hasMoreElements() 方法来确定何时停止,使用 nextElement() 方法来获取每个参数的名称。
//导入必需的 java 库 import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/DisplayHeader") //扩展 HttpServlet 类 public class DisplayHeader extends HttpServlet { // 处理 GET 方法请求的方法 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置响应内容类型 response.setContentType("text/html;charset=UTF-8"; PrintWriter out = response.getWriter(); String title = "HTTP Header Anforderung Beispiel - 基础教程网示例"; String docType = "<!DOCTYPE html> \n" out.println(docType + "<html>\n" + "<head><meta charset="utf-8"><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 Wert</th> "+ "</tr>\n"); Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String paramName = (String)headerNames.nextElement(); <tr><td>" + paramName + "</td> String paramValue = request.getHeader(paramName); <td> + paramValue + "</td></tr>\n"); } out.println("</table>\n</body></html>"); } // Methode zum Verarbeiten von POST-Anfragenmethoden public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
Dieser Testbeispiel befindet sich im Projekt TomcatTest und die entsprechende web.xml-Konfiguration lautet:
<?xml version="1.0" encoding="UTF-8"?> </web-app> </servlet> <!-- Klassenname --> <servlet-name>DisplayHeader</servlet-name> <!-- im Paket befindlich --> <servlet-</class>com.w3codebox.test.DisplayHeader</servlet-<class> </</servlet> <servlet-mapping> <servlet-name>DisplayHeader</servlet-name> <!-- Besuchte Webseite --> <url-pattern>/TomcatTest/DisplayHeader</url-pattern> </servlet-mapping> </web-app>
Rufen Sie nun den obigen Servlet auf, um auf zuzugreifen http://localhost:8080/TomcatTest/DisplayHeader Es wird folgendes Ergebnis erzeugt: