Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. ASP.NET avec C# sous Visual Studio 2022
  3. Les sites web ASP.NET
Extrait - ASP.NET avec C# sous Visual Studio 2022 Conception et développement d'applications web
Extraits du livre
ASP.NET avec C# sous Visual Studio 2022 Conception et développement d'applications web Revenir à la page d'achat du livre

Les sites web ASP.NET

Le modèle de compilation

1. Du CGI au modèle ASP.NET 1.X

Pour appréhender le modèle de compilation d’ASP.NET, nous retraçons l’évolution des applications web.

Le protocole HTTP a été mis au point conjointement au format des pages HTML. L’idée s’est très vite imposée que le contenu des pages devait être généré à la demande, notamment pour présenter des données issues d’une base SQL.

images/02pp01.png

a. L’interface CGI

La première technique disponible fut le CGI (Common Gateway Interface). En plus des pages HTML statiques - fichiers dont le nom porte l’extension .html, le serveur web héberge des programmes exécutables. Une configuration particulière indique au serveur que ces programmes sont à exécuter lorsque certaines URL sont demandées. Le programme exécutable invoqué par le serveur décode la requête HTTP en effectuant une lecture sur le flux d’entrée standard (stdin en langage C) et en analysant des variables environnementales. La réponse HTTP est ensuite écrite sur le flux de sortie standard (stdout) ; le serveur insère parfois des en-têtes HTTP et le tout est expédié au navigateur. Bien qu’indispensables à la création d’applications web, les CGI induisent de nombreuses contraintes ; le langage de programmation employé, le C ou souvent, le PERL, n’est pas vraiment adapté à la situation.

Aussi, l’interface CGI engendre trop d’implémentations spécifiques qui nuisent à la robustesse de la solution. Enfin, les CGI ne sont pas performants.

Afin d’illustrer la complexité du développement d’un CGI, voici, en langage C, le code d’un programme donnant l’heure à...

Le rôle du serveur web

1. Le serveur IIS

Le filtre ISAPI pour ASP.NET

Le serveur Internet Information Services (IIS) est très bien intégré à l’ensemble du système d’exploitation Windows. Il assure de nombreuses tâches même si la prise en charge du protocole HTTP reste son activité principale.

C’est le serveur web qui reçoit les requêtes HTTP émises par les navigateurs. Ces derniers ne distinguent pas les technologies serveur, ils n’appréhendent que les aspects clients HTML, JavaScript et HTTP.

Lorsqu’une page portant une extension particulière (.asp ou .aspx, par exemple) est demandée au serveur, celui-ci délègue son exécution au serveur d’applications concerné (ASP ou ASP.NET), puis il renvoie le flux HTML au navigateur. D’un point de vue HTTP, le procédé est comparable à l’interface CGI.

Le serveur d’applications ASP.NET est enregistré auprès de IIS en tant que filtre ISAPI.

2. Le serveur de développement ASP.NET

Microsoft propose une alternative à IIS qui n’est pas disponible avec toutes les distributions de Windows. Le serveur web IIS Express reprend du service. Il s’agit d’un serveur de développement et de tests. Il n’est pas prévu pour l’exploitation, à la différence de IIS Standard disponible avec les éditions serveur de Windows.

Le serveur de développement ASP.NET permet de créer un site web ASP.NET dans n’importe quel répertoire.

Au lancement d’une page du site par la touche [F5], le serveur de développement se lie à un port qui dépend du projet. La raison de ce fonctionnement est sans aucun doute de dissuader son utilisation comme serveur de production. Une icône apparaît sur la barre des tâches...

Le pipeline HTTP de IIS

1. Fonctionnement de IIS

Intéressons-nous à présent au fonctionnement du serveur web IIS. Le protocole HTTP repose sur un mécanisme de questions et de réponses entre l’agent (le navigateur) et le serveur. Ce mécanisme ne varie pas d’une technologie de page dynamique à l’autre.

a. Premiers pas sous HTTP avec Telnet

Pour mettre en évidence les échanges entre client et serveur, il est possible d’utiliser Telnet. Telnet est comparable au Minitel, mais sur la base d’un protocole TCP/IP. Il s’agit donc d’un terminal passif (écran et clavier) que l’on peut heureusement exploiter sur n’importe quel port. En ouvrant une session sur le port 80, il est alors possible de se faire passer pour un agent HTTP.

Telnet se lance à partir de la ligne de commande et il est conseillé d’activer l’écho local avant d’effectuer des requêtes HTTP. En effet, le protocole Telnet prévoit que le serveur demande ou pas au client d’afficher ce qui est saisi au clavier. Le protocole Telnet sait aussi interpréter la touche d’effacement de caractère. Mais ce n’est absolument pas le cas du protocole HTTP qui est généralement exploité par un agent automatique. Dans les manipulations qui suivent, une erreur est saisie au niveau de la requête et il faudra tout reprendre depuis le début. L’écho local force l’utilitaire à afficher au fur et à mesure les caractères saisis depuis le clavier, même si le serveur ne le demande pas expressément.

Voici la syntaxe Telnet d’activation de l’écho local sous Windows XP et 7 :

set localecho 

La commande établissant la connexion au serveur sur le port 80 est identique entre les deux versions de l’utilitaire.

open localhost...