Internet mal anders Internet mal anders Mühlen am Niederrhein Mühlen am Niederrhein ⇨ ("http://www.gocher.me/Muehlen-am-Niederrhein") Mühlen in Schleswig-Holstein Mühlen in Schleswig-Holstein ⇨ ("http://www.gocher.me/Muehlen-in-Schleswig-Holstein") Andere Mühlen Anderen Mühlen ⇨ ("http://www.gocher.me/Muehlen") * Entwicklung Entwicklung Die hier aufgeführten Routinen sind zum großen Teil Bestandteile meines eigens für meine Homepage entwickelten CMS, sie sollen zeigen was mit Free Pascal auf der Server-Seite und JavaScript auf der Client-Seite alles möglich ist. Lazarus / Free Pascal JavaScript C# * Administration Administration Hier finden Sie Themen zur Server Administration und Konfiguration, Anleitungen und Hilfestellungen. * Analyse Analyse Fehler finden, Möglichkeiten entdecken und Konzepte zur Umsetzung. Besonderheiten dieser Website Diese Website basiert auf einer in Free Pascal geschriebenen Webserver-Application, ein Dienst/Service mit einen HTTP-Server-Prozess und einen Hintergrund-Prozess. Wobei der HTTP-Server-Prozess für die komplette Bearbeitung der Eingehenden Anfragen zuständig ist und der Hintergrund-Prozess sich um die Abwicklung von Aufgaben die nicht unmittelbar mit den eingehenden Anfragen zu tun haben wie z.B. um Optimierung von Dateien, generieren von Statistiken und Updates. Alle Komponenten des Webservice wurden komplett in Free Pascal programmiert. Bis zum 21.06.2015 basierte diese Website noch auf der ISAPI-Schnittstelle des IIS von Microsoft, da mir nach einigen Tests klar wurde das eine weitere zeitliche Optimierung nicht mehr möglich war, da die anfallenden Millisekunden fast komplett im Bereich des Servers anfielen, hatte ich mich entschlossen einen eigenen Webserver zu schreiben. Im Gegensatz zu den bekannten Webservern ist bei meinem Webserver keine aufwendige Installation und Konfiguration erforderlich, an Hand der Dateitypen wird z.B. automatisch das beste Verfahren zur Übertragung gewählt, also z.B. GZip Komprimierung, Minimierung, Gültigkeit, … und alles nativ ohne Einbindung externer Module, dadurch war eine erhebliche Steigerung der Verarbeitungsgeschwindigkeit möglich. Zur Zeit wird die Antwortzeit lediglich durch den dynamischen DNS Eintrag über MyFritz meiner Fritzbox an einem VDSL-Anschluss gebremst, die eigentlichen Verarbeitungszeiten des Servers sind außer bei sehr komplexen Seiteninhalten wie große Source-Listings oder riesige Bildergalerien auf meinem nun über 10 Jahre alten Rechner kaum messbar. Bis zum 20.10.2018 lief dieser Webservice noch unter Windows, nun läuft er unter Ubuntu. Ich bemühe mich ständig aktuelle Standards zu implementieren, darunter sind z.B. folgende Leistungsmerkmale: * lauffähig unter Windows und Linux (dank Free Pascal Cross-Compiler) * SSL (TLS 1.3) Implementierung über OpenSSL, überprüft mit www.ssllabs.com("https://www.ssllabs.com/ssltest/") (A+) * CSP und Cookies optimiert auf Basis von securityheaders.com("https://securityheaders.com/") (A+) * HTTP, HTTPS inklusive SNI Realisierung mit HSTS und HTTP/2 über TLS-ALPN Unterstützung * Google PageSpeed Insights("https://pagespeed.web.dev/") (97-100%) und Google Lighthouse (Feature im Google Chrome) optimiert * IPv4 und IPv6 Unterstützung, Überprüfung mit IPv6 test("https://ipv6-test.com/") * GZip / Deflate / Brotli (Implementierung über Brotli Libraries) / Compress(LZW) Komprimierung auch von dynamischen Inhalten * dynamisches Minimieren von CSS und JavaScript * realisiert in Vanilla-JS (ohne JavaScript-Frameworks also reines JavaScript) und dadurch sehr schnell * dynamisch generierte Sitemaps: Pages("http://www.gocher.me/sitemap.xml"), News("http://www.gocher.me/sitemap-news.xml"), Images("http://www.gocher.me/sitemap-image.xml") * dynamisch generierte RSS-Feeds, Open Search, Open Graph, AppCache, vCard, iCal, … * mit allen wichtigen Icons, überprüft mit Favicon checker("https://realfavicongenerator.net/favicon_checker") * kurze Sprechende URLs * Schema.org realisiert in zahlreichen Elementen wie z.B. Navigationspfade, Logos, Sitelinks-Suchfeld, Videos, WebPage, Organization, Article, Person, … Überprüfung mit Google Testtools für strukturierte Daten("https://developers.google.com/search/docs/appearance/structured-data?hl=de") * Social Media Bookmarks inklusive native sharing wenn es vom Endgerät unterstützt wird * native Volltextsuche auch über Bilder und Downloads wie z.B. PDF-Dateien * Backend mit extrem optimierten WYSIWYG Editor * Barrierearm, überprüft mit wave.webaim.org("https://wave.webaim.org/") (0 Errors) * Seitengenerierung dynamisch, also ohne "Caching" * dynamische generierte Bilder (dem Endgerät angepasst) * Viewport (lazy loading) für Bilder (auch Video-Poster und Background), Videos, YouTube, OpenStreetMap, IFrames, … * W3C konforme Inhalte, Überprüfung mit W3C - Markup Validation Service("https://validator.w3.org/") (keine Fehler, keine Warnungen) * SEO optimiert * HTML5 / XHTML 1.1, CSS3, JavaScript mit aktuellen Features wie z.B. Slider, Accordion, Tabsheets, Fullscreen, … * Responsive Webdesign * Print CSS * Seiteninhalt als PDF, RTF (Richtext), HTML und Text oder auch als Package (Zip-Archiv - zur Verwendung in einer App) abrufbar/herunterladbar * datenschutzkonform Weitere Informationen findest Du unter CMS("http://www.gocher.me/CMS"). Manche Bereiche dieser Website sind nur für Freunde offen, falls Ihr noch keine Zugangsdaten habt meldet Euch doch bei mir! Die ganzen Bilder liegen nicht in den angezeigten Auflösungen auf dem Server, sondern werden während der Laufzeit angepasst für Euer Browser-Fenster zur Verfügung gestellt!