- Buchclub: Handbuch für Fachinformatiker (Teil 1) – Anwendungsentwickler-Podcast #53
- Buchclub: Handbuch für Fachinformatiker (Teil 2: Hardware) – Anwendungsentwickler-Podcast #56
- Buchclub: Handbuch für Fachinformatiker (Teil 3: Netzwerkgrundlagen) – Anwendungsentwickler-Podcast #58
- Buchclub: Handbuch für Fachinformatiker (Teil 4: TCP/IP) – Anwendungsentwickler-Podcast #59
- Buchclub: Handbuch für Fachinformatiker (Teil 5: Betriebssysteme, Windows und Linux) – Anwendungsentwickler-Podcast #61
- Buchclub: Handbuch für Fachinformatiker (Teil 6: Webserver und -anwendungen) – Anwendungsentwickler-Podcast #66
- Buchclub: Handbuch für Fachinformatiker (Teil 7: HTML und CSS) – Anwendungsentwickler-Podcast #68
- Buchclub: Handbuch für Fachinformatiker (Teil 8: JavaScript und AJAX) – Anwendungsentwickler-Podcast #70
- Buchclub: Handbuch für Fachinformatiker (Teil 9: XML) – Anwendungsentwickler-Podcast #73
- Buchclub: Handbuch für Fachinformatiker (Teil 10: Dateiformate und Sicherheit) – Anwendungsentwickler-Podcast #75
- Buchclub: Handbuch für Fachinformatiker (Teil 11: Datenbanken) – Anwendungsentwickler-Podcast #78
- Buchclub: Handbuch für Fachinformatiker (Teil 12: Grundlagen der Programmierung) – Anwendungsentwickler-Podcast #93
- Buchclub: Handbuch für Fachinformatiker (Teil 13: Konzepte der Programmierung) – Anwendungsentwickler-Podcast #96
- Buchclub: Handbuch für Fachinformatiker (Teil 14: Software-Engineering und Mobile Development) – Anwendungsentwickler-Podcast #101
Die Kapitel 14, 15 und 19 (Server für Webanwendungen, Weitere Internet-Serverdienste und Webserveranwendungen) des IT-Handbuchs für Fachinformatiker sind Thema der sechsundsechzigsten Folge des Anwendungsentwickler-Podcasts.
TL;DR
Im Buchclub zum Handbuch für Fachinformatiker bespreche ich die Kapitel zu Webservern und ihren Anwendungen. Für dich als IT-Azubi gehören die Abläufe von HTTP und die Grundlagen zentraler Serverdienste zum prüfungsrelevanten Wissen; konkrete Einstellungen für Apache oder PHP haben vor allem praktischen Wert. Ein eigener Server und ein kleines Webprojekt helfen dir, die Zusammenhänge zu verstehen. Außerdem geht es um den Einstieg in PHP, Unit-Tests und REST sowie um Begriffe wie Wiki und CMS, die du als Fachinformatiker:in erklären können solltest.
Podcast: Play in new window | Download (Duration: 43:45 — 20.9MB)
Abonnieren: Apple Podcasts | Spotify | RSS
Kapitelmarken
- [00:20] Buchclub zu Webservern und Webanwendungen
- [01:24] Kapitel 14 und die Relevanz für die IHK-Prüfung
- [05:02] HTTP-Kommunikation und Methoden
- [07:25] HTTP-Header
- [08:12] HTTP-Statuscodes
- [09:23] Apache installieren und konfigurieren
- [11:29] Mit einem eigenen Server Praxiserfahrung sammeln
- [13:15] Virtuelle Server und Kosten für ein Übungsprojekt
- [16:57] Virtual Hosts und mehrere Domains
- [18:53] Weitere Webserver im Überblick
- [19:51] PHP installieren und einrichten
- [20:15] Kapitel 15: DNS und wichtige Einträge
- [23:08] LDAP und zentrale Verzeichnisdienste
- [25:01] FTP und inetd
- [25:56] Kapitel 19: Einstieg in PHP und Webanwendungen
- [28:32] Arrays, Funktionen und objektorientiertes PHP
- [30:34] Datenbankzugriff mit PHP
- [31:52] Unit-Tests und Mock-Objekte mit PHPUnit
- [33:48] REST-APIs und Fragen im Fachgespräch
- [35:17] Gestrichenes Kapitel zu Ruby on Rails
- [37:21] CMS, Blogs und Wikis
- [40:41] Ausblick auf den nächsten Buchclub
- [41:41] Links und Beispiel einer Projektpräsentation
- [42:55] Newsletter
Inhalt
Die drei Kapitel enthalten viele sinnvolle und hilfreiche Informationen für die Praxis, z.B. für die Einrichtung eines eigenen Linux-Servers. Für die IHK-Prüfung waren davon aber nicht ganz so viele Bereiche interessant, da dort weniger konkrete Produkte abgefragt werden.
Server für Webanwendungen
- HTTP im Überblick
- Erklärung von HTTP ist gut verständlich.
- HTTP sollte man kennen, insb. die verschiedenen Methoden.
- Einige Header und Statuscodes gehören zum Grundwissen eines Webentwicklers.
- Der Webserver Apache
- DER Webserver schlechthin.
- Für die Prüfung: Virtual Hosts und
.htaccess-Datei.
- PHP installieren und einrichten
- Klasse, wenn man damit zu tun hat. Ansonsten wenig prüfungsrelevant.
Weitere Internet-Serverdienste
- Namens- und Verzeichnisdienste
- Produktspezifika sind nicht prüfungsrelevant.
- DNS-Eintragstypen sind wichtig sowie LDAP-Grundwissen.
- Sonstige Server
- FTP hat meiner Meinung nach keine Praxisrelevanz mehr.
- inetd ist unwichtig.
Webserveranwendungen
- PHP
- Ich denke, jeder Entwickler sollte mal eine Webanwendung gebaut haben. PHP ist dafür sehr gut geeignet und leicht zu lernen.
- Konkrete Inhalte für die Prüfung gibt es nicht.
- PHP-Beispiele verwenden noch „alten“ Datenbankzugriff.
- HTML direkt aus PHP ausgeben ist auch nicht mehr ganz zeitgemäß.
- Schön ist die Vorstellung von PHPUnit.
- Eine REST-API implementieren
- Aktuelles und praxisrelevantes Thema.
- Leider zu wenig REST und zu viel PHP.
- Anstatt XML würde ich heute auf JSON setzen.
- Ruby on Rails
- In der neuen Auflage leider gestrichen.
- Weitere Technologien im Überblick
- In der neuen Auflage leider gestrichen.
Literaturempfehlungen
*(direkt beim Rheinwerk-Verlag bestellen*)
In der nächsten Episode geht es um die Kapitel 18 und 20. Es gibt also die volle Breitseite HTML, CSS und JavaScript. 🙂
Dein eigener Webserver
Hast du auch schon einen eigenen Webserver? Wenn du mit dem Gedanken spielst, empfehle ich für den Einstieg 1blu*. Da bekommst du im ersten Jahr für 53,40 EUR einen kompletten vServer inkl. Domain und SSL-Zertifikat. ACHTUNG: Danach wird es etwas teurer: 7,90 EUR/Monat also 94,80 EUR/Jahr.
Für meine Studierendenprojekte an der PHWT nutze ich das Angebot bereits seit ein paar Jahren und bislang hat immer alles gut geklappt. Jedes Jahr lasse ich die Studierenden eine neue Recherche nach der günstigsten Lösung bei entsprechender Leistung durchführen und wir landen immer wieder bei 1blu*.
Kennst du einen noch besseren Hoster, den du anderen Azubis empfehlen kannst? Dann schreib mir gerne einen Kommentar!
Links
- Permalink zu dieser Podcast-Episode
- RSS-Feed des Podcasts
- Moderne Webentwicklung mit Java EE 7: Ein Experiment (mein Vergleich zu Ruby on Rails)
Zusammenfassung
Die Kapitel im Buchclub
Für die 66. Episode habe ich mit meinen IT-Azubis die Kapitel 14 und 15 sowie Kapitel 19 aus Sascha Kerstens Handbuch für Fachinformatiker durchgearbeitet. Sie behandeln Server für Webanwendungen, weitere Internetdienste und Anwendungen auf Webservern. Meine Azubis fanden die Inhalte verständlich, wobei viele Details einzelne Produkte betreffen.
Für die IHK-Prüfung erwarte ich vor allem Fragen zu allgemeinen Abläufen und Konzepten. Die konkreten Schritte, mit denen du Apache installierst oder PHP einrichtest, ordne ich als Praxiswissen ein. HTML und CSS kommen als allgemeine Webgrundlagen auch in Prüfungen vor. Sprachspezifische JavaScript-Fragen halte ich für unwahrscheinlich.
HTTP verstehen
Wenn du im Browser eine URL eingibst, solltest du als Fachinformatiker:in Anwendungsentwicklung erklären können, was im Hintergrund passiert. Das Kapitel zu HTTP beschreibt diesen Ablauf und vermittelt Grundlagen, die auch beim Arbeiten mit REST wichtig sind. REST ist grundsätzlich unabhängig vom Protokoll, wird in der Praxis häufig mit HTTP umgesetzt.
Zum Lernen gehören folgende Bereiche:
- HTTP-Methoden: Neben GET und POST kommen etwa PUT und DELETE vor, die für CRUD-Operationen bei REST eine Rolle spielen. Auch OPTIONS und HEAD solltest du einordnen können.
- HTTP-Header: Sie steuern beispielsweise, welches Format eine Anwendung anfordert oder ausliefert. Wenn du Fehler bei Webanwendungen untersuchst, helfen dir Kenntnisse über Header und das Verhalten von Caches.
- Statuscodes: Zu den Beispielen gehören 200 für eine erfolgreiche Anfrage und 404 für eine fehlende Ressource. 401 betrifft die Authentifizierung; 500 weist auf einen Fehler auf der Serverseite hin.
Die umfangreichen Tabellen im Buch eignen sich zum Nachschlagen. Beim Lernen würde ich mich auf das Verhalten von HTTP und häufige Statuscodes konzentrieren. Versionsangaben zu sämtlichen Methoden und vollständige Headerlisten auswendig zu lernen, geht für die Prüfung zu weit.
Apache einrichten und praktisch lernen
Wenn du Apache selbst betreibst, helfen dir die beschriebenen Direktiven und lauffähigen Beispiele dabei, seine Konfigurationsdateien zu verstehen. Gerade beim Einstieg gibt dir das Buch Orientierung zwischen den vielen möglichen Einstellungen. Für die konkreten Schritte beim Installieren greife ich auf aktuelle Internetquellen zurück, weil gedruckte Anleitungen schnell veralten.
Ich empfehle dir, als kleines Praxisprojekt einen eigenen Server aufzusetzen. Dabei lernst du Linux-Befehle und erfährst, wie du Dienste einrichtest. Achte dabei auch darauf, den Server abzusichern. Mit Apache und PHP kannst du beispielsweise WordPress oder TYPO3 betreiben; eine eigene Domain bietet außerdem die Möglichkeit, einen Mailserver einzurichten.
Ein virtueller Server als Übungsumgebung
Für meine Projekte mit Studierenden suche ich nach günstigen virtuellen Servern, auf denen sich eigene Dienste installieren lassen. Dazu gehören etwa Git-Hosting mit Gogs oder das Projektwerkzeug Redmine. Der Server braucht dafür ausreichend Speicher und Rechenleistung.
In den beschriebenen Projekten fiel die Wahl wiederholt auf 1blu. Das in der Episode genannte Einstiegsangebot kostete in den ersten sechs Monaten jeweils einen Euro, danach 7,90 Euro pro Monat. Für das erste Jahr ergaben sich ungefähr 54 Euro; eine Domain und ein SSL-Zertifikat waren enthalten. Bei dauerhaft 7,90 Euro monatlich liegen die jährlichen Kosten bei ungefähr 100 Euro. Diese Preisangaben beziehen sich auf den Stand der Episode.
Virtual Hosts
Mit Virtual Hosts kannst du mehrere Domains mit unterschiedlichen Inhalten auf einem Webserver betreiben. Über ServerName legst du fest, für welche Domain ein Eintrag gilt. DocumentRoot verweist auf das Verzeichnis, aus dem die Website ausgeliefert wird. Zusätzlich lassen sich beispielsweise Zugriffsrechte oder Logdateien pro Domain einstellen.
Zu Virtual Hosts habe ich bereits eine Frage in einer schriftlichen Abschlussprüfung gesehen. Das Prinzip gibt es auch bei anderen Webservern. Für einen Überblick solltest du neben Apache beispielsweise IIS und Nginx kennen. Das Buch erwähnt außerdem Lighttpd und Tomcat, wobei Tomcat eher als Application Server einzuordnen ist. Nginx fehlt in der besprochenen Auflage.
DNS und zentrale Verzeichnisse
DNS und seine Einträge
Im Kapitel zu weiteren Internetdiensten wird DNS anhand von BIND behandelt. Für die Prüfung steht für mich das Prinzip der Namensauflösung im Vordergrund. Die konkreten BIND-Einstellungen sind produktspezifisch.
Die folgenden DNS-Einträge solltest du erklären können:
- A: Ordnet einem Domainnamen eine IP-Adresse zu.
- PTR: Ermöglicht die umgekehrte Zuordnung von einer IP-Adresse zu einem Namen.
- MX: Gibt den Mailserver einer Domain an.
- CNAME: Verweist als Alias auf einen anderen Namen. Wenn mehrere Namen darüber auf einen gemeinsamen A-Eintrag zeigen, lässt sich die IP-Adresse an einer Stelle ändern.
- NS: Benennt den zuständigen Nameserver.
Das Buch führt außerdem SOA als weiteren Eintragstyp auf. Konkrete Prüfungsfragen zu diesen Recordtypen habe ich bislang selbst noch keine gesehen; ihre Bedeutung gehört für mich zum IT-Grundwissen.
LDAP
Für Intranetanwendungen kannst du über LDAP, das Lightweight Directory Access Protocol, auf ein zentrales Verzeichnis zugreifen. Das Kapitel zeigt dies anhand von OpenLDAP. Auch Microsoft Active Directory unterstützt LDAP.
Wenn du deine Anwendung an ein solches Verzeichnis anbindest, kannst du vorhandene Benutzerkonten und Gruppen übernehmen. Administrator:innen pflegen die Daten zentral, sodass etwa ein Passwort an einer Stelle geändert wird. Für Benutzer:innen vereinfacht das den Zugang zu mehreren Anwendungen; im Podcast spreche ich dabei auch Single Sign-on an.
Die grundsätzliche Funktion eines Verzeichnisdienstes und seine Vorteile kommen für Prüfungsfragen infrage. Konkrete LDAP-Attribute und produktspezifische Einstellungen würde ich beim Lernen nachrangig behandeln.
Weitere Dienste
Das Buch behandelt auch FTP-Server und den Linux-Dienst inetd. Für meine Praxis haben beide wenig Gewicht. Da reines FTP unverschlüsselt arbeitet, bevorzuge ich verschlüsselte Wege wie Secure Copy oder Dateiübertragung über SSH. inetd würde ich mir genauer anschauen, sobald ein konkreter Einsatz ansteht.
Mit PHP eine Webanwendung bauen
Kapitel 19 führt von Grund auf in PHP ein. Wenn du bisher wenig mit Webanwendungen gearbeitet hast, empfehle ich dir ein kleines eigenes Projekt. Dabei kannst du nachvollziehen, wie der Browser mit dem Webserver zusammenarbeitet und wie die serverseitige Programmiersprache auf eine Datenbank zugreift. Solche Abläufe werden auch in schriftlichen Prüfungen und Fachgesprächen gefragt.
Mit PHP habe ich selbst während meiner Ausbildung und über mehrere Jahre gearbeitet. Die Sprache eignet sich für den Einstieg und wird beispielsweise von WordPress eingesetzt. Im Kapitel findest du unter anderem:
- PHP-Code in Verbindung mit HTML sowie den Umgang mit übergebenen Parametern.
- Arrays, einschließlich mehrdimensionaler und assoziativer Arrays. Bei assoziativen Arrays kannst du beispielsweise über Strings als Schlüssel auf Werte zugreifen.
- Eigene Funktionen und reguläre Ausdrücke.
- Klassen mit Zugriffsmodifizierern sowie Vererbung und Magic Methods wie
__constructoder__toString.
PHP unterstützt sowohl prozedurale als auch objektorientierte Entwicklung. Die Quelltextbeispiele im Buch geben dir einen ersten Einblick. Für vertiefte PHP-Kenntnisse brauchst du ergänzende Literatur.
Datenbanken und Unit-Tests
Beim Datenbankzugriff beschreibt das Buch zunächst ältere prozedurale Funktionen wie mysql_connect und mysql_query. Für ein eigenes Projekt würde ich die anschließend vorgestellte objektorientierte MySQLi-Schnittstelle wählen.
Am Ende des PHP-Teils geht es um Unit-Tests mit PHPUnit. Als Befürworter von Test-driven Development begrüße ich, dass das Kapitel auch Beispiele für Mock-Objekte zeigt. In der beschriebenen PHPUnit-Version erben Testklassen von einer Basisklasse. Meine Aussagen zu diesem Vorgehen beziehen sich auf die im Buch dargestellte Version.
REST im Fachgespräch
Im Unterkapitel zur REST-API kannst du anhand umfangreicher PHP-Beispiele eine lauffähige API nachvollziehen. Die Grundlagen von REST selbst werden auf wenigen Seiten behandelt. Für ein fundiertes Verständnis würde ich ergänzende Literatur durcharbeiten.
Wenn ich REST in einem Abschlussprojekt lese, frage ich im Fachgespräch danach. Du solltest das Architekturprinzip erklären können, sobald du es in deinem Projekt verwendest.
Gestrichene Inhalte der neuen Auflage
Ruby on Rails
Beim Abgleich mit dem Open Book des Rheinwerk Verlags habe ich festgestellt, dass das Kapitel zu Ruby on Rails gestrichen wurde. Rails bietet einen Zugang zum MVC-Prinzip und zu Konzepten, die dir auch in anderen Frameworks begegnen. In den Shownotes verlinke ich das ältere Kapitel sowie meinen Artikel bei Heise Developer, in dem ich Ruby on Rails mit Java EE vergleiche.
CMS, Blog und Wiki
Auch das Kapitel "Weitere Technologien im Überblick" wurde entfernt. Die darin erläuterten Begriffe sind prüfungsrelevant:
- Mit einem Content Management System kannst du Inhalte einer Website über ein Backend pflegen. WordPress ist ein Beispiel dafür und entstand ursprünglich als Blogsystem.
- Ein Blog geht auf den Begriff "Weblog" zurück. Seine Beiträge erscheinen üblicherweise mit dem neuesten Eintrag oben. Aus dem ursprünglichen Webtagebuch entwickelte sich eine Form, um Artikel zu veröffentlichen.
- In einem Wiki lassen sich Inhalte direkt auf der jeweiligen Seite bearbeiten. Die geänderte Fassung wird anschließend sichtbar. Viele Wikis verwenden eine eigene Syntax; Wikipedia basiert beispielsweise auf MediaWiki.
Zu diesen Anwendungsarten gab es bereits Prüfungsfragen. Als Fachinformatiker:in solltest du ihre Merkmale erklären können.
Weitere Inhalte und Verweise
Für den nächsten Buchclub sind die Kapitel 18 und 20 vorgesehen, in denen es um die Frontend-Technologien geht. Zuvor plane ich eine Episode mit Erfahrungen aus mündlichen Prüfungen.
Unter anwendungsentwicklerpodcast.de/66 findest du die erwähnten Links. Auf meiner Website habe ich außerdem Enrico Bassauers Projektpräsentation veröffentlicht. Seine mündliche Prüfung bei der IHK Aachen wurde einschließlich Fachgespräch mit 100 Prozent bewertet. Die Präsentation zeigt einen klassischen Gestaltungsansatz als weiteres Beispiel für deine eigene Prüfung.
Über anwendungsentwicklerpodcast.de/newsletter kannst du dich für meinen kostenlosen Newsletter anmelden, in dem ich wöchentlich auf neue Inhalte und Links hinweise.
Transkription der gesamten Episode
Automatisch erzeugte Transkription der Episode
Herzlich willkommen zum Anwendungsentwickler-Podcast, dem Podcast rund um die Ausbildung zum Fachinformatiker für Anwendungsentwicklung.
In dieser Episode geht der Buchclub zum Handbuch für Fachinformatiker weiter. Viel Spaß!
Hallo und herzlich willkommen zur 66. Episode des Anwendungsentwickler-Podcasts.
Mein Name ist Stefan Macke und heute geht es mit dem Buchclub weiter, bzw. einem Buchclub.
Ich habe ja noch ein paar mehr vor in Zukunft, aber aktuell geht es ja um das über 1000 Seiten starke Werk von Sascha Kersten, nämlich das Handbuch für Fachinformatiker.
Und der letzte Buchclub ist schon ein paar Monate her heute und jetzt geht es weiter mit den nächsten Kapiteln.
Und zwar haben wir heute gleich drei Kapitel vor, oder ich habe die vor, besser gesagt, und möchte die gerne durchsprechen.
Und die passen alle ganz gut zu einem großen Themenbereich, deswegen bot sich das auch an, die gemeinsam zu behandeln.
Und zwar geht es um die Kapitel 14, 15 und 19. Die heißen im Handbuch Server für Web-Anwendungen, weitere Internet-Server-Dienste und Web-Server-Anwendungen.
Das heißt, wie man an den Titeln unschwer erkennt, geht es heute um Web-Server, bzw. alles Mögliche, was auf so einem Web-Server läuft.
Oder man kann das Web vielleicht auch streichen, allgemein um Server, aber mit Fokus deutlich, sage ich mal, auf Web-Server-Anwendungen.
Ja, ich würde sagen, wir steigen direkt ein, verlieren wir keine Zeit. Wir fangen an mit Kapitel 14, Server für Web-Anwendungen.
Und dieses Kapitel hat drei Unterkapitel in der neuen Ausgabe des Handbuchs für Fachinformatiker.
Und zwar HTTP im Überblick, der Web-Server Apache und PHP installieren und einrichten.
Ich habe die Kapitel heute auch schon wieder mit meinen Azubis durchgesprochen, die eigentlich grundsätzlich der Meinung waren, dass sie alle gut verständlich waren und auch interessante Informationen enthielten.
Aber auch einige Sachen, die sehr produktspezifisch sind und die eigentlich zum Beispiel auch für so eine Prüfung irrelevant sind.
Also wie man zum Beispiel den Apache und PHP installiert, das wird niemals Teil einer Prüfung sein, weil es viel zu sehr spezifisch eben für diese beiden Produkte ist.
Für den Web-Server Apache und die Programmiersprache PHP.
Und das ist, ich sage jetzt einfach mal ganz blöd, Nischenwissen. Das wird in so einer IHK-Prüfung nicht abgefragt, weil wir nicht davon ausgehen können, dass jeder Anwendungsentwickler da draußen schon mal mit PHP gearbeitet hat oder damit arbeiten können muss.
Oder auch mit dem Apache-Server zum Beispiel arbeitet.
Es ist sicherlich der verbreitetste Web-Server der Apache und PHP ist auch eine sehr beliebte und verbreitete Programmiersprache.
Aber das heißt halt nicht, dass jeder Anwendungsentwickler da draußen damit arbeiten können muss. Das kann ich also nicht voraussetzen.
Es werden zwar in der IHK-Prüfung häufig mal Fragen gestellt rund um Web-Anwendungen.
Also wie zum Beispiel grundsätzlich so der Ablauf ist, wenn ich meinetwegen eine PHP-Seite auch aufrufe und wie der Web-Server sich verhält und was er wann wie ausliefert und so weiter.
Aber die Details einer konkreten Programmiersprache oder eines konkreten Web-Servers, das würde ich in einer IHK-Prüfung nicht erwarten.
Ich weiß natürlich nicht, was die Prüfer sich in Zukunft ausdenken und was sie für Fragen stellen.
Aber ich kann es mir nicht vorstellen, dass halt spezifisch für einzelne Technologien dort Fragen gestellt werden.
Die einzige Ausnahme, die mir vielleicht spontan einfällt und wo ich auch schon weiß, dass es so ist, ist halt HTML, CSS.
Wobei das eben nicht eine konkrete Technologie ist, sondern halt schon im Prinzip allgemein Wissen, sage ich mal.
Ja, JavaScript wäre vielleicht auch noch so eine Ausnahme.
Da könnte ich eventuell mir überlegen, dass das ganz sinnvoll wäre, weil es halt die einzige Möglichkeit ist, um im Frontend irgendwas programmieren zu können.
Im Backend haben wir die Wahl zwischen 197 verschiedenen Programmiersprachen, PHP, Java, C-Sharp, Ruby, weiß der Geier was.
Aber im Frontend gibt es halt heute nur JavaScript und es gibt keine Alternativen dazu.
Zumindest keine, die so weit verbreitet sind, dass sie in irgendeiner Weise relevant wären.
Von daher könnte ich mir auch vorstellen, dass irgendwann mal was zu JavaScript vielleicht gefragt wird.
Aber ich halte das auch eher für unwahrscheinlich.
In der Abschlussprüfung werden halt eher allgemeine Programmierkenntnisse abgefragt und nicht, wie man es konkret mit einer Programmiersprache umsetzt.
Auch wenn es vielleicht eine sehr wichtige Programmiersprache ist.
Aber man muss ja auch sehen, es gibt noch einen ganzen Haufen Leute, die noch nicht mal irgendwas mit Webanwendungen machen.
Und das ist ja auch völlig in Ordnung.
Ja, Web ist zwar natürlich ein super interessantes Medium, keine Frage.
Aber es gibt so viele Backend-Systeme meinetwegen noch in Kobol da draußen, wo Leute überhaupt wirklich gar nichts mit JavaScript oder HTML zu tun haben.
Ich bin der Meinung, dass man HTML heute können muss.
Das ist einfach eine Frontend-Technologie, die so weit verbreitet ist, da gibt es auch keine Ausrede, das nicht zu beherrschen.
Aber bei JavaScript zum Beispiel, naja, das würde ich mal in Frage stellen.
Also ich würde niemals in der Prüfung spezifische Fragen in Richtung Programmiersprachen stellen.
Deswegen würde ich einfach mal sagen, dass das PHP-Kapitel zum Beispiel in diesem Fall des Handbuchs für Fachinformatiker für die Prüfung nicht ganz so relevante Inhalte enthält.
Und insbesondere auch im ersten Kapitel Server für Webanwendungen jetzt, da geht es halt um die Installation, das Einrichten von PHP.
Das sind Dinge, die meiner Meinung nach definitiv niemals in einer Abschlussprüfung abgefragt werden.
Aber gehen wir vielleicht jetzt mal der Reihe nach durch.
Das Kapitel beginnt ja mit HTTP im Überblick.
Und HTTP, das ist ein so wichtiges Protokoll heute, das ganze Internet quasi basiert ja darauf.
Ja, ich weiß, es gibt noch mehrere Protokolle, aber ich sag das jetzt einfach mal so.
Der zentrale Bestandteil des World Wide Web ist wahrscheinlich über HTTP bzw. HTTPS geregelt.
Deswegen ist das auch ein ganz wichtiges Kapitel meiner Meinung nach und auch für jeden Anwendungsentwickler ganz wichtig zu wissen, wie das funktioniert und was die Hintergründe da sind.
Die allgemeine Erklärung zum Thema HTTP fanden meine beiden Azubis auch ganz gut verständlich, haben sie gesagt.
Und wenn ich mal so in das Kapitel wirklich reinschaue, was da an Inhalten präsentiert wird, würde ich sagen, sind auch einige prüfungsrelevante Sachen dabei.
Es geht zum Beispiel direkt los mit dem Ablauf bei der HTTP-Kommunikation.
Und ich denke, das sollte jeder Prüfling erklären können.
Zum Beispiel, was passiert, wenn ich halt so ein Get-Request an eine Website stelle.
Also ganz klassisch, wenn ich im Browser eine URL eingebe und drücke Enter, was passiert dann eigentlich im Hintergrund?
Das sollte ich als Anwendungsentwickler auf jeden Fall können, gerade wenn ich auch in aktuelle Entwicklungen schaue und bei den Anwendungen heute überall REST, REST, REST lese.
Ja, als Architekturprinzip, das basiert ja auch eigentlich auf HTTP, ist zwar unabhängig vom Protokoll grundsätzlich, aber wird halt häufig mit HTTP umgesetzt.
Und deswegen ist es, glaube ich, sehr wichtig zu verstehen, was da passiert.
Und ich glaube auch, dass es durchaus prüfungsrelevant ist, sowas mal beschreiben zu können.
Auf der anderen Seite auch super praxisrelevant, allein die ganzen HTTP-Methoden, die es gibt, zu kennen.
Es gibt halt eben nicht nur GET und POST, was zum Beispiel viele PHP-Entwickler auch standardmäßig verwenden, weil es so einfach in die Sprache eingebaut ist und so gut dort verwendet werden kann.
Aber es gibt halt eben noch mehrere. Es gibt noch PUT und DELETE mindestens mal, um die CRUD-Operationen zu vervollständigen, die wir für REST brauchen.
Aber es gibt halt eben auch noch andere, sowas wie zum Beispiel OPTIONS oder HEAD und so weiter.
Kommen in der Praxis jetzt nicht ganz so oft vor, aber man darf ruhig wissen, dass es da mehrere gibt.
Wir wollen ja auch eine fundierte Ausbildung haben und wir gucken nicht nur auf die Oberfläche, was ich im Browser immer sehen kann,
sondern ich muss vielleicht auch mal ein bisschen dahinter gucken und wissen, was es denn noch so gibt und wofür die Sachen da sind.
Würde ich mir also durchaus anschauen. Ich finde es jetzt nicht ganz so sinnvoll, die Sachen auswendig zu leeren, was es denn alles gibt und seit welcher HTTP-Version und so.
Da steht hier zum Beispiel als Tabelle im Kapitel. Das finde ich dann wieder ein bisschen zu viel.
Aber grundsätzlich das Verhalten und die Möglichkeiten von HTTP, die sollten eigentlich jedem Anwendungsentwickler geläufig sein.
Die nächsten Seiten, da sehen wir dann einen ganzen Haufen an HTTP-Headern, die es gibt.
Auch das finde ich für die Praxis super wichtig, gerade wenn wir zum Beispiel in REST unterwegs sind und zwischen JSON, XML und HTTP-Output unterscheiden wollen.
Dann funktioniert das in einer vernünftigen Applikation eigentlich ausschließlich über das Setzen des entsprechenden HTTP-Headers, wie zum Beispiel EXCEPT.
Ich kann mir jetzt mal nicht vorstellen, dass die ganzen Header irgendwo in der Prüfung mal abgefragt werden,
aber ich finde es für die Praxis sehr wichtig, die zu kennen, um zum Beispiel bei solchen Web-Anwendungen auch mal verstehen zu können,
warum die zum Beispiel nicht richtig funktionieren oder warum vielleicht ein Cache ausgeliefert wird,
anstatt das richtige Dokument, was ich angefordert habe oder wie auch immer.
Diese ganzen Sachen kann man sich ruhig mal anschauen.
Ich würde sie jetzt nicht auswendig lernen für die Prüfung, das finde ich ein bisschen zu viel.
Aber vom Verständnis her finde ich es schon sehr wichtig, dass es, sage ich mal, einem bekannt ist.
Genauso das Nächste, was jetzt kommt, das sind die ganzen HTTP-Status-Codes.
Auch die würde ich nicht auswendig lernen.
Wenn ich hier mal drüber gucke, das sind drei Seiten allein mit Tabellen, welche Status-Codes es so gibt.
Ich denke, da sollte man so ein paar wichtige kennen, wie den allseits berühmten 404, Not Found.
Aber es gibt zum Beispiel auch den 200er für OK, der eigentlich immer zurückkommt, wenn irgendwas sauber funktioniert hat.
Aber eben auch so ein paar Sachen wie zum Beispiel 401 für Unauthorized.
Also wenn ich eine Website aufrufe, wo ich mich anmelden muss und ich habe die falschen Daten zum Beispiel angemeldet, eingegeben und so weiter.
Da gibt es so ein paar Codes, die kann man sich angucken.
500 zum Beispiel hat man vielleicht auch schon mal gesehen, wenn der Server die Grätsche gemacht hat.
Das heißt, es ist ein Fehler, der auf Server-Seite passiert und nicht auf Client-Seite.
Und so ein paar Sachen kann man sich da rauspicken.
Ich kann mir nicht vorstellen, dass sie so im Detail in der Prüfung abgefragt werden.
Aber ich finde es einfach für die Praxis sehr, sehr wichtig, das zu kennen.
Auf den nächsten Seiten gibt es dann nochmal wieder ganz viele oder lange Tabellen, sage ich mal, mit allen möglichen HTTP-Headern, die es gibt und wo drin die enthalten sein können.
Also im Request und im Response und so weiter.
Geht mir auch ein bisschen zu sehr ins Detail und auswendig lernen würde ich die auch nicht.
Aber einmal drüber lesen und wissen, was es da gibt, ich glaube, das finde ich ganz sinnig.
Das nächste Kapitel, der Web-Server Apache.
Da muss ich sagen, das finde ich für die Praxis total wichtig und total interessant.
Wenn du zum Beispiel selber einen Web-Server betreibst, dann ist das ganz wichtig zu wissen, wie der Apache sauber zu konfigurieren ist.
Keine Frage, das ist natürlich dann das Herzstück deines Web-Servers, falls du mit dem Apache arbeitest.
Es gibt natürlich noch Alternativen wie Nginx oder wenn du mit .NET arbeitest, zum Beispiel in IIS.
Trotzdem ist der Apache immer noch der verbreitetste Web-Server da draußen.
Ganz viele Seiten im Internet laufen darauf.
Ich habe keine Ahnung, wie viel genau, aber man hört immer irgendwas von 50 Prozent oder so.
Also der ist schon wirklich sehr verbreitet, der Web-Server.
Vielleicht sind es sogar noch mehr als 50 Prozent.
Von daher hat er schon seine Berechtigung, auch dass hier im Handbuch für Fachinformatiker darauf eingegangen wird.
Auch wenn es sehr detailliert ist, sage ich mal.
Da sind also sehr viele Konfig-Einstellungen drin und was man machen muss, um den zu installieren.
Inklusive des Endpackings, des TAR-Files und so weiter.
Und welche Sachen ich angeben muss, wenn ich ihn selber kompilieren will und so.
Also das ist schon wirklich fast eine echte Installationsanleitung.
Da muss ich sagen, würde ich im Zweifel auch nicht das Handbuch zur Hand nehmen, sondern da würde ich im Internet gucken.
Weil die wahrscheinlich schon mit Drucklegung nicht mehr aktuell ist, weil sich da so schnell auch Sachen ändern.
Von daher ist eine ganz nette Sache, das mal gelesen zu haben und wie das grundsätzlich funktioniert.
In der Praxis, glaube ich, würde ich auf Internetquellen zurückgreifen dafür.
Die Apache-Konfiguration, die jetzt als nächstes beschrieben wird, finde ich dann allerdings wieder ganz sinnig.
Denn hier sind einfach wichtige Direktiven, die man in der Config-Data eintragen kann, mal zusammengefasst und auch gut erklärt und wofür die da sind.
Das finde ich immer ganz gut, denn der Apache hat natürlich gefühlte 2000 Konfig-Einstellungen.
Und da weiß ich als Anfänger überhaupt gar nicht, wo ich anfangen soll und was überhaupt wichtig ist.
Und dafür finde ich das Buch allerdings sehr gut geeignet hier.
Das gibt mir einen guten Überblick über die wichtigsten Sachen, die ich da einstellen kann.
Und auch ein paar Beispiele, wie es denn in der Praxis aussehen könnte.
Und da habe ich also wirklich lauffähige Beispielblöcke, die ich so in der Config-Datei kopieren könnte oder eintippen könnte.
Und dann läuft das Ding eben.
Das finde ich also schon sehr, sehr hilfreich.
Wenn du übrigens noch keinen eigenen Web-Server betreibst, dann würde ich dir raten, versuch es doch einfach mal.
Denn meiner Meinung nach oder meiner Erfahrung nach auch, ist es so, dass du zum Beispiel den Umgang mit Linux-Systemen am besten lernst, wenn du einfach selber einen Server am Laufen hast und dich um so ein Kram kümmern musst.
Wie zum Beispiel Web-Server einrichten, PHP installieren, Datenbank aufsetzen und so weiter.
Das kann man toll aus dem Buch lesen und auch lernen, aber verstanden hat man es dann glaube ich nicht.
Und vor allen Dingen findet man halt nicht raus, was in der Praxis denn wirklich relevante Befehle sind oder wie du zum Beispiel den Server in der Praxis absichern solltest.
Das findest du vielleicht dann auch zu spät raus, wenn dein Server dann mal gehackt wurde oder so.
Das soll natürlich dann vielleicht nicht passieren.
Schau dann, dass du irgendwie ein bisschen auf die Sicherheit auch achtest.
Und ich glaube, ich mache auch mal in Zukunft nochmal so eine kleine Podcast-Episode zum Thema, wie richte ich mir einen Server ein.
Denn ich finde das eigentlich relativ wichtig, dass man auch als Azubi schon mal anfängt und damit so ein bisschen Praxiserfahrung sammelt.
Denn ich finde das ganz normal heutzutage eigentlich, gerade wenn ich IT-Lehrer bin, dass ich zum Beispiel meine eigene Domain betreibe.
Und wenn dann nur ein Mail-Server draufläuft, dann will ich eine tolle E-Mail-Adresse admakerit zum Beispiel habe und nicht adgmail oder so.
Wo von heute auf morgen der Dienst abgeschaltet werden könnte oder Google liest meine Mails mit, was die sowieso machen.
Da finde ich es eigentlich sinnvoller, wenn ich zum Beispiel meine eigene Domain betreibe.
Und das ist eine schöne Möglichkeit, um sowas mal umzusetzen.
Ich schaffe mir einen Server an, installiere da Mail-Server, Web-Server und so weiter.
Und genau für diesen Anwendungsfall finde ich hier das Kapitel sehr gut geeignet, weil da wirklich mal schön erklärt wird und gut zusammengefasst wird,
auch wie gesagt die wichtigsten Sachen, um den Apache-Server ans Laufen zu kriegen.
Und dann eben gleich auch im Folgekapitel noch PHP drüber zu installieren, sodass ich also wirklich eine vollständige Web-Anwendung,
wie zum Beispiel WordPress oder Typo3 oder was auch immer ich da laufen lassen will, dort eben installieren und laufen lassen kann.
Falls du jetzt übrigens tatsächlich auf den Geschmack gekommen bist und willst vielleicht mal mit einem Server rum-experimentieren,
dann weiß ich natürlich, dass Azubis da jetzt nicht die richtige Kohle in der Tasche haben, um da einen riesen Server zu kaufen.
Wenn ich mir jetzt einen echten Root-Server zum Beispiel, also ein richtiges Stückchen Hardware irgendwo im Rechenzentrum kaufe,
da bin ich locker 60 Euro im Monat los.
Es gibt sicherlich auch günstigere, aber wenn ich einen vernünftigen haben will, sage ich mal um die 50 Euro im Monat.
Und das ist natürlich schon eine Stange Geld, wenn ich gerade vielleicht noch ein bisschen Ausbildungsvergütung bekomme.
Deswegen, wenn ich zum Beispiel mit meinen Studierenden Projekte mache, was ich eigentlich jedes Jahr immer wieder tue,
so ein kleines Web-Projekt, wo sie ein bisschen was programmieren müssen,
dann suchen wir eigentlich jedes Jahr immer nach dem günstigsten, echten Server, in Anführungszeichen.
Also wir wollen jetzt nicht so ein bisschen Webspace haben, wo ich ein PHP-Script hochlade und dann bin ich fertig,
sondern wir brauchen natürlich einen echten Web-Server, wo man zum Beispiel auch ein eigenes Git-Hosting installieren kann,
wo ich Ruby on Rails zum Beispiel für das Projekt-Management-Werkzeug Redmine installieren kann,
wo ich mir alles Mögliche installieren kann, was ich so brauche, um eben so ein kleines Projekt dabei durchzuführen.
Und deswegen suchen wir dann immer nach einem V-Server, also einem Virtual-Server,
jetzt nicht den richtigen echten Root-Server, der als Hardware irgendwo rumsteht, der ist einfach viel zu teuer und das braucht man auch nicht,
sondern nach einem kleinen virtuellen Server, der möglichst günstig ist und trotzdem eine gute Leistung bringt,
sodass ich da also auch ein paar Anwendungen drauf laufen lassen kann.
Es reicht halt nicht, wenn ich irgendwie eine statische HTML-Seite damit ausliefern kann,
sondern ich brauche zum Beispiel jetzt für unser klassisches Setup, was wir aktuell immer benutzen,
oder was ich immer benutze in den Projekten, dass wir halt zum Beispiel Go für den GOGS, den Go-Git-Service,
also ein Git-Server, der da läuft, das ist eine eigene Programmiersprache, ein eigener Server,
dann haben wir einen Apache-Web-Server, vielleicht auch noch einen Java-Application-Server im Hintergrund
und all solche Sachen, da braucht man schon ein bisschen Leistung.
Wir ziehen jetzt auch nicht so viel Speicher und CPU, aber ein bisschen braucht man halt schon
und wir gucken dann immer jedes Jahr, was ist denn die günstigste Alternative für einigermaßen vernünftige Leistung
und in den letzten Jahren, ich sag mal in den letzten, ja ich glaub fünf Jahren bestimmt schon,
sind wir eigentlich immer wieder bei 1Blue gelandet.
Von daher, wenn du mit etwas günstigem anfangen willst, einfach nur so ein bisschen rumexperimentieren willst vielleicht,
dann kann ich dir auf jeden Fall diesen Einstieg wie Server von 1Blue empfehlen.
Der ist aktuell, aber ehrlich gesagt auch schon seit Jahren haben die dieses Angebot,
ist das so, dass der in den ersten sechs Monaten 1€ im Monat kostet, also wirklich lächerlich
und dann in den nächsten sechs Monaten kostet er, ich glaub den Normalpreis von 7,90€,
aber wenn ich das halt rumrechne auf ein Jahr, dann lande ich so, ich glaub bei 54€ oder so.
Für ein Jahr einen echten V-Server, mit dem ich alles machen kann für 50€, sag ich mal,
ich glaub das ist ein ganz gutes Angebot und der hat auch einigermaßen Power.
Da ist übrigens sogar eine Domain und ein vernünftiges SSL-Zertifikat schon mit drin,
also nicht hier dieses Let's Encrypt Zeug, ich will das gar nicht schlecht reden, ich benutze das selber auch,
aber für eine echte Website könnte ich sogar das vernünftige SSL-Zertifikat für ein Jahr da benutzen
und für 50€, ich glaube das bietet sich an, um da mal ein bisschen rumzuexperimentieren.
Meine beiden Azubis haben den Server übrigens auch gebucht, weil er einfach eben so günstig ist.
Danach, wenn man ihn weiter betreibt, wird er dann ein bisschen teurer, er kostet 7,90€ im Monat,
das sind ungefähr so 100€ im Jahr, immer noch relativ günstig,
aber vielleicht nur fürs Rumexperimentieren für einen Azubi dann auch wieder ein bisschen zu teuer,
aber kannst du dir mal überlegen, vielleicht ist es was für dich und ich mach demnächst auf jeden Fall nochmal
eine Episode, wie man denn einen Webserver vernünftig aufsetzt oder woran man denken muss,
denn das mach ich eigentlich immer als kleines Mini-Projekt, sowohl mit meinen Studierenden als auch mit meinen Azubis immer,
damit sie mal in der Praxis ein bisschen was machen müssen.
Dann lernt man halt auch schön Linux und wie man Sachen installiert und entpackt
und alle diese Dinge, die in Windows zum Beispiel selbstverständlich sind,
Rechtsklick und dann bin ich fertig, das ist auf Linux halt eben ein bisschen schwieriger
und das lernt man meiner Meinung nach am besten, wenn ich das mal wirklich machen muss
mit einem konkreten Projekt im Hintergrund.
Okay, das war der Ausflug zum Thema Webserver, dann kommen wir mal zurück zum Inhalt,
das eigentliche Inhaltshäuser, nämlich dem Buchclub.
Ich bin jetzt mal die ganzen Seiten durchgegangen hier mit der Apache-Konfiguration,
wie gesagt, ist eine nette Sache, für die Prüfung allerdings irrelevant,
bis auf einen Bereich, der dann am Ende noch kommt, und zwar die Virtual Hosts.
Das habe ich tatsächlich auch schon mal in der schriftlichen Abschlussprüfung gesehen,
dass da eine Frage zu dran kam, was das ist und wofür man das braucht und so weiter.
Kurze Erklärung, ein Virtual Host ist, wie der Name schon sagt, ein virtueller Host,
das heißt, ich kann auf einem Webserver, dem Apache, den ich auf meinem Server installiert habe,
mehrere Hosts, also mehrere Domains zum Beispiel, laufen lassen.
Wenn ich meinetwegen, wie in meinem Beispiel, stefanmacke.de und macke.it habe,
und ich möchte auf beiden Domains unterschiedlichen Inhalt veröffentlichen,
dann kann ich das mit solchen Virtual Hosts machen.
Ich sage dem Webserver einfach, lausche bitte an meinetwegen jeder IP auf Port 80
und wenn dann ein Request reinkommt für die Domain macke.it, dann lieferst du bitte das eine aus
und für die andere Domain lieferst du das andere aus.
Sieht im einfachsten Fall einfach so aus, dass ich in der Virtual Host-Datei sage,
dein Server Name ist zum Beispiel macke.it und dein Document Root,
da wo also die Website auf der Festplatte liegt und von wo sie ausgeliefert wird,
das ist dann ein entsprechendes Verzeichnis.
Das sind im Prinzip meine beiden wichtigen Einstellungen.
Damit verdrate ich also im Prinzip einen Domain-Namen mit einer konkreten Website,
die auf meinem Server irgendwo im Dateisystem liegt.
Und das ist eigentlich ein Virtual Host.
Ich kann jetzt in diesem Kontext noch ein bisschen mehr konfigurieren,
zum Beispiel Log-Files und Zugriffsrechte und weißt ja geil was.
Also alles, was ich, nicht alles, aber das meiste, was ich auch im normalen Apache-Server so konfigurieren würde,
könnte ich hier selektiv für diese eine Domain zum Beispiel einstellen.
Und dieses Prinzip, das gibt es eigentlich bei allen Webservern,
das heißt dann vielleicht hier und da mal ein bisschen anders,
aber ich habe tatsächlich schon mal genau zu diesem Bereich Virtual Host in der Prüfung eine Frage gesehen.
Also das könnte man sich mal angucken, auch warum das sinnvoll ist
und worauf man vielleicht achten muss bei der Konfiguration.
Und dafür finde ich dieses Kapitel eigentlich ganz gut.
Da ist also auf ein paar Seiten auch erklärt, was das bringt und wie das funktioniert.
Übrigens auch am Ende des Kapitels noch mal ein kurzer Überblick über andere
Webserver, die es so gibt, also den IIS oder zum Beispiel den Tomcat, wobei der
eigentlich schon eher ein Application Server ist. Was ich hier noch vermisse in
der aktuellen Auflage ist allerdings der Nginx, denn der hat schon N-G-I-N-X
geschrieben. Nginx, ja, da wird Nginx ausgesprochen, der inzwischen auch schon
relativ verbreitet, oder verbreitet will ich nicht sagen, aber der auf jeden Fall
so ein bisschen Hype gerade ist für viele Projekte, die nutzen den
als Host, weil er einfach vielleicht auch ein bisschen schneller ist oder
für bestimmte Konfigurationen besser reichen ist als der Apache. Den vermisse
ich hier noch in der Liste und es sind auch nur ein paar Sätze, um auf die
Webserver einzugehen, aber so einen groben Marktüberblick sollte man schon
haben. Das könnte ich mir auch gut vorstellen in der Abschlussprüfung, sowas
wie, nennen sie ein paar Webserver. Da müsste dann halt sowas kommen wie IIS,
Nginx, Lite, HTTPD zum Beispiel steht hier noch drin oder der Tomcat und so
weiter. Gut, dann haben wir das Kapitel Webserver bzw. Apache abgehakt und das
Nächste ist dann eben die Installation oder das Einrichten von PHP.
Hatte ich eben schon gesagt, finde ich nicht ganz so sinnvoll, deswegen will ich
da auch gar nicht im Detail darauf eingehen, die ganzen Einstellungsmöglichkeiten
in der PHP-INI und so weiter und es sind insgesamt auch nur ein paar Seiten zur
PHP-Installation. Von daher, das halte ich für die Prüfung, finde ich
nicht so relevant, sage ich mal, von daher gehe ich da mal drüber hinweg. Und schon
sind wir beim nächsten Kapitel, das ist Kapitel 15, das sind die weiteren
Internet-Server-Dienste. Ja, was könnte denn noch dazugehören, außer so einem
Webserver, was läuft denn da noch? Mail-Server zum Beispiel, der wird hier
allerdings nicht behandelt im Kapitel und ja, was fällt einem da noch so ein im
Internet? Hm, DNS, jawohl! Und das ist auch gleich das, womit es hier in dem Kapitel
losgeht, nämlich Namens- und Verzeihungsdienste. Und das geht direkt
los mit dem DNS-Server Bind, das ist der Berkeley Internet Naming Domain, das ist
der Standard-DNS-Server, sage ich mal, der auf Linux immer benutzt wird. Alles, was zu
diesem konkreten Produkt wieder im Kapitel steht, finde ich nicht
prüfungsrelevant, würde ich mir auch nicht unbedingt im Detail anschauen oder
lernen, aber die Konzepte dahinter und das grundsätzliche Prinzip von DNS-Servern,
das sollte dir auf jeden Fall geläufig sein, auch für die Prüfung.
DNS ist ein zentrales Werkzeug, was nicht nur im Internet, sondern auch im
Internet eigentlich überall benutzt wird zur Namensauflösung und das muss man
beherrschen, meiner Meinung nach. Das ist absolutes Grundwissen für jeden IT-ler,
auch für Anwendungsentwickler. Das Kapitel enthält natürlich konkrete
Hinweise jetzt, wie ich sowas im Bind konfiguriere, aber es gibt zum Beispiel
auch eine schöne Liste der erlaubten oder möglichen DNS-Einträge, die es
überhaupt so gibt. Zum Beispiel den A-Eintrag oder den PTR oder den SOA oder
den CNAME und MX-Record und solche Sachen. Die muss man eigentlich schon
kennen und auch wissen, wofür die da sind. Gehen wir die mal ganz kurz durch. Der
A-Eintrag, das ist der Standard-Eintrag, sage ich mal, von Domain auf IP-Adresse
auflösen. Der umgekehrte Part von IP wieder zurück zu Domain wäre der PTR,
der Pointer-Eintrag. Dann haben wir noch den MX-Record, das steht für einen Mail-
Server. Das heißt, wenn meine Domain keinen MX-Record hat im DNS, dann kann
man mir keine Mails zustellen. Das wäre doof. Ein CNAME-Eintrag ist ein Alias für
einen A-Eintrag. Das heißt, schauen wir uns vor, ich habe einen Server mit einer IP-Adresse,
da habe ich 70 Domains drauflaufen, dann hätte ich 70 A-Einträge, die alle auf
diese IP-Adresse zeigen. Wechsle ich jetzt meinen Server, muss ich 70 Einträge ändern
und die IP-Adresse anpassen. Stattdessen könnte ich einen Eintrag machen, einen
A-Eintrag, der auf eine IP-Adresse zeigt und dann könnte ich 69 Einträge vom
Typ CNAME machen, also Alias-Einträge, die einfach auf den ersten A-Eintrag
zeigen. Das heißt, ich habe eigentlich eine Zuordnung zwischen Name und Name,
also einen Namen, der auf einen anderen Namen zeigt und das wäre halt ein Alias.
Das hat jetzt den Vorteil, dass ich diese IP-Adresse nur noch an einer Stelle ändern
muss, wenn ich das denn irgendwann tatsächlich mal tun muss, was jetzt nicht so häufig ist
wahrscheinlich. Dann gibt es noch einen NS-Eintrag, das wäre der Name-Server. Das
heißt, welcher DNS-Server ist denn überhaupt zuständig für meine Domain? Das kann ich
natürlich auch im DNS hinterlegen und so weiter. Also die sollte man schon mal
gehört haben und vielleicht auch erklären können. Ob sie konkret in der
Prüfung abgefragt werden, weiß ich nicht, habe ich so noch nicht gesehen, finde ich
aber absolutes Grundwissen muss man beherrschen, meiner Meinung nach.
Das nächste Kapitel, das ist der Verzeichnisdienst LDAP, also Lightweight
Directory Access Protocol und hier wird es am Beispiel von OpenLDAP gezeigt.
Auch hier wieder gleicher Hinweis, das konkrete Produkt würde ich mir nicht
angucken, aber die allgemeine Funktionalität von LDAP finde ich auch
sehr, sehr wichtig, gerade wenn wir zum Beispiel Anwendungen fürs Intranet
entwickeln. Da ist es eigentlich so, dass keiner mehr eine eigene Benutzerverwaltung
schreibt. Das ist, wenn wir zum Beispiel einen Active Directory haben, um in
dem Microsoft-Umfeld, dann binde ich meine Anwendung ans LDAP an, nämlich an
das Active Directory, was nur eine Implementierung von LDAP ist,
beziehungsweise das Protokoll unterstützt und dann brauche ich nicht
selber irgendwelche Tabellen und Rechte und Gruppen und weiß der Geier pflegen,
sondern ich ziehe mir das einfach aus dem Active Directory und das ist wirklich
super praxisrelevant. Also ich glaube alle unsere Internetanwendungen, die wir
gebaut haben oder die wir im Einsatz haben, hängen am LDAP und alles andere
wäre in der heutigen Zeit meiner Meinung nach völlig bescheuert, weil ich
halt eben 57 Benutzerverwaltungen pflegen muss, anstatt wenn ich zum
Beispiel ein Passwort ändern will, ich das eben nur noch an einer Stelle ändere.
Und so habe ich natürlich einen großen Vorteil, sowohl als Admin, ich muss das
nur noch an einer Stelle pflegen, aber auch die Benutzer natürlich haben so ein
Single-Sign-On, müssen sich nur ein Passwort merken und so weiter. Also finde
ich heute absoluten Standard, seine Anwendung ans LDAP anzubinden.
Ob es jetzt ein Microsoft Active Directory ist oder irgendeine andere
Implementierung, wie hier zum Beispiel das OpenLDAP, ist eigentlich wurscht. Aber wie
das grundsätzlich funktioniert und wie man dann zum Beispiel so eine LDAP-Abfrage
gestaltet mit diesen ganzen komischen Attributen und Namen und so weiter, das
ist hier ganz nett erklärt im Kapitel. Das würde ich mir mal angucken. Finde ich
nicht ganz so relevant für die Prüfung, habe ich jetzt noch nie was zu gehört,
gerade auch zu den konkreten Attributnamen zum Beispiel. Aber die
grundsätzliche Funktionalität von LDAP sollte dir schon bekannt sein und da kann
ich mir auch gut vorstellen, dass es dazu Prüfungsfragen gibt. Zum Beispiel, was ist
denn der Vorteil von einem zentralen Verzeichnisdienst? Warum mache ich so
was wie Active Directory? Und da haben wir ja gerade schon drüber geredet, zentrale
Verwaltung spart natürlich Ressourcen, Single-Sign-On und so weiter.
Ja und der Rest des Kapitels, das letzte Unterkapitel ist sonstige Server. Da
wird hier zum Beispiel von FTP-Servern geredet und dem INET-D finde ich für die
Prüfung relevant und auch für die Praxis ehrlich gesagt nicht ganz so
interessant. FTP-Server, wer die noch einsetzt? Ja, also ich setze es nicht mehr
ein. Ich weiß nicht, wer es noch tut. Es ist unsicher, es ist nicht verschlüsselt.
Ich würde auf jeden Fall zu was anderem tendieren, zum Beispiel Secure Copy oder
FTP-Over-SSH oder wie auch immer. Aber einen reinen FTP-Server zu betreiben, würde ich
heute einfach nicht mehr machen. Und der INET-D, das ist ein toller Dienst unter
Linux. Den muss ich vielleicht auch mir mal angeguckt haben, wenn ich den
tatsächlich brauche. Aber in der Praxis, glaube ich, ist er nicht mehr allzu weit
verbreitet und auch für die Prüfung ist er jetzt nicht unbedingt so interessant.
Also von daher, die beiden Sachen würde ich oder könnte man, glaube ich, getrost
überspringen. Da verpasst man nicht allzu viel. So, dann kommen wir schon zum
letzten großen Kapitel. Na ja, schon ist gut. Wir haben ja schon einiges hier
durchgesprochen heute. Aber das nächste Kapitel, Nummer 19, das ist jetzt
Web-Server-Anwendungen und das hat eigentlich nur einen wichtigen Inhalt,
nämlich PHP. Das geht jetzt also rauf und runter mit PHP. Ist jetzt also so ein
bisschen so eine, wie soll man sagen, Programmiersprachenschulung. Also
wirklich eine Einführung in PHP, wo es bei Null losgeht. Und da muss ich jetzt
sagen, hatte ich am Anfang schon gesagt, ich finde es jetzt nicht ganz so relevant.
Also man muss nicht PHP beherrschen als Anwendungsentwickler. Man muss
vielleicht das Prinzip von Web-Anwendungen beherrschen. Und wenn man
jetzt zum Beispiel noch nie eine Web-Anwendung gebaut hat, würde ich auch
jedem Entwickler mal empfehlen, das zu tun. Und wenn es auch nur ein kleines
Spielprojekt ist, einfach um mal zu verstehen, wie solche Anwendungen
funktionieren. Denn dafür kann natürlich auf jeden Fall auch, oder dazu kann es
auch Fragen geben im Fachgespräch und natürlich auch in der schriftlichen
Prüfung. Gab es auch schon ganz oft, wie oft halt so, wie oft, wie genau zum
Beispiel der Ablauf ist, wenn ich so eine Website aufrufe. Wie arbeiten da zum
Beispiel die Programmiersprache, die Datenbank, der Web-Server und der Browser
zusammen? Solche Sachen muss man schon erklären können. Das ist Allgemeinwissen.
Wie es in der konkreten Programmiersprache aussieht, ist dann für die Prüfung, wie
gesagt, nicht relevant. Aber ich finde PHP ist eine schöne Einstiegssprache. Ich
habe selber auch jahrelang PHP programmiert, auch gerade meine Ausbildung
zum Beispiel. Und die kann man wirklich gut lernen, die Sprache. Die ist super
verbreitet. Also auch hier wieder eine ausgedachte Zahl, 50 Prozent oder noch
mehr. Also hier würde ich sogar sagen, noch mehr Prozent des Internets läuft auf
PHP. Wenn man sich alleine mal die großen Anwendungen, wie zum Beispiel WordPress
anguckt, wo wirklich fast, ich glaube, 80 oder 90 Prozent aller Blogs weltweit
drauf laufen. Allein das ist schon einfach eine riesengroße Hausnummer. Und auch
große Firmen, wie zum Beispiel Facebook, setzen auf PHP. Also es ist einfach eine
super verbreitete Programmiersprache im Web. Und von daher, wenn du dir irgendwas
angucken willst, wo die Chance besteht, dass du das irgendwann mal tatsächlich
in der Praxis auch nutzen wirst, dann guck dir PHP an. Also ich glaube, ein
größeren Marktanteil an Programmiersprachen im Internet wirst du
tatsächlich nicht finden. Und genau dafür ist das Kapitel auch super geeignet.
Da gibt es also einen schönen Einstieg, wie PHP funktioniert und wie man
die Tags schreibt, damit man den PHP-Code in HTML einblenden kann und
umgekehrt und so weiter. Also alle diese Sachen sind da drin.
Es ist auch ein Datenbankzugriff drin beschrieben, wie man HTML erzeugt halt
und einfach so ein paar Standardsachen, Parameterübergabe und so weiter. Das
findet man dort alles. Das heißt, es ist eine schöne, kompakte Einführung in PHP.
Kann man gut benutzen, um mal so ein bisschen rumzuexperimentieren und so
einen kleinen Einstieg in die Sprache zu finden, wie ich meine. Also mir hat das
ganz gut gefallen, auch wenn es für mich natürlich jetzt nicht mehr ganz so viele
Neuigkeiten gab. Ich kannte den ganzen Kram halt schon von früher, sage ich mal.
Aber ich sage mal, alle wichtigen Sachen sind drin. Ich scrolle nochmal hier kurz
durch das Kapitel durch. Was haben wir da? Arrays sind da betrachtet und auch
natürlich mehrdimensionale Arrays und also assoziative Arrays werden in PHP
häufig benutzt. Assoziative Arrays, das heißt, dass ich ein beliebiges Objekt
als Schlüssel in einem Array benutzen kann. Also habe ich im Prinzip so eine
Art HashMap, wenn du das aus Java vielleicht kennst, wo halt ein Schlüssel
einem Wert zugewiesen wird und die Dinger heißen halt in PHP assoziative
Arrays. Da kann ich zum Beispiel Strings als Schlüssel benutzen, um dann eben auf
die Werte zuzugreifen. Ja, es werden verschiedene ganz wichtige
Funktionen vorgestellt. Es wird ein bisschen auf reguläre Ausdrücke
eingegangen, wie man Kommentare schreibt und selber Funktionen programmiert und
so weiter. Das ist da drin. Da gehen wir mal ein bisschen schneller drüber jetzt
hier. Und es gibt auch ein kleines Kapitel zu Klassen und Objekten. Finde
ich auch sehr wichtig. PHP, wenn du dich jetzt noch nicht so intensiv mit der
Sprache auseinandergesetzt hast, die hat mehrere Paradigmen, sage ich mal. Das ist
so eine Multiparadigma-Sprache. Die kommt auf jeden Fall aus der
prozeduralen Entwicklung. Im Hintergrund läuft auch, glaube ich, C. PHP war
ursprünglich einfach nur so ein Aufsatz auf C, damit man ein bisschen netter
programmieren kann und eben nicht mit C seine Web-Anwendungen bauen muss. Aber
im Laufe der Zeit kam da schon einiges dazu und inzwischen kann man auch auf
jeden Fall sauber objektorientiert mit PHP entwickeln. Man muss das nicht, aber
man kann das. Und hier gibt es auch eine kleine Einführung, wie ich das dann mit
PHP tun würde. Also wie ich eine Klasse definiere, wie die Zugriffs-
modifizierer sind und so weiter. Das wird dann hier einmal vorgestellt. Und auch
wirklich mit viel Quelltext als Beispiel. Also ich scrolle hier auch mal durch. Da habe ich
schon ein, zwei, drei Seiten, wo mal so eine Klasse im Quelltext dargestellt ist.
Also da kann man schon einiges rausholen, sage ich mal. Wird auch auf Vererbung
noch eingegangen und so ein bisschen so Besonderheiten von PHP, wie zum Beispiel
die Magic Methods, wo also sowas wie unterstrich unterstrich construct und
unterstrich unterstrich toString von solche Sachen beschrieben werden. Also
es gibt schon wirklich einen guten Überblick über die Sprache. Es gibt dann
auch noch eine Einführung in die Arbeit mit Datenbanken. Das hat mir auch erst
mal ganz gut gefallen. Ich hätte jetzt aber auf, ich hätte es ein bisschen anders
gemacht. Also im Buch ist es jetzt so, dass noch die in Anführungszeichen
klassische Methode beschrieben wird, wie ich auf die Datenbank zugreife mit
Funktionen. Das heißt prozedural. Ich habe also so ein paar Funktionen, wie zum
Beispiel MySQL Connect, MySQL Select Database, MySQL Query und so weiter.
Das ist so das, was ich noch, ja wie lange ist das her? Zehn Jahre? Noch länger
wahrscheinlich. Wo ich PHP gelernt habe, war das noch der Standard, wie das halt
in den PHP-Büchern damals beschrieben wurde. Würde ich heute aber nicht mehr so
machen. Ich würde heute die objektorientierten Möglichkeiten von PHP
ausschöpfen, wie es andere Programmiersprachen halt auch umsetzen.
Das ist in PHP heute schon sehr ähnlich möglich und da würde ich also nicht mehr
auf diese Funktional, Funktional ist es ja gar nicht, sondern auf diese prozedurale
Programmierweise eingehen. Von daher, das Kapitel würde ich vielleicht ein bisschen
überarbeiten. Prozeduralen Kram würde ich wegschmeißen und gleich auf die
objektorientierte Geschichte gehen, was übrigens dann auch im nächsten
Unterkapitel gemacht wird. Da gibt es die MySQL-I-Schnittstelle und die ist
objektorientiert und damit würde ich dann auf jeden Fall versuchen, mein Projekt
umzusetzen und nicht mit der prozeduralen Variante. Die ist dann doch
schon, wie ich finde, etwas veraltet. Die würde ich heute jetzt nicht mehr
unbedingt einsetzen. Was ich sehr schön fand an dem Kapitel ist, dass ganz am Ende
nochmal auf Unit-Tests eingegangen wird. Das finde ich richtig klasse. Ich bin ja
so ein leidenschaftlicher Verfechter vom Test-Driven-Development und das kann man
auch in PHP machen. Ist vielleicht nicht ganz so schön und so einfach wie zum
Beispiel in Java, aber es gibt zum Beispiel eine PHP-Unit, ein tolles Framework, um
ganz normal Unit-Tests schreiben zu können. Ist vom Einsatz her, so wie es
jetzt auch im Kapitel beschrieben wird, so ein bisschen auf dem Stand von JUnit 3.
Das heißt, ich muss zum Beispiel meinen Test-Case von einer Klasse erben lassen,
anstatt dass ich zum Beispiel wie in JUnit 4 mit so Annotationen arbeiten
kann. Oder wenn du zum Beispiel NUnit im .NET-Umfeld kennst, dann machst du ja an
die Klasse so ein Attribut dran. Zum Beispiel Test-Fixture schreibt man dann
als Attribut an die Klasse und das geht hier in PHP-Unit noch nicht. Zumindest
nicht in der Version, die hier im Buch beschrieben wird. Ich habe da aber auch
keinen Überblick. Ich weiß nicht, ob sowas heutzutage schon mit Kommentaren oder so
vielleicht in PHP auch möglich ist. Im Buch wird auf jeden Fall noch mit
der Basisklasse PHP-Unit-Framework-Test-Case gearbeitet. Ist so ein
bisschen einschränkend. Es geht halt mit Annotationen und so in Java ein bisschen
schöner. Aber Hauptsache, wir können überhaupt testen in PHP. Unit-Tests sind
super wichtig und von daher finde ich es eine tolle Sache, dass das hier auch im
Kapitel behandelt wird und auch ein paar Beispiele gezeigt werden. Zum Beispiel
auch wie man Mock-Objekte erzeugt. Das finde ich auch ein wichtiges Konzept, was
ich häufig in Unit-Tests brauche. Von daher insgesamt also eine runde Nummer.
Ich glaube, man kann mit dem Kapitel schon mal die wichtigsten Funktionen und
die Funktionsweise von PHP nachvollziehen und auch schon
ein bisschen in die Tiefe reingehen mit den Unit-Tests. Also von daher, ich kann
das als Einstieg gut empfehlen. Wenn du jetzt wirklich PHP lernen willst, reicht
das natürlich nicht aus. Das ist klar, das ist dann zu dünn. Da brauchst du ein
separates Buch für PHP. Kann ich dir jetzt aktuell auch nichts empfehlen, weil
das schon ein paar Jahre her ist, dass ich damit gearbeitet habe. Aber für
so einen ersten Einstieg, glaube ich, tolle Sache. Wenn du mal eben so ein
bisschen über PHP lernen willst, dann arbeite das mal durch. Dafür ist es
wirklich gut geeignet. Dann kommt das nächste Unterkapitel. Das
heißt, eine REST-API implementieren. REST ist super wichtig heute, würde ich
mir unbedingt angucken. Allerdings ist mir da das Kapitel, muss ich sagen, ein
bisschen zu dünn. Da ist sehr viel PHP-Kram wieder drin. Es geht hier also
wirklich darum, wie man eine REST-API implementiert mit PHP. Man hat also
wirklich auch einen Praxisansatz und sieht nachher auch eine lauffähige
Applikation oder sage ich mal die API. Aber da geht mir das Buch ein bisschen zu
wenig auf REST an sich ein. Dafür, dass das heute so ein wichtiges
Architekturprinzip auch ist in der Softwareentwicklung und so gut wie jedes
zweite Projekt magischerweise heute REST benutzt, angeblich, wobei die meisten
Prüflinge das auch nicht richtig erklären können. Dafür ist mir das Thema
zu wichtig, als dass es irgendwie hier auf ein, zwei Seiten abgehandelt wird. Also
das reicht mir nicht. Der Rest des Kapitels ist dann tatsächlich wirklich
Programmierung, wie man es jetzt umsetzt mit PHP. Und da kommen jetzt wirklich auch
seitenweise Quellcode-Beispiele, wie man es mit PHP macht. Ist eine nette Sache, um
das mal auszuprobieren. Ich glaube, zum Verständnis und um REST sauber
erklären zu können, reicht es nicht. Da brauchst du irgendwie noch andere
Literatur und ich glaube, REST ist heute ein so wichtiges Thema. Das lohnt sich
auf jeden Fall, sich das noch mal in einem anderen Buch anzugucken, weil das
auch sehr prüfungsrelevant ist. Also wenn irgendwo in einem Abschlussprojekt, wenn
ich da irgendwo REST nur lese, da wird auf jeden Fall im Fachgespräch dazu
eine Frage gestellt, weil ich einfach weiß, dass die meisten Leute das so ein
bisschen als Hype-Wort benutzen, aber eigentlich gar nicht genau verstehen,
was dahinter steht. Von daher unbedingt mal angucken. Für mich Grundwissen im
Rahmen der Anwendungsentwicklung. Damit wären wir jetzt auch mit den drei
Kapiteln schon durch. Ich habe allerdings, weil ich in den Shownotes zu den
Episoden immer die entsprechenden Kapitel aus dem Open Book beim
Rheinwerk Verlag verlinke, noch festgestellt, dass in der neuen Auflage
des Handbuchs zwei Kapitel gestrichen wurden. Und zwar Ruby on Rails und weitere
Technologien im Überblick. Und das finde ich eigentlich ganz schade. Ruby on Rails,
ich kann mir vorstellen, warum der Herr Kersten das gestrichen hat. PHP ist
sicherlich im Webumfeld verbreiteter als Ruby on Rails. Und wenn man sich das
Open Book anguckt zu Ruby on Rails, da ist jetzt auch nicht so viel drin. Wird so ein
bisschen beschrieben, wie das funktioniert und was das Prinzip ist und
so weiter. Also von daher, das tut mir jetzt auch nicht unbedingt weh, dass das
gestrichen wurde. Aber ich finde es irgendwo schade, denn Ruby on Rails ist
halt einfach so ein cooles Framework. Also wenn man so ein bisschen damit mal
gearbeitet hat, dann sieht man, dass das das Prinzip von MVC total cool umsetzt
und man da wirklich schnell mit arbeiten kann und da einfach ganz tolle Konzepte
auch drin sind, die man in der Architektur, in der Softwareentwicklung
beherrschen muss, wie eben zum Beispiel das MVC. Da gibt es sicherlich auch
PHP-Frameworks, die das umsetzen, aber in Ruby on Rails ist es quasi fest
eingebaut. Man kann gar nicht anders als sauber entwickeln. Und von daher
finde ich es schade, dass es jetzt rausgenommen wurde, weil es sich glaube ich als
Anwendungsentwickler absolut lohnt, sich damit mal auseinanderzusetzen. Denn dann
wirst du auch in vielen anderen Frameworks, Java EE zum Beispiel oder im
MVC, im .NET-Umfeld, wirst du die Prinzipien aus Ruby on Rails eigentlich
wiederfinden, weil die das damals schon vor über zehn Jahren eigentlich, sag ich
mal, fast eingeführt haben. Und von daher, ja, guck da auf jeden Fall noch mal rein.
Finde ich auf jeden Fall sehr spannend. Ich habe das Kapitel halt in den
Shownotes verlinkt. Übrigens habe ich auch vor kurzem bei
Heise Developer dazu einen kleinen Artikel geschrieben. Da habe ich nämlich
genau Java EE mit Ruby on Rails verglichen. Und da sieht man noch mal, wie
die beiden Frameworks, ja, wie sehr sie sich ähneln. Den Artikel habe ich auch
in den Shownotes verlinkt. Guck einfach mal rein. Link wie immer
www.anwendungsentwicklerpodcast.de slash 6 6 für die 66. Episode. Und dann zum
Schluss wurde auch noch das weitere Unterkapitel Weitere Technologien leider
gestrichen. Finde ich auch sehr schade, weil da noch mal so ein paar allgemeine
Sachen aus dem Internet so ein bisschen erklärt wurden, wie zum Beispiel Wikis
und Blogs. Und da gibt es durchaus auch in der schriftlichen Abschlussprüfung
mal eine Frage dazu. Was ist das denn überhaupt? Was ist denn ein Blog? Was ist
denn ein Wiki? Damit arbeiten wir wahrscheinlich oder viele von uns jeden
Tag, wenn ich nach irgendwas suche, ist fast immer Treffer Nummer eins die
Wikipedia. Ja und viele, wenn man die dann fragt, was ein Wiki ist, sagen dann, ja
das ist eine Online-Enzyklopädie. Halt eben die Wikipedia. Aber das ist halt nicht
richtig. Die Wikipedia ist eben nur ein Wiki. Und das Prinzip eines Wikis ist
ein ganz anderes. Und ich habe jetzt extra noch mal in meiner PDF-Datei von
dem Handbuch gesucht. Es wird tatsächlich nirgends wo mehr erklärt,
was ein Blog oder ein Wiki ist. Und das finde ich eigentlich sehr schade. Denn
das muss ich als Fachinformatiker auf jeden Fall wissen. Denn das kann
tatsächlich auch in der Prüfung abgefragt werden. Und auch so andere
Sachen, wie zum Beispiel ein CMS, ein Content Management System. Das wurde
vorher hier schön erklärt. Waren jetzt auch nicht super viele Seiten in der
alten Variante, aber es wurde wenigstens angesprochen. Und das fand ich eigentlich
schon ganz wichtig, dass man sich damit auseinandersetzt und dass man diese
Begriffe auch erklären kann. Also ein Webblog, gehen wir die Sachen doch
vielleicht mal kurz durch. Ein CMS, ein Content Management System, das ist ein
Backend-System, womit ich quasi meine Website administrieren kann und pflegen
kann. Ein Beispiel dafür wäre WordPress. Wobei WordPress eigentlich ursprünglich
ein Blog-System ist. Was ist ein Blog? Ein Blog ist eigentlich so eine
Wortneuschöpfung, früher gewesen aus dem Begriff Weblog.
Also Web-Tagebuch im Prinzip. Und das ist so ein bisschen so eine Abkürzung dafür.
Und was einen Web-Blog kennzeichnet, ist, dass die neuesten Beiträge immer oben stehen.
Das heißt, es ist chronologisch sortiert, aber eben nicht, dass die neuesten Sachen unten angehängt werden,
sondern immer nach oben verfrachtet werden.
Und standardmäßig historisch war es so, dass halt Leute da ihre privaten Sachen online gestellt haben,
halt wie so eine Art Tagebuch.
Aber ich denke mal, du kennst genug Blogs, wenn du irgendwo im Web unterwegs bist,
wie zum Beispiel auch meinen eigenen übrigens auf der Website zum Podcast.
Da habe ich ja auch einen Blog.
Das ist heute nicht mehr sowas wie ein privates Tagebuch,
sondern einfach eine Möglichkeit, wo ich halt Artikel online stellen kann.
Aber ursprünglich hat es halt diesen Ansatz.
Und ein Wiki kommt aus dem Hawaiianischen.
Wiki-Wiki heißt schnell.
Und was bedeutet das?
Ein Wiki ist auch so eine Art Content-Management-System und hat aber den zentralen Vorteil,
dass ich meine Website quasi inline bearbeiten kann.
Ich kann also die Inhalte der Website direkt verändern und die Änderung ist auch sofort wieder sichtbar.
Das ist der große Vorteil von Wikis.
Ich muss mich da also nicht in einem Backend irgendwo einloggen und dann irgendwo in einem Seitenbaum meine Seite suchen und die bearbeiten,
sondern ich kann, wie du es auch von der Wikipedia zum Beispiel kennst,
auf jeder Seite auf den Bearbeiten-Knopf drücken und dann kann ich die Seite sofort inline editieren.
Meistens gibt es dafür auch so eine gewisse Syntax, wie zum Beispiel die Media-Wiki-Syntax in der Media-Wiki halt,
auf der die Wikipedia basiert, wo ich dann zum Beispiel Sternchen einfügen kann und dann wird der Text fett und solche Sachen.
Und diese grundsätzlichen Programmarten, sage ich mal, die sollte man als Software-Entwickler durchaus kennen
und auch in der Prüfung abgrenzen können.
Da gab es, wie gesagt, auch schon mal eine Prüfungsfrage zu.
Von daher schade, dass dieses Kapitel jetzt in der neuen Auflage gestrichen wurde.
Okay, dann wären wir für heute aber durch.
Ich habe schon wieder die 30-Minuten-Marke gesprengt, aber die drei Kapitel passen ganz gut zusammen.
Deswegen drücke ich da jetzt heute mal ein Auge zu und mache da jetzt nicht noch eine weitere Episode zu.
Wir haben aber schon ein paar mehr Kapitel inzwischen besprochen, meine Azubis und ich.
Von daher geht es auch direkt weiter mit dem Buchclub, allerdings nicht nächste Woche.
Da geht es noch mal einmal wieder um die mündliche Prüfung.
Ich habe ja noch die Präsentation und die Fachgespräche, aus denen ich einige Sachen dieses Jahr mitgenommen habe.
Da wollte ich ein bisschen was zu erzählen. Das kommt dann nächste Woche.
Aber die Woche danach geht es dann weiter mit unserem Buchclub hier.
Und dann geht es quasi um das Frontend von Web-Anwendungen.
Heute haben wir so ein bisschen über das, was im Hintergrund läuft, gesprochen.
Und beim nächsten Mal geht es dann um HTML, CSS und JavaScript.
Und das sind die Kapitel 18 und 20 im Handbuch für Fachinformatiker.
Das heißt, wenn du noch mitmachen willst beim Buchclub oder noch Fragen hast oder mitlesen willst,
dann bis in zwei Wochen müsstest du die Kapitel 18 und 20 dir anschauen.
Die würde ich dann mal besprechen.
Alle Links, die ich heute erwähnt habe, meine Artikel und die Handbuchkapitel und so weiter,
die sind wie immer in den Shownotes verlinkt.
Unter anderem sind wir clubpodcast.de slash 66, also die beiden Ziffern 6 und 6.
Und da findest du dann auch, wenn du da schon bist, im Blog zum Beispiel einen netten Artikel.
Denn letzte Woche habe ich da wieder eine mit 100% bewertete Projektpräsentation veröffentlicht von Enrico Bassauer.
Der hat mir die zur Verfügung gestellt.
Die kannst du dir gerne mal anschauen.
Ist ein schönes Beispiel für eine Projektpräsentation, denn die sieht überhaupt gar nicht so aus, wie ich das hier immer erzähle.
Wenn du vielleicht schon meinen Blog kennst und meine Beispielarbeiten, die ich da immer hoch packe,
gerade auch von meinen ehemaligen Azubis, dann wirst du feststellen, dass die sehr visuell geprägt sind, sag ich mal.
Und so erzähle ich es ja auch immer im Podcast.
Also viele Bilder, wenig Text und so weiter.
Und die Präsentation von Enrico, die sieht doch ein bisschen anders aus.
Sie sieht eher, sag ich mal, wie so eine klassische Präsentation aus und wurde von der IHK Aachen aber mit 100% bewertet.
Natürlich inklusive Fachgespräch.
Das heißt, Enrico hat auch im Fachgespräch natürlich eine super Leistung gebracht.
Aber das kann man natürlich nicht im Blog zeigen, wie das funktioniert hat oder wie das gelaufen ist.
Deswegen gucken wir uns nur die Präsentation an.
Und wenn du ein gutes Beispiel brauchst für deine eigene Präsentation, wenn du die vielleicht noch vor dir hast,
dann schau doch mal vorbei.
Wenn dir die Inhalte hier in meinem Podcast und auf der Website gefallen und du regelmäßig informiert werden möchtest,
wenn es was Neues gibt, dann hast du die Möglichkeit, dich in meinen Newsletter einzutragen.
Unter anwendungsentwicklerpodcast.de slash Newsletter kannst du das absolut kostenfrei tun.
Wenn dir das nicht mehr gefällt, kannst du dich auch jederzeit austragen.
Bin ich auch nicht böse drum.
Hauptsache ist, dass du irgendwie was mitbekommst, was dich weiterbringt.
Und von daher melde dich einfach an, wenn du möchtest.
Dann sage ich dir immer einmal die Woche, wenn es was Neues gibt.
Und meine Links der Woche zum Beispiel, die gibt es auch immer schon vorab.
Damit wäre ich jetzt für heute aber auch wirklich durch.
Ich sage vielen, vielen Dank fürs Zuhören und bis zum nächsten Mal. Tschüss.









Hi Stefan,
Let’s Encrypt ist ja nicht gerade ungeschoren davon gekommen in Deinem Podcast 😉
Kannst du das noch ein bisschen ausführen, warum das kein „vernünftiges SSL-Zertifikat“ (bei Minute 16) ist?
Geht es dir darum, dass man bei Let’s Encrypt eventuell nicht mehr lernt, wie das mit CSR und formate Konvertieren und ablaufenden Zertifikaten so ist? SSL ist übrigens eine alte Bezeichnung. TLS ist der Nachfolger.
Für das Thema Webserver konfigurieren habe ich noch eine kleine Vortagsempfehlung: Zeitgemäße Webserver-Konfiguration — Ein Serviervorschlag
Danke übrigens für die Hosting Empfehlung. Ich bin selbst gerade etwas am suchen.
Gruß Robin
Hallo Robin,
ich habe nichts gegen let’s encrypt und setze es auch selbst ein. Es ist nur nervig, dass die Laufzeit der Zertifikate so kurz ist. Und irgendwie habe ich immer noch Bedenken, dass sie nicht überall akzeptiert werden. Aber das ist wohl unbegründet 🙂
SSL/TLS kenne ich. Ist nur die alte Gewohnheit…
Das Video werde ich mir mal anschauen. Ich suche immer gute Tutorials für meine Studenten. Danke!
Viele Grüße!
Stefan
Hallo Stefan,
die Gültigkeit eines Zertifikats ist so eine Sache.
Pro (kurze Gültigkeit):
Weniger Probleme mit dem zurückziehen von Zertifikaten. Beispiel certificate revocation list (CRL) und Heartbleed. Aber das kann man mit OCSP und OCSP stapling in den Griff bekommen.
Erhöhte Sicherheit. Kontrolle über den privaten Schlüssel wird öfter geprüft.
Admins werden zur Automatisierung erzogen 😉
Contra (kurze Gültigkeit):
Das einzige Problem was ich hier sehe ist bei embedded systems. Denn Falle hatte ich vor kurzem mit einer alten IP-Kamera. Die kann (noch) kein ACME. Da müsste man das Zertifikat also entweder alle 90 Tage manuell erneuern, sich ein Skript dafür schreiben oder ein Zertifikat mit längerer Gültigkeit beschaffen. Aber bei Servern über die man die Kontrolle hat spielt das keine Rolle. Hierfür gibt es genug gute Möglichkeiten, die Zertifikats Erneuerung zu automatisieren (ich arbeite selbst an so einer Möglichkeit mit Ansible, siehe debops.pki).
„Und irgendwie habe ich immer noch Bedenken, dass sie nicht überall akzeptiert werden.“
Meines Wissens wird es von jedem Endgerät anerkannt das halbwegs vernünftige Krypto unterstützt. Ich meine mich zu erinnern, dass sogar für Windows XP SP3 noch Anstrengungen unternommen wurden und es jetzt selbst da noch funktioniert (falls das noch jemand benutzt → keine gute Idee).
Zum Vortag: Gerne geschehen 🙂
Gruß Robin
Hallo Robin,
schöne Diskussion der Vor- und Nachteile! Danke dafür.
Die Automatisierung sollte für keinen halbwegs kompetenten Admin ein Problem sein. Und wenn sogar Uraltsysteme damit laufen, nehme ich meine Bedenken hiermit zurück 🙂
Viele Grüße!
Stefan