Werking PHP website
Voor veel mensen is het nog onduidelijk hoe PHP nu eigenlijk werkt. Ik leg in dit artikel uit wat er gebeurt als u een website opent waarin een PHP-code is ingesloten.
Back to the roots: HTML
Als u al eens de broncode van een website hebt bekeken, hebt u ongetwijfeld een reeks aanwijzingen gezien, de zogenaamde HTML-code. HTML, ofwel 'HyperText Markup Language', is een taal waarmee webpagina's worden opgemaakt. Strikt gesproken is HTML geen programmeertaal, omdat belangrijke kenmerken van programmeertalen zoals lussen, variabelen en constanten ontbreken. HTML geeft een browser aanwijzingen hoe een bepaalde pagina eruit moet zien, welke kleuren de tekst mag hebben, op welke plek een afbeelding wordt ingevoegd en welke koppeling naar welke pagina leidt.
U kunt de HTML-broncode van een pagina bekijken door een pagina te openen en vervolgens in het menu
View of
Beeld de optie
Page Source of
Paginabron bekijken te kiezen.
Binnen de HTML-broncode worden nu de aanwijzingen voor PHP ondergebracht. Deze worden met specifieke tekens van HTML-code gescheiden, zodat de computer onderscheid kan maken tussen HTML en PHP.
De opbouw van een URL
De navigatie op het internet vindt volledig via URL's plaats. URL betekent Uniform Resource Locator. In feite is dat niets anders dan een internetadres dat schuilgaat achter koppelingen waarop u kunt klikken of achter domeinnamen die u in de adresbalk kunt typen. Een adres zoals
http://www.yahoo.com is net zo goed een URL als bijvoorbeeld
http://muchmagic.wiwi.uni-frankfurt.de/~jfranke/index.htm. Ik gebruik deze URL als voorbeeld om te laten zien hoe een URL is opgebouwd.
Een URL begint altijd met de weergave van het gebruikte protocol. In dit geval is dat
http://, het HyperText Transfer Protocol. HTTP verzorgt de communicatie met de webserver en geeft aan dat met deze URL een webpagina wordt geopend. Met andere protocollen zoals FTP, het File Transfer Protocol (
ftp://), kunt u bestanden downloaden of naar een server overbrengen. Eenvoudig gesproken zorgen protocollen voor de communicatie tussen twee deelnemers, in dit geval de webserver en de webclient (de computer van de internetsurfer). Zonder protocol weet geen van de deelnemende partijen wat de verzonden gegevens betekenen en in welke volgorde deze moeten worden verzonden.
Na het te gebruiken protocol volgt de naam van de computer (in dit geval
muchmagic) en het domein waar deze computer te vinden is
wiwi.unifrankfurt.de. Zo'n domeinnaam leest u van rechts naar links: binnen het zogenaamde top-level-domein
de bestaat een domein
uni-frankfurt dat zelfs weer een subdomein
wiwi bevat. In het voorbeeld www.yahoo.com is www de naam van de computer die u wilt gebruiken en google.com het domein. Dit deel van de URL beschrijft welke computer waar staat. IN het voorbeeld betekent dit dat de computer met de naam
muchmagic in het top-level-domein voor Duitsland (
de) staat en daar op de Universiteit van Frankfurt (
uni-frankfurt) binnen de faculteit van economische wetenschappen (
wiwi) te vinden is.
Na de opgave van de computer en het domein volgt het pad waar het document op de computer is opgeslagen. In het voorbeeld staat het bestand
index.htm in de submap
~jfranke/.
Maar waar staan bij Yahoo! de map en het bestand? Hier eindigt de URL na het adres van de computer. Welk bestand moet dus worden weergegeven? De meeste webservers zijn zo ingesteld dat ze automatisch een bepaald bestand weergeven als de URL niet compleet is. Meestal is dat het bestand
index.htm of
index.html. Als u in de adresbalk
http://www.yahoo.com/index.html typt, verschijnt de startpagina van Yahoo!.
Websites zonder PHP oproepen
Als u een dergelijke URL of een website rechtstreeks oproept via de adresbalk van de browser of via een koppeling, vraagt de browser bij de computer die het doel is naar de gewenste en in de URL opgegeven bestand. De computer herkent de aanvraag en stuurt deze naar de server-service die op de computer draait. Een server-service is een programma dat op een bepaalde computer draait en dat bepaalde diensten of services aanbiedt. Op een enkele computer kunnen verschillende onafhankelijke servers actief zijn. Elk daarvan kan een eigen type aanvraag verwerken. Het begrip webserver is hier dus niet correct. Nauwkeuriger gezegd is een webserver een computer waarop een service actief is (ofwel een programma is gestart) dat aanvragen van browsers met het HTTP-protocol kan verwerken. Apache is een dergelijk programma dat een aanvraag in de vorm van een URL beantwoordt met een website ofwel het gevraagde document.
Bij vrijwel alle grote bekende websites is het verloop aanzienlijk ingewikkelder en wordt PHP of een vergelijkbare taal voor dynamische websites gebruikt. Dat is een duidelijk teken voor de verdere ontwikkeling van het World Wide Web.
Weergave van een eenvoudige aanvraag
Oproepen van websites met PHP
Als het gevraagde document een bestand is dat PHP-broncode bevat, komt hier nog een extra stap bij. Voordat het document naar de browser kan worden verstuurd, wordt de PHP-parser gestart die de aanwijzingen vertaalt en uitvoert welke in het HTML-bestand zijn opgenomen. Dit gebeurt op de computer waaraan de aanvraag is gericht. Daarom is hier sprake van een opdracht die aan de kant van de server wordt uitgevoerd.
De browser van de gebruiker die de aanvraag heeft ingediend, heeft dus niets te maken met het uitvoeren van de PHP-opdrachten. Alle opdrachten worden altijd op de server uitgevoerd, waarna zuivere HTML-code wordt teruggezonden. Dat is ook de reden dat u in de broncode van webpagina's die u in een browser bekijkt, nooit PHP-opdrachten zult aantreffen, want deze worden al op de webserver uitgevoerd en vervangen door zuivere HTML-code.