HTTP-Protokolleinstellungen <httpProtocol>
Übersicht
Die <httpProtocol>
-Element konfiguriert HTTP-Keep-Alive-Verbindungen sowie benutzerdefinierte und umleitungsbezogene Antwortheader, die Internetinformationsdienste 7 (Internet Information Services, IIS) an Webclients sendet.
Ein Browser übermittelt in der Regel mehrere Anforderungen, um eine gesamte Webseite herunterzuladen. Zur Verbesserung der Serverleistung fordern die meisten Webbrowser an, dass der Server die Verbindung während dieser Anforderungen aufrechterhalten soll. Dieses Feature wird als HTTP-Keep-Alive bezeichnet. Ohne HTTP-Keep-Alives benötigt ein Browser, der zahlreiche Anforderungen für eine Seite übermittelt, die mehrere Elemente enthält (beispielsweise Grafiken), möglicherweise für jedes Element eine separate Verbindung. Diese zusätzlichen Anforderungen und Verbindungen erfordern wiederum zusätzliche Serveraktivitäten und Ressourcen, wodurch sich die Servereffizienz verringert. Die zusätzlichen Verbindungen beeinträchtigen auch erheblich die Geschwindigkeit und Reaktionsfähigkeit eines Browsers – insbesondere bei Verwendung einer langsamen Verbindung.
Kompatibilität
Version | Hinweise |
---|---|
IIS 10.0 | Das <httpProtocol> -Element wurde in IIS 10.0 nicht geändert. |
IIS 8.5 | Das <httpProtocol> -Element wurde in IIS 8.5 nicht geändert. |
IIS 8.0 | Das <httpProtocol> -Element wurde in IIS 8.0 nicht geändert. |
IIS 7.5 | Das <httpProtocol> -Element wurde in IIS 7.5 nicht geändert. |
IIS 7.0 | Das <httpProtocol> -Element wurde in IIS 7.0 eingeführt. |
IIS 6.0 | Das allowKeepAlive-Attribut des <httpProtocol> -Elements ersetzt die AllowKeepAlive-Metabasiseigenschaft von IIS 6.0. |
Setup
Das <httpProtocol>
-Element ist in der Standardinstallation von IIS 7 enthalten.
Gewusst wie
Aktivieren von HTTP-Keep-Alives für eine Website oder Anwendung
Öffnen Sie Internetinformationsdienste-Manager (IIS-Manager):
Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:
- Klicken Sie auf der Taskleiste auf Server-Manager > Tools > Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows 8 oder Windows 8.1:
- Halten Sie die WINDOWS-TASTE gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
- Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:
- Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Vorgehensweise unter Windows Vista oder Windows 7:
- Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
- Doppelklicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS-Manager).
Navigieren Sie im Bereich Verbindungen zu dem Element, für das Sie HTTP-Keep-Alives aktivieren möchten. Dabei kann es sich um eine Site, eine Anwendung oder ein Verzeichnis handeln.
Doppelklicken Sie im Bereich Start auf HTTP-Antwortheader.
Klicken Sie im Bereich HTTP-Antwortheader im Bereich Aktionen auf Allgemeine Header festlegen....
Aktivieren Sie im Dialogfeld Allgemeine HTTP-Antwortheader festlegen das Kontrollkästchen zum Aktivieren von HTTP-Keep-Alives, und klicken Sie dann auf OK.
Konfiguration
Attribute
Attribut | Beschreibung |
---|---|
allowKeepAlive |
Optionales boolesches Attribut. Gibt an, ob die Keep-Alive-Verarbeitung zugelassen wird (true) oder nicht (false). Der Standardwert ist true . |
Untergeordnete Elemente
Element | Beschreibung |
---|---|
customHeaders |
Konfiguriert benutzerdefinierte Antwortheader, die in Antworten vom Webserver zurückgegeben werden. |
redirectHeaders |
Konfiguriert Antwortheader, die nur in Antworten zurückgegeben werden, wenn der Webserver Anforderungen umleitet. |
Konfigurationsbeispiel
In den folgenden Codebeispiele werden HTTP-Keep-Alives für die Standardwebsite aktiviert.
<configuration>
<system.webServer>
<httpProtocol allowKeepAlive="true" />
</system.webServer>
</configuration>
Hinweis
Das folgende <httpProtocol>
-Standardelement wird in IIS 7 in der Datei „ApplicationHost.config“ konfiguriert.
<httpProtocol>
<customHeaders>
<clear />
<add name="X-Powered-By" value="ASP.NET" />
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
Beispielcode
In den folgenden Codebeispiele werden HTTP-Keep-Alives für die Standardwebsite aktiviert.
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()