Der Fully Qualified Domain Name (FQDN) ist der vollständige und eindeutige Name eines Computers oder Hosts im Internet oder in einem lokalen Netzwerk. Er besteht aus mehreren Teilen, die eine hierarchische Struktur widerspiegeln.
Ein FQDN setzt sich aus drei Hauptbestandteilen zusammen:
Hostname – Der spezifische Name eines Computers oder Dienstes (z. B. www
).
Domainname – Der Name der übergeordneten Domain (z. B. example
).
Top-Level-Domain (TLD) – Die oberste Ebene der Domainstruktur (z. B. .com
).
Beispiel eines FQDN:
👉 www.example.com.
www
→ Hostname
example
→ Domainname
.com
→ Top-Level-Domain
Der abschließende Punkt (.
) ist optional und steht für die Root-Domain des DNS-Systems.
✅ Eindeutigkeit: Jeder FQDN ist weltweit einzigartig und verweist auf eine bestimmte Ressource im Internet.
✅ DNS-Auflösung: Er wird von DNS-Servern genutzt, um IP-Adressen für Webseiten und Server zu finden.
✅ SSL-Zertifikate: Ein FQDN wird oft in SSL/TLS-Zertifikaten verwendet, um sichere Verbindungen zu gewährleisten.
✅ E-Mail-Zustellung: Mailserver verwenden FQDNs, um Mails an die richtigen Hosts zu senden.
FQDN: mail.google.com
(vollständig spezifiziert)
Einfache Domain: google.com
(kann mehrere Hosts enthalten, z. B. www
, mail
, ftp
)
Zusammengefasst ist der FQDN die vollständige Adresse eines Geräts oder Dienstes im Internet, während eine einfache Domain eine allgemeine Adresse ist.
Ein Rate-Limit ist eine Einschränkung der Anzahl von Anfragen, die ein Benutzer oder ein System innerhalb eines bestimmten Zeitraums an einen Server oder eine API senden darf. Es dient dazu, Überlastungen zu verhindern, Ressourcen fair zu verteilen und Missbrauch (z. B. DDoS-Angriffe oder Spam) zu vermeiden.
Fixed Window – Eine feste Anzahl von Anfragen innerhalb eines Zeitfensters (z. B. max. 100 Anfragen pro Minute).
Sliding Window – Eine gleitende Begrenzung basierend auf den letzten Anfragen.
Token Bucket – Nutzer erhalten eine bestimmte Anzahl von „Tokens“ für Anfragen, die sich mit der Zeit regenerieren.
Leaky Bucket – Anfragen werden in einer Warteschlange verarbeitet, die nur begrenzt abfließen kann.
Eine API erlaubt maximal 60 Anfragen pro Minute pro Benutzer.
Eine Webseite blockiert eine IP nach 10 fehlgeschlagenen Logins in 5 Minuten.
Falls du Rate-Limits in deiner Webentwicklung umsetzen willst, gibt es dafür verschiedene Techniken und Tools wie Redis, NGINX rate limiting oder Middleware in Frameworks wie Laravel oder Express.js.
Ein Spider (auch Webcrawler oder Bot genannt) ist ein automatisiertes Programm, das das Internet durchsucht, um Webseiten zu indexieren. Diese Programme werden oft von Suchmaschinen wie Google, Bing oder Yahoo eingesetzt, um neue oder aktualisierte Inhalte zu entdecken und in den Suchindex aufzunehmen.
Startpunkt: Der Spider beginnt mit einer Liste von URLs, die gecrawlt werden sollen.
Analyse: Er ruft den HTML-Code der Webseite ab und analysiert die Inhalte, Links und Metadaten.
Folgen von Links: Er folgt den auf der Seite gefundenen Links, um neue Seiten zu entdecken.
Speicherung: Die gesammelten Daten werden an die Datenbank der Suchmaschine weitergeleitet, wo sie für die Indexierung verarbeitet werden.
Wiederholung: Der Vorgang wird regelmäßig wiederholt, um aktuelle Inhalte zu erfassen.
Suchmaschinenoptimierung (SEO)
Preisvergleichsportale
Webarchivierung (z. B. durch die Wayback Machine)
Automatische Inhaltsanalyse für KI-Modelle
Manche Webseiten setzen eine robots.txt-Datei ein, um festzulegen, welche Bereiche von einem Spider gecrawlt werden dürfen und welche nicht.
Ein Crawler (auch Webcrawler, Spider oder Bot genannt) ist ein automatisiertes Programm, das das Internet durchsucht und Webseiten analysiert. Es folgt Links von Seite zu Seite und sammelt dabei Informationen.
Suchmaschinen (z. B. Googlebot von Google) – Indizieren Webseiten, damit sie in Suchmaschinen-Ergebnissen erscheinen.
Preisvergleichsportale – Durchsuchen Onlineshops nach aktuellen Preisen und Produkten.
SEO-Tools – Analysieren Webseiten auf technische Fehler oder Verbesserungspotenzial.
Datenanalyse & Monitoring – Beobachten Webseiteninhalte, z. B. für Marktforschung oder Konkurrenzanalysen.
Archivierung – Speichern Webseiten für spätere Referenzen (z. B. Internet Archive).
Startet mit einer Liste von URLs.
Ruft Webseiten auf und speichert Inhalte (Text, Metadaten, Links).
Folgt den Links auf den Seiten und wiederholt den Vorgang.
Speichert oder verarbeitet die gesammelten Daten je nach Zweck.
Viele Webseiten setzen die robots.txt-Datei ein, um zu steuern, welche Inhalte von Crawlern besucht oder ignoriert werden sollen.
Ein Internationalized Resource Identifier (IRI) ist eine erweiterte Version eines Uniform Resource Identifier (URI), die Unicode-Zeichen außerhalb des ASCII-Zeichensatzes unterstützt. Dadurch können auch nicht-lateinische Schriftzeichen (z. B. chinesische, arabische oder kyrillische Zeichen) sowie Sonderzeichen in Webadressen und anderen Identifikatoren verwendet werden.
A-Z
, 0-9
, -
, .
und _
) beschränkt sind, erlauben IRIs Zeichen aus dem gesamten Unicode-Zeichensatz.https://de.wikipedia.org/wiki/Überblick
https://de.wikipedia.org/wiki/%C3%9Cberblick
Ü
als %C3%9C
kodiert)IRIs sind in RFC 3987 definiert und werden in modernen Webtechnologien wie HTML5, XML und RDF unterstützt.
IRIs machen das Internet sprachlich inklusiver, indem sie Webseiten und Ressourcen mit nicht-lateinischen Zeichen leichter zugänglich machen.
Ein Backlink ist ein Link, der von einer externen Website auf deine eigene Website verweist. Man kann sich das wie eine Empfehlung oder einen Verweis vorstellen: Wenn eine andere Website auf deine Seite verlinkt, signalisiert das den Suchmaschinen, dass deine Inhalte relevant und vertrauenswürdig sein könnten.
SEO-Ranking-Faktor:
Suchmaschinen wie Google bewerten Backlinks als eines der wichtigsten Kriterien für die Relevanz und Autorität einer Website. Je mehr hochwertige Backlinks eine Seite hat, desto besser kann sie in den Suchergebnissen ranken.
Traffic-Quelle:
Backlinks bringen direkten Traffic auf deine Seite, wenn Nutzer auf den Link klicken.
Reputation und Vertrauen:
Links von bekannten und vertrauenswürdigen Seiten (z. B. Nachrichtenportalen oder Branchenführern) stärken die Glaubwürdigkeit deiner Website.
DoFollow-Backlinks:
Diese übertragen Linkjuice (Linkkraft), der das SEO-Ranking positiv beeinflusst.
NoFollow-Backlinks:
Diese signalisieren den Suchmaschinen, dass sie dem Link nicht folgen sollen. Sie beeinflussen das Ranking weniger, können aber trotzdem Traffic bringen.
In der Softwareentwicklung bezeichnet Semantik die Bedeutung oder den Zweck von Code oder Daten. Es geht darum, was ein Programm tun soll, im Gegensatz zur Syntax, die beschreibt, wie der Code geschrieben wird.
1. Programmiersprachen:
a = 5
b = 0
print(a / b)
2. HTML-Semantik:
<header> statt <div> für die Kopfzeile einer Webseite.
3. Semantische Modelle:
In der Softwareentwicklung bezeichnet Syntax die formalen Regeln, die vorschreiben, wie Programmcode geschrieben werden muss, damit er von einem Compiler oder Interpreter korrekt interpretiert wird. Diese Regeln umfassen die Struktur, die Anordnung und die Verwendung von Sprachelementen wie Schlüsselwörtern, Operatoren, Klammern, Variablen und mehr.
1. Sprachspezifische Regeln
Jede Programmiersprache hat ihre eigene Syntax. Was in einer Sprache gültig ist, kann in einer anderen zu Fehlern führen.
Beispiel:
Python verlangt Einrückungen, während Java geschweifte Klammern verwendet.
Python:
if x > 0:
print("Positive Zahl")
Java:
if (x > 0) {
System.out.println("Positive Zahl");
}
2. Syntaxfehler
Syntaxfehler treten auf, wenn der Code nicht den Regeln der Sprache entspricht. Sie verhindern, dass das Programm ausgeführt wird.
Beispiel (Syntaxfehler in Python):
print "Hello, World!" # Fehlende Klammern
3. Bedeutung vs. Struktur (Syntax vs. Semantik)
4. Werkzeuge zur Überprüfung der Syntax
Variablenbenennung: Variablennamen dürfen keine Leerzeichen oder Sonderzeichen enthalten.
my_variable = 10 # korrekt
my-variable = 10 # Syntaxfehler
Schließen von Blöcken:
{ ... }
Syntax ist in der Softwareentwicklung essenziell, um Code verständlich, fehlerfrei und ausführbar zu machen. Sie definiert die "Grammatik" der Programmiersprache, während die Logik (Semantik) bestimmt, wie der Code arbeitet.
Duplicate Code (auf Deutsch: "doppelter Code" oder "Code-Duplizierung") bezeichnet das mehrfache Vorhandensein identischer oder sehr ähnlicher Codeabschnitte in einem Programm. Es wird als schlechte Praxis angesehen, weil es zu Problemen in der Wartbarkeit, Lesbarkeit und Fehleranfälligkeit des Codes führen kann.
1. Exakter Duplikat: Der Code ist vollständig identisch. Dies tritt häufig auf, wenn ein Entwickler denselben Code kopiert und an mehreren Stellen einfügt.
Beispiel:
def calculate_area_circle(radius):
return 3.14 * radius * radius
def calculate_area_sphere(radius):
return 3.14 * radius * radius # Identischer Code
2. Strukturelle Duplikate: Der Code ist nicht exakt gleich, aber in seiner Struktur und Funktionalität ähnlich. Lediglich Variablen oder Namen wurden geändert.
Beispiel:
def calculate_area_circle(radius):
return 3.14 * radius * radius
def calculate_area_square(side):
return side * side # Ähnlich strukturiert
3. Logische Duplikate: Der Code macht funktional das Gleiche, sieht aber syntaktisch unterschiedlich aus.
Beispiel:
def calculate_area_circle(radius):
return 3.14 * radius ** 2
def calculate_area_circle_alt(radius):
return 3.14 * radius * radius # Funktional gleich, aber anderer Stil
1. Refactoring: Ähnlichen oder identischen Code in eine gemeinsame Funktion oder Methode auslagern.
Beispiel:
def calculate_area(shape, dimension):
if shape == 'circle':
return 3.14 * dimension * dimension
elif shape == 'square':
return dimension * dimension
2. Modularisierung: Funktionen und Klassen verwenden, um Wiederholungen zu reduzieren.
3. DRY-Prinzip anwenden: "Don't Repeat Yourself" – Entwickle so, dass keine Information oder Logik doppelt implementiert wird.
4. Tools verwenden: Tools wie SonarQube oder CodeClimate können Duplicate Code automatisch erkennen.
Duplicate Code zu reduzieren, verbessert die Codequalität, erleichtert die Wartung und minimiert das Risiko von Fehlern in der Software.
"Lines of Code" (LOC) ist eine Metrik in der Softwareentwicklung, die die Anzahl der geschriebenen Codezeilen in einem Programm oder einer Anwendung zählt. Diese Metrik wird oft zur Einschätzung des Umfangs, der Komplexität und des Entwicklungsaufwands eines Projekts verwendet. LOC wird auf verschiedene Arten eingesetzt:
Code-Komplexität und Wartbarkeit: Eine höhere Anzahl von LOC kann auf ein komplexeres oder schwer wartbares Projekt hinweisen. Entwickler versuchen oft, den Code schlank und effizient zu halten, weil weniger Zeilen potenziell weniger Fehlerquellen und einfachere Wartung bedeuten.
Produktivitätsbewertung: In manchen Organisationen wird LOC genutzt, um die Produktivität von Entwicklern zu messen, wobei jedoch die Qualität des Codes und nicht nur die Quantität berücksichtigt werden sollte. Denn viele Zeilen Code könnten auch durch ineffiziente Lösungen oder Redundanzen entstehen.
Projektfortschritt und Schätzungen: LOC kann helfen, den Fortschritt eines Projekts zu messen oder eine grobe Schätzung des Entwicklungsaufwands für zukünftige Projekte zu erstellen.
Obwohl LOC eine einfache und weitverbreitete Metrik ist, hat sie ihre Grenzen, da sie nichts über die tatsächliche Effizienz, Lesbarkeit oder Qualität des Codes aussagt.