📅  最后修改于: 2020-11-12 05:37:55             🧑  作者: Mango
当浏览器请求一个网页时,它会将大量信息发送到Web服务器,该信息无法直接读取,因为该信息作为HTTP请求标头的一部分传播。您可以检查HTTP协议以获取更多信息。
以下是来自浏览器端的重要标头信息,您将在网络编程中经常使用-
Sr.No. | Header & Description |
---|---|
1 |
Accept This header specifies the MIME types that the browser or other clients can handle. Values of image/png or image/jpeg are the two most common possibilities. |
2 |
Accept-Charset This header specifies the character sets the browser can use to display the information. For example ISO-8859-1. |
3 |
Accept-Encoding This header specifies the types of encodings that the browser knows how to handle. Values of gzip or compress are the two most common possibilities. |
4 |
Accept-Language This header specifies the client’s preferred languages in case the servlet can produce results in more than one language. For example en, en-us, ru, etc |
5 |
Authorization This header is used by clients to identify themselves when accessing password-protected Web pages. |
6 |
Connection This header indicates whether the client can handle persistent HTTP connections. Persistent connections permit the client or other browser to retrieve multiple files with a single request. A value of Keep-Alive means that persistent connections should be used. |
7 |
Content-Length This header is applicable only to POST requests and gives the size of the POST data in bytes. |
8 |
Cookie This header returns cookies to servers that previously sent them to the browser. |
9 |
Host This header specifies the host and port as given in the original URL. |
10 |
If-Modified-Since This header indicates that the client wants the page only if it has been changed after the specified date. The server sends a code, 304 which means Not Modified header if no newer result is available. |
11 |
If-Unmodified-Since This header is the reverse of If-Modified-Since; it specifies that the operation should succeed only if the document is older than the specified date. |
12 |
Referer This header indicates the URL of the referring Web page. For example, if you are at Web page 1 and click on a link to Web page 2, the URL of Web page 1 is included in the Referrer header when the browser requests Web page 2. |
13 |
User-Agent This header identifies the browser or other client making the request and can be used to return different content to different types of browsers. |
有以下方法可用于读取servlet程序中的HTTP标头。这些方法可用于HttpServletRequest对象
Sr.No. | Method & Description |
---|---|
1 |
Cookie[] getCookies() Returns an array containing all of the Cookie objects the client sent with this request. |
2 |
Enumeration getAttributeNames() Returns an Enumeration containing the names of the attributes available to this request. |
3 |
Enumeration getHeaderNames() Returns an enumeration of all the header names this request contains. |
4 |
Enumeration getParameterNames() Returns an Enumeration of String objects containing the names of the parameters contained in this request |
5 |
HttpSession getSession() Returns the current session associated with this request, or if the request does not have a session, creates one. |
6 |
HttpSession getSession(boolean create) Returns the current HttpSession associated with this request or, if if there is no current session and value of create is true, returns a new session. |
7 |
Locale getLocale() Returns the preferred Locale that the client will accept content in, based on the Accept-Language header. |
8 |
Object getAttribute(String name) Returns the value of the named attribute as an Object, or null if no attribute of the given name exists. |
9 |
ServletInputStream getInputStream() Retrieves the body of the request as binary data using a ServletInputStream. |
10 |
String getAuthType() Returns the name of the authentication scheme used to protect the servlet, for example, “BASIC” or “SSL,” or null if the JSP was not protected. |
11 |
String getCharacterEncoding() Returns the name of the character encoding used in the body of this request. |
12 |
String getContentType() Returns the MIME type of the body of the request, or null if the type is not known. |
13 |
String getContextPath() Returns the portion of the request URI that indicates the context of the request. |
14 |
String getHeader(String name) Returns the value of the specified request header as a String. |
15 |
String getMethod() Returns the name of the HTTP method with which this request was made, for example, GET, POST, or PUT. |
16 |
String getParameter(String name) Returns the value of a request parameter as a String, or null if the parameter does not exist. |
17 |
String getPathInfo() Returns any extra path information associated with the URL the client sent when it made this request |
18 |
String getProtocol() Returns the name and version of the protocol the request. |
19 |
String getQueryString() Returns the query string that is contained in the request URL after the path. |
20 |
String getRemoteAddr() Returns the Internet Protocol (IP) address of the client that sent the request. |
21 |
String getRemoteHost() Returns the fully qualified name of the client that sent the request. |
22 |
String getRemoteUser() Returns the login of the user making this request, if the user has been authenticated, or null if the user has not been authenticated. |
23 |
String getRequestURI() Returns the part of this request’s URL from the protocol name up to the query string in the first line of the HTTP request. |
24 |
String getRequestedSessionId() Returns the session ID specified by the client. |
25 |
String getServletPath() Returns the part of this request’s URL that calls the JSP. |
26 |
String[] getParameterValues(String name) Returns an array of String objects containing all of the values the given request parameter has, or null if the parameter does not exist. |
27 |
boolean isSecure() Returns a Boolean indicating whether this request was made using a secure channel, such as HTTPS. |
28 |
int getContentLength() Returns the length, in bytes, of the request body and made available by the input stream, or -1 if the length is not known. |
29 |
int getIntHeader(String name) Returns the value of the specified request header as an int. |
30 |
int getServerPort() Returns the port number on which this request was received. |
以下是使用HttpServletRequest的getHeaderNames()方法读取HTTP标头信息的示例。此方法返回一个Enumeration,其中包含与当前HTTP请求关联的标头信息。
一旦有了枚举,就可以使用hasMoreElements()方法确定何时停止并使用nextElement()方法获取每个参数名称,以标准方式循环枚举。
// 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 =
""-//w3c//dtd html 4.0 " + "transitional//en\">\n";
out.println(docType +
"\n" +
"" + title + " \n"+
"\n" +
"" + title + "
\n" +
"
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
现在调用上面的servlet将产生以下结果-
HTTP Header Request Example
标头名称 | 标头值 |
---|---|
接受 | * / * |
接受语言 | 我们 |
用户代理 | Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 5.1; Trident / 4.0; InfoPath.2; MS-RTC LM 8) |
接受编码 | gzip,放气 |
主办 | 本地主机:8080 |
连接 | 活着 |
缓存控制 | 无缓存 |