HTML Tutorials |
|
XML Tutorials |
|
Browser Scripting |
|
Server Scripting |
|
.NET (dotnet) |
|
Multimedia |
|
Web Building |
|
Java Tutorials |
|
Programming Langauges |
|
Soft Skills |
|
Database Tutorials |
|
Operating System |
|
Software Testing |
|
SAP Module |
|
Networking Programming |
|
Microsoft Office |
|
Accounting |
|
|
Segurando o pedido do cliente: Encabeçamentos do pedido do HTTP |
Quando o cliente do HTTP (por exemplo um browser) emite um pedido, requer-se fornecer uma linha do pedido (COMEÇAR geralmente ou BORNE).
Se quiser a, pode também emitir o número dos encabeçamentos, que são opcionais à exceção do Índice-Comprimento, que é requerido somente para pedidos do BORNE
|
Métodos do encabeçamento do pedido do HTTP disponíveis em Servlets
|
Geral:
- getHeader (o nome do encabeçamento não é caso sensível) - getHeaderNames - getHeaders Especializado
- getCookies - getAuthType e getRemoteUser - getContentLength - getContentType - getMethod - getRequestURI - getQueryString - getDateHeader - getIntHeader - Info relacionado - getProtocol
|
Uma vista geral de encabeçamentos do pedido
|
Quando o cliente do HTTP (por exemplo um browser) emite um pedido, requer-se fornecer uma linha do pedido (COMEÇAR geralmente ou BORNE). Se quiser a, pode também emitir o número dos encabeçamentos, que são opcionais à exceção do Índice-Comprimento, que é requerido somente para pedidos do BORNE. Estão aqui os encabeçamentos os mais comuns:
- Aceitar os tipos do MIME que o browser prefere.
- Aceitar-Charset o caráter - ajustar-se que o browser espera.
Aceit-Codificando os tipos de encodings dos dados (tais como o gzip) que o browser sabe descodificar. Servlet pode explicitamente verificar para ver se há a sustentação de gzip e o retorno gzipped páginas do HTML aos browsers que os suportam, ajustando o encabeçamento Índice-Codificando da resposta para indicar que são gzipped. Em muitos casos, isto pode reduzir tempos do download da página por um fator de cinco ou de dez.
Aceit-Língua a língua que o browser está esperando, caso que o usuário tem versões em mais do que a uma língua.
Autorização info da autorização, geralmente em resposta ao encabeçamento do WWW-Authenticate do usuário.
Conexão persistente do uso da conexão? Se um servlet começar um valor Mant-Vivo aqui, ou começar uma linha do pedido que indica HTTP 1.1 (onde persistente as conexões são o defeito), pode faz exame da vantagem de conexões persistentes, conservando a hora significativa para os Web pages que incluem diversas partes pequenas (imagens ou classes do applet). Para fazer este, necessita emitir o encabeçamento do Índice-Comprimento na resposta, que é realizada o mais fàcilmente escrevendo em um ByteArrayOutputStream, olhando então acima do tamanho imediatamente antes da escrita a para fora.
Índice-Comprimento (para mensagens do BORNE, quanto os dados são unidos)
Bolinho (um de a maioria de encabeçamentos importantes; ver a seção separada neste tutorial em segurar bolinhos)
De (email address do requester; usado somente por Web spider e por outros clientes feitos sob encomenda, não por browsers)
- Anfitrião (anfitrião e o porto como alistado no URL original)
Se-Modific-Desde que (somente os originais do retorno mais novos do que este, se não emitem os 304 “” a resposta não modificada)
Pragma (o valor do nenhum-esconderijo indica que o usuário deve retornar o original fresco, mesmo se for um proxy com uma cópia local)
Referer (o URL da página que contem a ligação que o usuário seguiu para começar à página atual)
Usuário-Agente (tipo do browser, útil se o servlet estiver retornando o índice browser-específico)
A-Pixels, A-Cor, UA-OS, UA-CPU (encabeçamento não padronizado emitido por algumas versões do Internet Explorer, indicando o tamanho de tela, a profundidade de cor, o sistema se operando, e o tipo do processador central usado pelo sistema do browser)
|
Lendo encabeçamentos do pedido de Servlets
|
Ler encabeçamentos é a muito direta; chamada justa o método do getHeader do HttpServletRequest, que retorna uma corda se o encabeçamento for fornecido neste pedido, zero de outra maneira. Entretanto, há os pares dos encabeçamentos que são usados assim geralmente que têm métodos de acesso especiais. O método dos getCookies retorna os índices do encabeçamento do bolinho, analisados gramaticalmente e armazenados em uma disposição de objetos do bolinho. Ver a seção separada deste tutorial em bolinhos. Os métodos do getAuthType e do getRemoteUser quebram o encabeçamento da autorização em suas partes componentes. Os métodos do getDateHeader e do getIntHeader lêem o encabeçamento especificado e convertem-nos então à data e aos valores internos, respectivamente.
Melhor que olhando acima de um do encabeçamento particular, você pode usar os getHeaderNames começar uma enumeração de todos os nomes do encabeçamento recebidos neste pedido particular.
Finalmente, além a olhar acima dos encabeçamentos do pedido, você pode começar a informação na linha principal do pedido própria. O método do getMethod retorna o método principal do pedido (COMEÇAR normalmente ou BORNE, mas coisas como a CABEÇA, PÕEM, e a SUPRESSÃO é possível). O método do getRequestURI retorna URI (a parte do URL que veio após o anfitrião e o porto, mas antes dos dados do formulário). O getRequestProtocol retorna a terceira parte da linha do pedido, que é geralmente “HTTP/1.0” ou “HTTP/1.1”.
|
O seguinte exemplo chamado showHeaders.java imprime todos os encabeçamentos no browser
|
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
public class ShowRequestHeaders extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Servlet Example: Showing Request Headers";
out.println(ServletUtilities.headWithTitle(title) +
"<body bgcolor=\"#FDF5E6\">\n" +
"<h1 align=center>" + title + "</h1>\n" +
"<b>Request Method: </b>" +
request.getMethod() + "<br>\n" +
"<b>Request URI: </b>" +
request.getRequestURI() + "<BR>\n" +
"<b>Request Protocol: </b>" +
request.getProtocol() + "<BR><BR>\n" +
"<table border=1 align="center">\n" +
"<tr bgcolor=\"#FFAD00\">\n" +
"<th>Header Name<th>Header Value");
Enumeration headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements())
{
String headerName = (String)headerNames.nextElement();
out.println("<tr><td>" + headerName);
out.println(" <td>" + request.getHeader(headerName));
}
out.println("</table>\n</body></html>");
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
doGet(request, response);
}
}
|
|
|
|
Keywords:
Handling the Client Request:Form Data,asp net client,asp net data,vb net data,control data,data net,java client,data repeater
|
|
HTML Quizes |
|
XML Quizes |
|
Browser Scripting Quizes |
|
Server Scripting Quizes |
|
.NET (dotnet) Quizes |
|
Multimedia Quizes |
|
Web Building Quizes |
|
Java Quizes |
|
Programming Langauges Quizes |
|
Soft Skills Quizes |
|
Database Quizes |
|
Operating System Quizes |
|
Software Testing Quizes |
|
SAP Module Quizes |
|
Networking Programming Quizes |
|
Microsoft Office Quizes |
|
Accounting Quizes |
|
|