English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Cuando el navegador solicita una página web, envía una serie de información que no puede ser leída directamente al servidor de red, ya que esta información se transmite como parte de la cabecera de información HTTP. Puede consultar el protocolo HTTP para obtener más información.
La tabla a continuación enumera algunos aspectos importantes de los encabezados de información del lado del navegador, que se verán a menudo en la programación de red en el futuro:
Información | Descripción |
---|---|
Aceptar | Especifica los tipos MIME que pueden manejar el navegador u otro cliente. Su valor generalmente es image/png o image/jpeg |
Aceptar-Juego de caracteres | Especifica el conjunto de caracteres que se debe usar en el navegador. Por ejemplo, ISO-8859-1 |
Aceptar-Codificación | Especifica el tipo de codificación. Su valor generalmente es gzip ocompresión |
Aceptar-Idioma | Especifica el idioma preferido del cliente, el servlet devolverá preferentemente conjuntos de resultados constituidos por el idioma actual, si el servlet admite ese idioma. Por ejemplo, en, en-us, ru, etc. |
Autorización | Reconoce diferentes usuarios al acceder a páginas protegidas por contraseña |
Conexión | Indica si el cliente puede manejar conexiones persistentes de HTTP. Las conexiones persistentes permiten que el cliente o el navegador obtenga varios archivos en una solicitud.Mantener-Viva Indica que se habilita la conexión persistente |
Contenido-Longitud | Sólo se aplica a solicitudes POST, indicando el número de bytes de los datos POST |
Cookie | Devuelve las cookies enviadas anteriormente al navegador al servidor |
Host | Señala el nombre de host y el puerto en la URL original |
If-Modificado-Since | Indica que el cliente solo necesita esta página cuando la página se ha modificado en la fecha especificada. El servidor envía304Código para el cliente, indicando que no hay recursos actualizados |
If-Unmodified-Since | Con If-Modificado-En contraste, solo si el documento no ha sido modificado desde la fecha especificada, la operación tendrá éxito |
Referer | Marca la URL de la página referenciada. Por ejemplo, si estás en la página1Luego hizo clic en un enlace a la página2Entonces la página1La URL contendrá en la solicitud de página del navegador2Los encabezados de información de |
Usuario-Agente | Para distinguir entre diferentes navegadores o clientes que envían solicitudes y devolver contenido diferente para diferentes tipos de navegadores |
El objeto request es un ejemplo de la clase javax.servlet.http.HttpServletRequest. Cada vez que el cliente solicita una página, el motor JSP crea un nuevo objeto para representar esta solicitud.
El objeto request proporciona una serie de métodos para obtener encabezados de información HTTP, incluyendo datos de formulario, cookies, métodos HTTP, etc.
Se presentarán algunos métodos comunes para obtener encabezados de información HTTP en programación JSP. Detalles más detallados se pueden encontrar en la tabla a continuación:
Número | Método& Descripción |
---|---|
1 | Cookie[] getCookies() Devuelve el array de todos los cookies del cliente |
2 | Enumeration getAttributeNames() Devuelve la colección de todos los nombres de atributos del objeto solicitud |
3 | Enumeration getHeaderNames() Devuelve la colección de todos los nombres de encabezados HTTP |
4 | Enumeration getParameterNames() Devuelve la colección de todos los parámetros de la solicitud |
5 | HttpSession getSession() Devuelve el objeto session correspondiente a la solicitud, si no existe, crea uno |
6 | HttpSession getSession(boolean create) Devuelve el objeto session correspondiente a la solicitud, si no existe y el parámetro create es true, devuelve un nuevo objeto session |
7 | Locale getLocale() Devuelve el objeto Locale de la página actual, que se puede configurar en la respuesta |
8 | Object getAttribute(String name) Devuelve el valor del atributo con el nombre especificado, si no existe devuelve null. |
9 | ServletInputStream getInputStream() Devuelve el flujo de entrada de la solicitud |
10 | String getAuthType() Devuelve el nombre del esquema de autenticación utilizado para proteger el servlet, por ejemplo "BASIC" o "SSL" o null si el JSP no ha configurado medidas de protección |
11 | String getCharacterEncoding() Devuelve el nombre del conjunto de caracteres de codificación de la solicitud |
12 | String getContentType() Devuelve el tipo MIME del cuerpo de solicitud, si es desconocido devuelve null |
13 | String getContextPath() Devuelve la ruta de contexto indicada en el URI de solicitud |
14 | String getHeader(String name) Devuelve la información de encabezado especificada por el nombre |
15 | String getMethod() Devuelve el método HTTP de esta solicitud, por ejemplo GET, POST o PUT |
16 | String getParameter(String name) Devuelve el parámetro especificado por el nombre en esta solicitud, si no existe devuelve null |
17 | String getPathInfo() Devuelve cualquier ruta adicional relacionada con la URL de solicitud |
18 | String getProtocol() Devuelve el nombre y la versión del protocolo utilizado por este request |
19 | String getQueryString() Devuelve la cadena de consulta que contiene la URL de este request |
20 | String getRemoteAddr() Devuelve la dirección IP del cliente |
21 | String getRemoteHost() Devuelve el nombre completo del cliente |
22 | String getRemoteUser() Devuelve el usuario que se autenticó en el cliente, si el usuario no se autenticó, devuelve null |
23 | String getRequestURI() Devuelve el URI del request |
24 | String getRequestedSessionId() Devuelve el ID de sesión especificado por el request |
25 | String getServletPath() Devuelve la ruta del servlet solicitada |
26 | String[] getParameterValues(String name) Devuelve todos los valores de los parámetros con el nombre especificado, si no existe, devuelve null |
27 | boolean isSecure() Devuelve si el request utilizó un canal cifrado, como HTTPS |
28 | int getContentLength() Devuelve el número de bytes contenidos en el cuerpo de solicitud de solicitud, si es desconocido, devuelve-1 |
29 | int getIntHeader(String name) Devuelve el valor de la información de encabezado de solicitud con el nombre especificado |
30 | int getServerPort() Devuelve el número de puerto del servidor |
En este ejemplo, utilizaremos el método getHeaderNames() de la clase HttpServletRequest para leer la información de encabezado HTTP. Este método devuelve la información de encabezado actual de la solicitud HTTP en forma de enumeración.
Después de obtener el objeto Enumeration, se utiliza una forma estándar para recorrer el objeto Enumeration, utilizando el método hasMoreElements() para determinar cuándo detenerse y el método nextElement() para obtener el nombre de cada parámetro.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %> !DOCTYPE html <html> <head> <meta charset="utf-8"> <title>Red de tutoriales básicos (oldtoolbag.com)</title>/title> </head> <body> <h2>Ejemplo de solicitud de encabezado de HTTP</h/h2> <table width="100%" border="1" align="center"> <tr bgcolor="#949494"> <th>Nombre de encabezado</th>/th><th>Valores de encabezado</th>/th> </tr> <% 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"); } %> </table> </body> </html>
Al acceder a main.jsp, se obtendrá el siguiente resultado:
Puedes probar otros métodos de la clase HttpServletRequest en el código anterior.