phhsnews.com


phhsnews.com / Les serveurs Web ne disposent-ils que d'un site Web?

Les serveurs Web ne disposent-ils que d'un site Web?


Lorsque vous commencez à apprendre comment les noms de domaine, les adresses IP, les serveurs Web et les sites Web s'accordent, ils peuvent être déroutants ou écrasante parfois. Comment tout est-il mis en place pour fonctionner si bien?

La session de questions-réponses d'aujourd'hui nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web de questions-réponses.

Photo gracieuseté de Rosmarie Voegtli (Flickr).

La question

SuperUser lecteur utilisateur3407319 veut savoir si les serveurs Web ne détiennent chacun qu'un site:

Basé sur ce que je comprends du DNS et liant un nom de domaine avec l'adresse IP du Serveur Web un site Web est stocké sur, cela signifie-t-il que chaque serveur Web ne peut contenir qu'un site Web? Si les serveurs Web hébergent plus d'un site Web, comment tout cela peut-il être résolu pour que je puisse accéder au site Web que je veux sans aucun problème ou confusion?

Les serveurs Web ne détiennent chacun qu'un site Web ou en détiennent-ils plus? ?

La réponse

SuperUser contributeur Bob a la réponse pour nous:

Fondamentalement, le navigateur inclut le nom de domaine dans la requête HTTP afin que le serveur web sache quel domaine a été demandé et peut répondre en conséquence. Requêtes HTTP

Voici comment se passe votre requête

1.

L'utilisateur fournit une URL au format // host: port / path. 2.

Le navigateur extrait la partie hôte (domaine) de l'URL et la traduit en une adresse IP (si nécessaire) dans un processus connu sous le nom de résolution de nom. Cette traduction peut se faire via DNS, mais elle n'est pas obligatoire (par exemple, le fichier hosts local sur les systèmes d'exploitation courants contourne DNS). 3.

Le navigateur ouvre une connexion TCP au port spécifié, ou par défaut au port 80 sur cette adresse IP. 4.

Le navigateur envoie une requête HTTP. Pour HTTP / 1.1, cela ressemble à ceci: L'en-tête de l'hôte est standard et requis dans HTTP / 1.1. Il n'a pas été spécifié dans la spécification HTTP / 1.0, mais certains serveurs le supportent de toute façon.

A partir de là, le serveur web dispose de plusieurs informations qu'il peut utiliser pour décider de la réponse. Notez qu'il est possible qu'un seul serveur Web soit lié à plusieurs adresses IP

L'adresse IP demandée, à partir du socket TCP (l'adresse IP du client est également disponible, mais elle est rarement utilisée, et parfois pour blocking / filtering)

  • Le port demandé, à partir du socket TCP
  • Le nom d'hôte demandé, tel que spécifié dans l'en-tête du navigateur dans la requête HTTP
  • Le chemin demandé
  • Tous les autres en-têtes (cookies , etc.)
  • Comme vous semblez l'avoir remarqué, la configuration d'hébergement partagé la plus courante de nos jours place plusieurs sites Web sur une même adresse IP: la combinaison de port, laissant seulement l'hôte pour faire la différence entre les sites.

un hôte virtuel basé sur le nom dans Apache-land, tandis que Nginx les appelle les noms de serveurs dans les blocs de serveur, et IIS préfère le serveur virtuel

Qu'en est-il de HTTPS?

HTTPS est un peu différent. Tout est identique jusqu'à l'établissement de la connexion TCP, mais après cela un tunnel TLS crypté doit être établi. L'objectif est de ne pas divulguer d'informations sur la requête.

Afin de vérifier que le serveur Web possède réellement ce domaine, le serveur Web doit envoyer un certificat signé par un tiers de confiance. Le navigateur compare alors ce certificat avec le domaine demandé.

Cela présente un problème. Comment le serveur Web sait-il quel certificat hôte / site Web envoyer s'il a besoin de le faire avant la réception de la requête HTTP?

Traditionnellement, ceci a été résolu en ayant une adresse IP dédiée (ou port) pour chaque site nécessitant HTTPS. Évidemment, cela devient problématique car nous manquons d'adresses IPv4

Entrez SNI (Server Name Indication). Le navigateur transmet maintenant le nom d'hôte pendant les négociations TLS, de sorte que le serveur Web dispose de ces informations assez tôt pour envoyer le bon certificat. Côté serveur Web, la configuration est très similaire à la configuration des hôtes virtuels HTTP.

L'inconvénient est que le nom d'hôte est maintenant passé en texte brut avant le cryptage, et qu'il s'agit essentiellement d'informations divulguées. Cela est généralement considéré comme un compromis acceptable bien que le nom d'hôte soit normalement exposé dans une requête DNS.

Que faire si vous demandez un site Web par adresse IP uniquement?

Ce que fait le serveur Web lorsqu'il ne sait pas L'hôte spécifique que vous avez demandé dépend de l'implémentation et de la configuration du serveur Web. Généralement, un site Web "par défaut", "fourre-tout" ou "repli" est spécifié pour répondre à toutes les demandes qui ne spécifient pas explicitement un hôte.

Ce site Web par défaut peut être son propre site Web indépendant ( affiche souvent un message d'erreur), ou il pourrait être l'un des autres sites Web sur le serveur web en fonction des préférences de l'administrateur du serveur web.

Vous avez quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.



Comment placer vos haut-parleurs pour optimiser votre expérience de cinéma maison

Comment placer vos haut-parleurs pour optimiser votre expérience de cinéma maison

Que vous installiez vos haut-parleurs d'ordinateur ou un ensemble de cinéma maison complexe, vous comprendrez l'art et la science des canaux et du placement des enceintes. étape la plus critique dans la jouissance de votre nouveau système de son. Lisez la suite pendant que nous vous guidons à travers un cours accéléré dans la configuration du son surround Pourquoi devrais-je m'inquiéter?

(how-to)

Comment configurer une nouvelle carte SD sous Android pour un stockage supplémentaire

Comment configurer une nouvelle carte SD sous Android pour un stockage supplémentaire

Votre appareil Android est-il trop vide? Si votre téléphone dispose d'un emplacement pour carte MicroSD, vous pouvez l'utiliser pour étendre votre espace pour la musique, les films ou même les applications, grâce aux fonctionnalités améliorées de la carte SD dans Android 6.0 Marshmallow. Cela semble être un gros changement pour Google.

(how-to)