Paramètres de protocole HTTP <httpProtocol>
Vue d’ensemble
L'élément <httpProtocol>
configure les connexions toujours actives HTTP, ainsi que les en-têtes de réponse personnalisés et de redirection envoyés par Internet Information Services (IIS) 7 aux clients web.
Un navigateur initie généralement plusieurs requêtes pour télécharger une page web entière. Pour améliorer les performances du serveur, la plupart des navigateurs web requêtent au serveur de maintenir la connexion ouverte lors de ces multiples requêtes, ce qui est une fonction connue sous le nom de HTTP toujours actives. En l'absence d'HTTP toujours actives, un navigateur qui initie de nombreuses requêtes pour une page contenant plusieurs éléments, comme des graphiques, pourrait avoir besoin d'une connexion distincte pour chaque élément. Ces requêtes et connexions supplémentaires nécessitent une activité et des ressources de serveur supplémentaires, ce qui réduit l'efficacité du serveur. Les connexions supplémentaires rendent également un navigateur beaucoup plus lent et moins réactif, en particulier sur une connexion lente.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L'élément <httpProtocol> n'a pas été modifié dans IIS 10.0. |
IIS 8.5 | L'élément <httpProtocol> n'a pas été modifié dans IIS 8.5. |
IIS 8.0 | L'élément <httpProtocol> n'a pas été modifié dans IIS 8.0. |
IIS 7.5 | L'élément <httpProtocol> n'a pas été modifié dans IIS 7.5. |
IIS 7.0 | L'élément <httpProtocol> a été introduit dans IIS 7.0. |
IIS 6.0 | L'attribut allowKeepAlive de l'élément <httpProtocol> remplace la propriété de métabase IIS 6.0 AllowKeepAlive. |
Programme d’installation
L'élément <httpProtocol>
est inclus dans l'installation par défaut d'IIS 7.
Procédure
Comment activer les conservations HTTP pour un site web ou une application
Ouvrez le Gestionnaire d'Internet Information Services (IIS) :
Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire d'Internet Information Services (IIS).
Si vous utilisez Windows 8 ou Windows 8.1 :
- Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
- Cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire des services Internet (IIS).
Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :
- Cliquez sur Démarrer, placez le curseur sur Outils d'administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows Vista ou Windows 7 :
- Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
- Double-cliquez sur Outils d'administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
Dans le volet Connexions, accédez au site, à l'application ou au répertoire pour lequel vous souhaitez activer la conservation HTTP.
Dans le volet Accueil, double-cliquez sur En-têtes de réponse HTTP.
Dans le volet En-têtes de réponse HTTP, cliquez sur Définir les en-têtes communs... dans le volet Actions.
Dans la boîte de dialogue Définir les en-têtes de réponse HTTP communs, cochez la case pour activer les conservations HTTP, puis cliquez sur OK.
Configuration
Attributs
Attribut | Description |
---|---|
allowKeepAlive |
Attribut booléen facultatif. Spécifie si le traitement de la conservation est autorisé (vrai) ou non (faux). La valeur par défaut est true . |
Éléments enfants
Élément | Description |
---|---|
customHeaders |
Configure les en-têtes de réponse personnalisés retournés dans les réponses du serveur web. |
redirectHeaders |
Configure les en-têtes de réponse retournés dans les réponses uniquement lorsque le serveur web redirige les requêtes. |
Exemple Configuration
Les exemples de code suivants activent les conservations HTTP pour le site web par défaut.
<configuration>
<system.webServer>
<httpProtocol allowKeepAlive="true" />
</system.webServer>
</configuration>
Remarque
L'élément <httpProtocol>
par défaut suivant est configuré dans le fichier ApplicationHost.config dans IIS 7.
<httpProtocol>
<customHeaders>
<clear />
<add name="X-Powered-By" value="ASP.NET" />
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
Exemple de code
Les exemples de code suivants activent les conservations HTTP pour le site web par défaut.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/httpProtocol /allowKeepAlive:"True"
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetWebConfiguration("Default Web Site");
ConfigurationSection httpProtocolSection = config.GetSection("system.webServer/httpProtocol");
httpProtocolSection["allowKeepAlive"] = true;
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")
Dim httpProtocolSection As ConfigurationSection = config.GetSection("system.webServer/httpProtocol")
httpProtocolSection("allowKeepAlive") = True
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var httpProtocolSection = adminManager.GetAdminSection("system.webServer/httpProtocol", "MACHINE/WEBROOT/APPHOST/Default Web Site");
httpProtocolSection.Properties.Item("allowKeepAlive").Value = true;
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set httpProtocolSection = adminManager.GetAdminSection("system.webServer/httpProtocol", "MACHINE/WEBROOT/APPHOST/Default Web Site")
httpProtocolSection.Properties.Item("allowKeepAlive").Value = True
adminManager.CommitChanges()