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 |
|
|
Manipulation de la demande de client : En-têtes de demande de HTTP |
Quand le client de HTTP (par exemple un navigateur) envoie une demande, on l'exige pour fournir une ligne de demande (OBTENIR habituellement ou POTEAU).
S'il veut à, il peut également envoyer le nombre d'en-têtes, qui sont facultatifs excepté la Contenu-Longueur, qui est exigée seulement pour des demandes de POTEAU
|
Méthodes d'en-tête de demande de HTTP disponibles dans Servlets
|
Général :
- getHeader (le nom d'en-tête n'est pas cas sensible) - getHeaderNames - getHeaders Spécialisé
- getCookies - getAuthType et getRemoteUser - getContentLength - getContentType - getMethod - getRequestURI - getQueryString - getDateHeader - getIntHeader - Information relative - getProtocol
|
Une vue d'ensemble des en-têtes de demande
|
Quand le client de HTTP (par exemple un navigateur) envoie une demande, on l'exige pour fournir une ligne de demande (OBTENIR habituellement ou POTEAU). S'il veut à, il peut également envoyer le nombre d'en-têtes, qui sont facultatifs excepté la Contenu-Longueur, qui est exigée seulement pour des demandes de POTEAU. Voici les en-têtes les plus communs :
- Accepter les types de MIME que le navigateur préfère.
- Accepter-Charset le jeu de caractères que le navigateur attend.
Accepter-Codant les types de codages de données (tels que le gzip) que le navigateur sait décoder. Servlet peut explicitement vérifier l'appui de gzip et le retour gzipped des pages de HTML aux navigateurs qui les soutiennent, plaçant l'en-tête de Contenu-Codage de réponse pour indiquer qu'ils sont gzipped. Dans beaucoup de cas, ceci peut réduire des temps de téléchargement de page par un facteur de cinq ou de dix.
Accepter-Langue la langue que le navigateur prévoit, au cas où le serveur aurait des versions dans plus que l'une langue.
Information d'autorisation d'autorisation, habituellement en réponse à l'en-tête de WWW-Authentification du serveur.
Raccordement persistant d'utilisation de raccordement ? Si un servlet obtiennent une valeur Garder-Vivante ici, ou obtiennent une ligne de demande indiquant HTTP 1.1 (où persistant les raccordements sont le défaut), il peut pouvoir tirer profit des raccordements persistants, sauvant l'heure significative pour les pages Web qui incluent plusieurs petits morceaux (des images ou des classes d'applet). Pour faire ceci, il doit envoyer l'en-tête de Contenu-Longueur dans la réponse, qui le plus facilement est accomplie par l'inscription dans un ByteArrayOutputStream, la recherchant alors la taille juste avant l'écriture dehors.
Contenu-Longueur (pour des messages de POTEAU, combien les données sont jointes)
Biscuit (un de la plupart des en-têtes importants ; voir la section séparée dans ce cours d'instruction sur manipuler des biscuits)
De (email address du demandeur ; seulement utilisé par des Web spider et d'autres clients faits sur commande, pas par des navigateurs)
- Centre serveur (centre serveur et le port comme énuméré dans l'URL original)
Si-Modifier-Puisque (seulement les documents de retour plus nouveaux que ceci, autrement envoient les 304 « » la réponse non modifiée)
Pragma (la valeur d'aucun-cachette indique que le serveur devrait renvoyer le document frais, même si c'est une procuration avec une copie locale)
Referer (l'URL de la page contenant le lien que l'utilisateur a suivi pour obtenir à la page courante)
Utilisateur-Agent (type du navigateur, utile si le servlet renvoie le contenu navigateur-spécifique)
UA-Pixel, UA-Couleur, UA-OS, UA-CPU (en-tête non standard envoyé par quelques versions d'Internet Explorer, indiquant la taille d'écran, l'intensité de la couleur, le logiciel d'exploitation, et le type d'unité centrale de traitement employé par le système du navigateur)
|
Lecture des en-têtes de demande de Servlets
|
La lecture des en-têtes est très la franche ; appel juste la méthode de getHeader de HttpServletRequest, qui renvoie une corde si l'en-tête était fourni sur cette demande, nulle autrement. Cependant, il y a les couples des en-têtes qui sont si utilisés généralement qu'ils aient des méthodes d'accès spéciales. La méthode de getCookies renvoie le contenu de l'en-tête de biscuit, analysé et stocké dans un choix d'objets de biscuit. Voir la section séparée de ce cours d'instruction sur des biscuits. Les méthodes de getAuthType et de getRemoteUser cassent l'en-tête d'autorisation en ses morceaux composants. Les méthodes de getDateHeader et de getIntHeader lisent l'en-tête indiqué et puis convertissent elles jusqu'ici et des valeurs internes, respectivement.
Plutôt que de rechercher un de l'en-tête particulier, vous pouvez employer les getHeaderNames pour obtenir une énumération de tous les noms d'en-tête reçus sur cette demande particulière.
En conclusion, en plus de la recherche des en-têtes de demande, vous pouvez obtenir l'information sur la ligne principale de demande elle-même. La méthode de getMethod renvoie la méthode principale de demande (OBTENIR normalement ou POTEAU, mais choses comme la TÊTE, METTENT, et l'EFFACEMENT sont possible). La méthode de getRequestURI retourne URI (la partie de l'URL qui est venu après le centre serveur et le port, mais avant les données de forme). Le getRequestProtocol renvoie la troisième partie de la ligne de demande, qui est généralement « HTTP/1.0 » ou « HTTP/1.1 ».
|
L'exemple suivant appelé le showHeaders.java imprime tous en-têtes dans le navigateur
|
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 |
|
|