Interviewfrage für Softwareentwickler

Erklär mir Schritt für Schritt alles, was passiert, wenn ein Client einen HTTPS-Request an deinen Service schickt.

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

Der Client löst den Hostnamen per DNS auf, öffnet eine TCP-Verbindung zur aufgelösten Adresse oder nutzt eine bestehende weiter, und macht dann einen TLS-Handshake, der das Serverzertifikat validiert und Session Keys aushandelt. Der verschlüsselte Request läuft über Load Balancer und Proxies zu deiner Anwendung, die ihn verarbeitet und eine Antwort über dieselbe Verbindung zurückschreibt. Keep-Alive und HTTP/2-Multiplexing lassen spätere Requests den größten Teil des Setups überspringen.

Warum Interviewer das fragen

Das ist eine Breitenfrage, und der Interviewer folgt deiner Antwort bis zu der Schicht, bei der du am unsichersten klingst. Starke Antworten laufen sauber durch DNS, Transport, TLS und die Proxy-Kette und zeigen, wo Latenz und Fehler tatsächlich herkommen, nämlich meist aus dem Verbindungsaufbau, veraltetem DNS-Caching oder etwas in der Mitte, das TLS terminiert und Header umschreibt.

So baust du deine Antwort auf

  • Geh Schicht für Schicht: DNS, TCP, TLS, HTTP, Anwendung.
  • Sag, was der TLS-Handshake beweist und was er aushandelt.
  • Erwähn die Proxy- oder Load-Balancer-Kette vor der App.
  • Zeig, wo Verbindungswiederverwendung den größten Teil der Kosten streicht.

Beispielantwort

Gesprochenes Beispiel, erste Person

Zuerst braucht der Client eine Adresse, er schaut also in seinen eigenen Cache, dann in den Resolver des Betriebssystems, dann zu einem rekursiven Resolver, und bekommt eine IP mit einer Time to Live zurück. Dann ein TCP-Handshake zu dieser Adresse, außer es liegt schon eine offene Verbindung im Pool, was meistens der Fall ist. Dann TLS: Der Server präsentiert eine Zertifikatskette, der Client validiert sie gegen seinen Trust Store und prüft, ob der Hostname passt, und beide handeln Session Keys aus. Mit TLS 1.3 ist das ein Round Trip, oder null bei einer wiederaufgenommenen Session. Der Request geht verschlüsselt raus und trifft in der Praxis zuerst auf ein CDN oder einen Load Balancer, der meist TLS terminiert und eine eigene Verbindung zu meinem Service öffnet. Meine App verarbeitet ihn und die Antwort kommt denselben Weg zurück. Der Grund, warum mich die Reihenfolge interessiert, ist Latenz: Auf Mobilgeräten bezahlt der erste Request DNS plus TCP plus TLS, bevor ein einziges Byte meines Codes läuft, Verbindungswiederverwendung ist also oft der größte verfügbare Gewinn.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Was ändert sich, wenn der Load Balancer TLS terminiert?
  • Wie würdest du einen Zertifikatsfehler debuggen, den du nur von einem Client aus siehst?
  • Was repariert HTTP/2-Multiplexing, was Keep-Alive nicht konnte?

Weitere Fragen für Softwareentwickler

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen