Http Protocol Settings <httpProtocol>

Panoramica

L'elemento <httpProtocol> configura le connessioni keep-alive HTTP e le intestazioni di risposta personalizzate e di reindirizzamento inviate da Internet Information Services (IIS) 7 ai client Web.

Un browser esegue in genere più richieste per scaricare un'intera pagina Web. Per migliorare le prestazioni del server, la maggior parte dei Web browser richiede che il server mantenga aperta la connessione tra queste più richieste, ovvero una funzionalità nota come keep-alive HTTP. Senza keep-alive HTTP, un browser che effettua molte richieste per una pagina contenente più elementi, ad esempio la grafica, potrebbe richiedere una connessione separata per ogni elemento. Queste richieste e connessioni aggiuntive richiedono attività e risorse aggiuntive del server, riducendo l'efficienza del server. Le connessioni aggiuntive rendono anche un browser molto più lento e meno reattivo, soprattutto in una connessione lenta.

Compatibilità

Versione Note
IIS 10.0 L'elemento <httpProtocol> non è stato modificato in IIS 10.0.
IIS 8,5 L'elemento <httpProtocol> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <httpProtocol> non è stato modificato in IIS 8.0.
IIS 7,5 L'elemento <httpProtocol> non è stato modificato in IIS 7.5.
IIS 7.0 L'elemento <httpProtocol> è stato introdotto in IIS 7.0.
IIS 6.0 L'attributo allowKeepAlive dell'elemento <httpProtocol> sostituisce la proprietà metabase AllowKeepAlive di IIS 6.0.

Installazione

L'elemento <httpProtocol> è incluso nell'installazione predefinita di IIS 7.

Procedure

Come abilitare keep-alive HTTP per un sito Web o un'applicazione

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni passare al sito, all'applicazione o alla directory per cui si desidera abilitare keep-alive HTTP.

  3. Nel riquadro Home fare doppio clic su Intestazioni risposta HTTP.
    Screenshot della home page del sito Web predefinito. L'icona Intestazioni risposta H T T P è evidenziata.

  4. Nel riquadro Intestazioni risposta HTTP fare clic su Imposta intestazioni comuni ... nel riquadro Azioni .
    Screenshot della pagina Intestazioni risposta H T T P.

  5. Nella finestra di dialogo Imposta intestazioni di risposta HTTP comuni selezionare la casella per abilitare keep-alive HTTP e quindi fare clic su OK.
    Screenshot della finestra di dialogo Imposta intestazioni risposta T T P comuni.

Configurazione

Attributi

Attributo Descrizione
allowKeepAlive Attributo booleano facoltativo.

Specifica se l'elaborazione keep-alive è consentita (true) o meno (false).

Il valore predefinito è true.

Elementi figlio

Elemento Descrizione
customHeaders Configura intestazioni di risposta personalizzate restituite nelle risposte dal server Web.
redirectHeaders Configura le intestazioni di risposta restituite nelle risposte solo quando il server Web reindirizza le richieste.

Esempio di configurazione

Gli esempi di codice seguenti abilitano keep-alive HTTP per il sito Web predefinito.

<configuration>
   <system.webServer>
      <httpProtocol allowKeepAlive="true" />
   </system.webServer>
</configuration>

Nota

L'elemento predefinito <httpProtocol> seguente viene configurato nel file ApplicationHost.config in IIS 7.

<httpProtocol>
   <customHeaders>
      <clear />
      <add name="X-Powered-By" value="ASP.NET" />
   </customHeaders>
   <redirectHeaders>
      <clear />
   </redirectHeaders>
</httpProtocol>

Codice di esempio

Gli esempi di codice seguenti abilitano keep-alive HTTP per il sito Web predefinito.

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