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

  1. Ö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).
  2. 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.

  3. Doppelklicken Sie im Bereich Start auf HTTP-Antwortheader.
    Screenshot of the Default Web Site Home page. The H T T P Response Headers icon is highlighted.

  4. Klicken Sie im Bereich HTTP-Antwortheader im Bereich Aktionen auf Allgemeine Header festlegen....
    Screenshot of the H T T P Response Headers page.

  5. Aktivieren Sie im Dialogfeld Allgemeine HTTP-Antwortheader festlegen das Kontrollkästchen zum Aktivieren von HTTP-Keep-Alives, und klicken Sie dann auf OK.
    Screenshot of the Set Common H T T P Response Headers dialog box.

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()