|
Pragt.info
Partner site van: www.heinpragt.com (c) Hein Pragt |
![]() |
Zoeken op deze site! |
|
|
Het http (Hypertext Transfer) protocol
Het volgende gebeurt er in de achtergrond wanneer u contact maakt met een Internet host en een specifieke pagina binnen de site opvraagt. Als voorbeeld vragen we om de pagina /spelcomputers/programmeren.php van de website HTTP://www.pragt.info op. De volledige URL zal dus: HTTP://www.pragt.info/spelcomputers/programmeren.php zijn. Als eerste zal de browser een socket (netwerk) verbinding maken met de host HTTP://www.pragt.info op poort 80 (de standaard HTTP poort) waarna het volgende tekst verzoek verzonden zal worden naar deze webserver. *) Noot: [blanko regel] staat voor een lege regel met alleen een regelterugloop code. De webserver zal hierna een pagina sturen (gegenereerde HTML door PHP maar voor de ontvanger is het gewoon HTML) voorafgegaan door enkele HTTP headers. Nu is het verzoek voor de webserver geheel afgehandeld, de webserver sluit de socket verbinding begint aan het volgende verzoek van een andere gebruiker. Aangezien HTTP een stateless protocol is zal de webserver elk afzonderlijk verzoek afhandelen en daarna is het gereed en afgesloten en weet de webserver bij een volgend verzoek niet of het van dezelfde of een andere host afkomstig is. het HTTP protocol zelf is dus niet in staat een sesie bij te houden. Dit is een heel eenvoudig voorbeeld, normaal zullen er voor een internet pagina vele HTTP verzoeken na elkaar gedaan worden voor alle include bestanden zoals de .css en .js bestanden, maar ook bijvoorbeeld een afzonderlijk verzoek voor elke afbeelding die op de pagina staat. Het verschil tussen GET en POST is belangrijk als we formulieren gebruiken of via verborgen formulieren in de pagina data willen doorgeven aan een volgend verzoek. Ook zal het drukken op een submit knop binnen een formulier een nieuw HTTP verzoek zenden naar de HTTP webserver waarbij de gegevens uit het formulier ook verzonden zullen worden naar de HTTP webserver. Dit kan op twee verschillende manieren gebeuren, de eerste manier is met de GET methode. Deze methode verstuurt de informatie uit het formulier via de url en in de adresbalk zal het ook zichtbaar zijn. Voorbeeld: HTTP://www.pragt.info/contact.php?contact_naam=Hein&email=hein@hmp.nl Achter de URL staat een vraagteken om aan te geven dat er parameters volgend, een parameter bestaat uit een veldnaam een = teken en een waarde en meerdere parameters worden gescheiden door een ampersant (&) teken. De gebruiker kan dus de data die verzonden is naar de HTTP webserver ook zien in de adresbalk. Dit is niet fraai en ook gevoelig voor manipulatie omdat eenvoudig gegevens gewijzigd kunnen worden waarna het verzoek opnieuw verzonden kan worden. Een hack poging uit het verleden bestond er uit dat de postbank de sessie id van de gebruiker via de url meegaf aan een volgend verzoek. Door in te loggen onder de eigen naam en daarna het sessie nummer handmatig aan te passen, kon men de sessie van een andere gebruiker overnemen. Nadat dit bekend werd is er snel een aanpassing gemaakt maar deze hack methode werkt nog steeds op een aantal sites die op deze wijze een sessie bijhouden. Naast de GET methode kunt u de gegevens uit een formulier ook verzenden met de POST methode. In principe werken de POST en GET methode hetzelfde alleen wordt de informatie uit het formulier niet verzonden via de adresbalk maar via een zogenaamd HTTP headers. Bij het versturen van het formulier zal men geen informatie in de adresbalk zien, de informatie wordt niet zichtbaar via HTTP headers verstuurd. Dit maakt de POST methode een stukje veiliger omdat niemand nu kan wat er eigenlijk verstuurd wordt maar een echt hacker is ook in staat om headers te manipuleren. In een framework zoals PHP worden de GET en de POST variabelen meestal in een array geplaatst voor de webapplicatie. In PHP zullen dit het $_POST[] en het $_GET[] array zijn waarin de variabele namen als keys staan de waarden als valies. Ook bestaat er soms een instelling om de GET en POST variabelen automatisch in globale variabelen te stoppen, maar dit is een bekend veiligheidslek en het zal op de meeste moderne serves ook uitgeschakeld zijn. U kunt een add-on voor Mozilla Firefox downloaden, waarmee u, wanneer u deze add-on aanzet, alle headers die tussen de browser en de http webserver heen en weer gaan kunt bekijken. dit kan zeer handig zijn wanneer u een webapplicatie moet testen of debuggen. Fiddler is een Web Debugging Proxy die alle HTTP(S) verkeer tussen uw computer and het Internet opslaat waarna u het kunt inspecteren. Het is een freeware programma en het werkt voor alle browsers maar ook alle andere web applicaties die HTTP als protocol gebruiken. De eerste versie van het HTTP protocol heeft de versie 1.0 en in eerste instantie voldeed dit protocol goed. Toen het web begon te groeien kwamen er ook een aantal tekortkomingen in dit protocol aan het licht die opgelost in de volgende versie 1.1 die vanaf circa 1997 de standaard op het World Wide Web is Technische details van HTTP staan beschreven in verschillende RFC's. HTTP versie 1.0 staat in het RFC met nummer 1945. Versie 1.1 van het protocol staat in RFC met nummer 2616. Deze zijn te downloaden op: www.rfc-editor.org/rfc.html |
|
Disclaimer. Privacy beleidWij maken gebruik van externe advertentiebedrijven om advertenties weer te geven wanneer u onze website bezoekt. Deze bedrijven gebruiken mogelijk informatie (niet uw naam, adres, e-mailadres of telefoonnummer) over uw bezoek aan deze of aan andere websites om advertenties weer te geven over goederen en services waarin u wellicht geďnteresseerd bent. Als u hierover meer informatie wenst of als u wilt voorkomen dat deze bedrijven deze informatie gebruiken, klikt u op deze link. |