Tout d'abord, le champ d'en-tête commun
1. Connection
Ce champ n'existe que dans l'accord HTTP1.1.Il détermine le client et le serveur pour une session, le serveur est immédiatement fermer la connexion réseau.Dans l'exercice du client est d'utiliser la méthode la plus directe de lecture (méthode readLine est le même) les demandes des clients les ressources de lecture sur le Web, que ce soit immédiatement retourner -1 (readLine retourne null).Il existe deux valeurs de connexion: Fermer et Keep-Alive Lors de l'utilisation de la connexion: Fermer lorsque l'accord et HTTP1.0 est le même, lorsqu'il est lu données lues méthode retourne immédiatement, et l'utilisation de la connexion:. Temps Keep-Alive, lisez les méthodes de lectureUne fois les données doivent être bloqués pendant un certain temps.Lire les données après le délai d'attente, mais a continué à l'exécution.Dans l'article précédent readHttpResponse discuté (... ...) la mise en œuvre de la méthode 011 premières lignes de vérifier le rôle de connexion.Faisons une expérience utilisant le simulateur de HTTP.
(1) la saisie du nom de domaine suivants HTTP simulateur:
www.baidu.com
(2) HTTP Simulator HTTP demande d'entrer les informations suivantes:
GET / HTTP/1.1
Animateur: www.baidu.com
(3) double retour chariot (entrer une ligne vide), envoyer le message de demande, et comme le montre la figure 1, les en-têtes HTTP message de réponse:
Figure 1
(4) après y d'entrée ou de Y (dans l'en-tête de réponse http affichage, entrez immédiatement Y ou y), affiche le contenu du message de réponse.Après le contenu de l'écran, environ 10 secondes pour entrer dans le "host: port " invite (comme dans sendHttpRequest () la mise en œuvre de la ligne 004 du code pour lire les données set timeout).
(5) dans "host: port « invite, appuyez sur Entrée, entrer le nom utilisé www.baidu.com et 80 ports.Re-entrer dans la requête HTTP suivante:
GET / HTTP/1.1
Animateur: www.baidu.com
Connection: close
Après être entré dans la demande ci-dessus HTTP, le ré-exécuter la première étape 3,4.Enfin, le contenu de l'affichage du message de réponse HTTP, directement directement dans le "host: port " invite.En plus de cette méthode, lisez la première ligne de la requête GET / HTTP/1.0. Cela ne peut pas attendre, la sortie.
En définissant la connexion, vous pouvez télécharger des ressources Web (comme outil de téléchargement multi-thread, navigateur Web, etc), immédiatement déconnecter du réseau, ce qui peut réduire efficacement la consommation des ressources du client.
2. Date
Le champ d'en-tête Date décrit les messages de demande et des messages de réponse sont créés.Cette valeur de champ est un type HTTP-date, il doit être dans le GMT (Greenwich) le temps, l'heure GMT est heure GMT moins 8.Voici un exemple de la Date de domaine:
Date: Tue, 15 novembre 2007 08:12:31 GMT
3. Content-Length
Le nombre d'octets spécifié entité message.méthode POST dans le message de demande doivent utiliser le message de demande de Content-Length pour le nombre d'octets spécifié dans le contenu entité.En réponse à la valeur des champs message spécifié dans la réponse HTTP renvoyée par les ressources Web en cours, le nombre d'octets.
Deuxièmement, le champ tête de requête HTTP
1. Host
champ Host est utilisé pour spécifier les ressources accessibles par le nom d'hôte client et numéro de port.Si le numéro de port à utiliser lors de la connexion au serveur est égal au numéro de port, le numéro de port peut être omis.Voici un exemple en utilisant le champ Host:
Animateur: www.sina.com.cn
Ce champ est nécessaire, si la requête HTTP ne contient pas ce domaine, le serveur envoie la réponse d'état 400 (Bad Request).
2. Accepter
Accepter champ d'en-tête afin de déterminer le client peut recevoir le type de support.format général est "*/*" ou «type / sous-type." Sous-paragraphe de cette tête peut transmettre plusieurs types de médias, séparés par "," séparés.Accepter si le suivant est un exemple:
Accepter:: image / gif, image / jpg
Si la valeur requête Accept champ d'en-tête en utilisant ce qui précède, le côté serveur pages générées dynamiquement dans l'IMG sera le premier chef lorsque l'image contient le format gif, si l'image gif n'existe pas, contient des images jpg format.
3. User-Agent
Ce champ est d'abord utilisé pour spécifier ce que l'accès du client au serveur, si elle est IE6 navigateur, et l'appareil est installé.net 2.0, le User-Agent aura les valeurs suivantes:
User-Agent: Mozilla/4.0 (
compatible;
MSIE 6.0;
Windows NT 5.2;
SV1; Maxthon;
. NET CLR 1.1.4322;
. NET CLR 2.0.50727;
InfoPath.1; InfoPath.2)
Vérifier le serveur peut utiliser cette version sur le terrain du client navigateur, et à déterminer selon les différentes versions des données envoyées au client.
4. Gamme
champ Plage se transmet uniquement par la partie serveur des premières ressources Web.Ce champ peut être utilisé pour mettre en œuvre la fonction HTTP en-tête.Il existe de nombreux outils de téléchargement à travers ce champ dans l'en-tête HTTP.Gamme des champs peut être réglé en trois formats gamme d'octets à transmettre:
(1) Gamme: octets = 1000-2000
Plage de transmission de 1000 à 2000 octets.
(2) Gamme: octets = 1000 -
Transport des ressources Web après les 1000 premiers octets de l'ensemble du contenu.
(3) Gamme octets = 1000
Transfert des 1000 derniers octets.
Troisièmement, la réponse HTTP message en-tête
1. Accept-Ranges
Ce champ indique si le serveur Web prend en charge Range (s'il gère la fonctionnalité HTTP), si elles sont soutenues, le retour Accept-Ranges: octets, voire le soutien, le retour Accept-Ranges: aucun.
2. Content-Range
Retour à la ressource Web spécifié plage d'octets.Le format de la valeur de ce champ est:
Position de départ d'octets - fin de la position en octets / ressources Web, le nombre total d'octets
Voici un exemple d'utilisation du Content-Range:
Content-Range: 1000-3000 / 5000
Test
Se connecter au serveur dans le simulateur de files.cnblogs.com HTTP, et entrez le message de demande HTTP suivant:
GET / nokiaguy / HTTP/1.1 HttpSimulator.rar
Animateur: files.cnblogs.com
Gamme: octets = 1000 -
tête de réponse de retour à la figure 2:
Figure 2
Il peut être vu à partir du serveur après la fonction de transfert files.cnblogs.com point d'arrêt soutien.Mais aussi pour vérifier la valeur Content-Length est le nombre actuel d'octets dans la session passer au-dessus, pas les ressources Web, le nombre total d'octets.Les valeurs du champ Content-Range dans le "/" suivi par le nombre de ressources Web est le nombre total d'octets.
3. Localisation
Ce champ spécifie l'adresse à laquelle le nouvel accès à de nouvelles ressources Web.Lorsque l'URL des ressources Web de remplacement, et les utilisateurs ne peuvent pas rattraper son retard sur certains des anciens de la nouvelle URL, donc, dans les anciens utilisateurs d'accéder à l'URL d'origine, l'utilisation de l'emplacement de la nouvelle URL au client.Cette traduction d'adresse est complètement transparent pour l'utilisateur.