Question d'entretien pour Ingénieur logiciel

Expliquez-moi tout ce qui se passe quand un client envoie une requête HTTPS à votre service.

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Le client résout le nom d'hôte via le DNS, ouvre une connexion TCP vers l'adresse résolue ou en réutilise une existante, puis mène une poignée de main TLS qui valide le certificat serveur et convient des clés de session. La requête chiffrée traverse les répartiteurs de charge et les proxys jusqu'à votre application, qui la traite et écrit une réponse sur la même connexion. Le keep alive et le multiplexage HTTP/2 permettent aux requêtes suivantes de sauter l'essentiel de la mise en place.

Pourquoi les recruteurs posent cette question

C'est une question d'étendue, et le recruteur suivra votre réponse jusqu'à la couche sur laquelle vous semblez le moins sûr. Les bonnes réponses traversent proprement le DNS, le transport, TLS et la chaîne de proxys, et pointent d'où viennent réellement la latence et les pannes, à savoir en général l'établissement de connexion, un cache DNS périmé, ou quelque chose au milieu qui termine TLS et réécrit les en-têtes.

Comment structurer votre réponse

  • Avancez couche par couche : DNS, TCP, TLS, HTTP, application.
  • Dites ce que la poignée de main TLS prouve et ce qu'elle convient.
  • Mentionnez la chaîne de proxys ou de répartiteurs devant l'application.
  • Signalez où la réutilisation de connexion supprime l'essentiel du coût.

Exemple de réponse

Exemple parlé, à la première personne

D'abord le client a besoin d'une adresse, donc il regarde son propre cache, puis le résolveur du système, puis un résolveur récursif, et récupère une IP avec une durée de vie. Ensuite une poignée de main TCP vers cette adresse, sauf s'il y a déjà une connexion ouverte dans le pool, ce qui est en général le cas. Puis TLS : le serveur présente une chaîne de certificats, le client la valide contre son magasin de confiance et vérifie que le nom d'hôte correspond, et ils conviennent des clés de session. Avec TLS 1.3, c'est un aller-retour, ou zéro sur une session reprise. La requête part chiffrée, et en pratique elle touche d'abord un CDN ou un répartiteur de charge, qui termine en général TLS et ouvre sa propre connexion vers mon service. Mon application la traite et la réponse revient par le même chemin. La raison pour laquelle je tiens à la séquence, c'est la latence : sur mobile, la première requête paie le DNS plus TCP plus TLS avant qu'un seul octet de mon code ne tourne, donc la réutilisation de connexion est souvent le plus gros gain disponible.

Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.

Voir comment ça marche

Questions de relance à prévoir

  • Qu'est-ce qui change si le répartiteur de charge termine TLS ?
  • Comment déboguez-vous une erreur de certificat que vous ne voyez que depuis un seul client ?
  • Que corrige le multiplexage HTTP/2 que le keep alive ne corrigeait pas ?

Autres questions pour Ingénieur logiciel

Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.

Prédire mes questions

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot