Hi,
ich habe ein Anliegen, wo ich nicht weiterkomme. Für eine Schularbeit bzw. eine Projektarbeit sollen wir eine Webseite erstellen. Ich möchte eine Webseite erstellen, die den Time to first Byte misst.
So ählinch wie diese Seite hier: https://www.bytecheck.com/
ich kann natürlich deine Kenntnisse schwer einschätzen, aber ich denke, für ein Schulprojekt ist das um einige Nummern zu hoch angesetzt. Das ist eine technisch sehr anspruchsvolle Aufgabenstellung und hat mit der eigentlichen Aufgabe "ein Webseite erstellen" nur noch wenig zu tun. Es ist Softwareentwicklung auf Systemebene.
Das ist etwa so, als solltet ihr im Kunst-Unterricht ein Portrait malen, und du fängst an, indem du ins Chemielabor gehst und dir die Farben aus verschiedenen Pigmenten, Lösungsmitteln und anderen Zusätzen selbst herstellst. Zweifellos interessant und anspruchsvoll, aber - Thema verfehlt.
Mir ist jetzt nicht ganz klar, wie die das machen.
Die müssen einen HTTP(S)-Client haben, der jeden einzelnen Schritt des HTTP-Requests mit einem exakten Timestamp protokolliert. So ähnlich tun das die Developer-Tools von z.B. Firefox wohl auch.
Linux kann ich einigermaßen
Was bedeutet das?
Mir geht es darum, den Request-Response-Zyklus genau aufzudröseln in DNS-Lookup, Connect, Handshake, Wait (?) und Receive und was es da sonst noch alles gibt.
Das heißt, du kannst eben keine fertige Bibliothek nehmen, sondern muss den Ablauf des HTTP-Requests komplett selbst implementieren. Und dabei dran denken, auch alle möglichen Fehler irgendwie zu behandeln.
Wobei ich auch nicht genau weiß, was eigetnlich das Connect (um bei dem Beispiel von bytecheck zu bleiben), Send und Wait eigentlich genau sein soll.
Connect: Die Socket-Verbindung ist aufgebaut.
Send: Der Client sendet den HTTP-Request über die eben hergestellte Verbindung.
Wait: Der Client wartet auf die Antwort des Servers.
Weiß man da als Profi denn alles so genau, oder ist das eher unnützes Wissen?
Kommt drauf an. Profi für welches Wissensgebiet? Als Web-Developer, der "nur" Webseiten erstellt, muss man das sicher nicht alles wissen. Als Software-Entwickler auf Anwendungsebene auch nicht unbedingt. Als Programmierer, der auch ab und zu mal Treiber für bestimmte Netzwerkprotokolle schreibt, aber schon.
Als Autofahrer muss man schließlich auch nicht wissen, wie ein Automatik-Getriebe genau funktioniert. Nur wie man damit umgeht.
Ciao,
Martin
Ich stamme aus Ironien, einem Land am sarkastischen Ozean.