# Webinterface

Met een webinterface (Engels: web interface) wordt meestal een grafische gebruikersomgeving (GUI) bedoeld voor de gegevensuitwisseling tussen een computergebruiker en een webservice of een webapplicatie. De webapplicatie of de webservice kan zich op een server bevinden die op het internet of op een lokaal netwerk is aangesloten. De webservice kan in veel gevallen geraadpleegd worden met behulp van een webbrowser of door een plug-in in een webpagina, zoals door Flash Player of door een Java-applet. Een webservice kan ook geraadpleegd worden door de gebruiker van een app op een smartphone, tabletcomputer of smart-tv.
De gebruiker van een webservice hoeft niet per se een levend persoon te zijn maar kan ook een bot of een embedded system zijn. De datacommunicatie via webinterfaces verloopt meestal met behulp van het Hypertext Transfer Protocol (HTTP), hoewel het beveiligde HTTPS steeds vaker wordt toegepast voor gegevensuitwisseling over het world wide web.

## Netwerkverbindingen

Om een netwerkverbinding tussen client en server te maken moet de client eerst met succes een TCP-handshake met de server uitvoeren.

### Interfaces en netwerkprotocollen

Voor de implementatie van een platformonafhankelijke interface binnen een service-georiënteerde architectuur (SOA), kunnen ook andere internetprotocollen dan HTTP en HTTPS gebruikt worden, zoals FTP of SMTP. Hoewel webinterfaces met behulp van SOAP op basis van verschillende verbindingsgeoriënteerde TCP-protocollen geïmplementeerd kunnen worden, worden HTTP en HTTPS het meest voor interfaces van webservices gebruikt.

### Handshakes en beveiliging

Als de TCP-handshake met succes is uitgevoerd kan een server informatie over een webservice aan een client doorgeven door te verwijzen naar een WSDL-document. WSDL staat voor web services description language, een zogenaamde interface description language (IDL) met een XML-syntaxis. In een WSDL-document worden de eigenschappen van de interface van een webservice beschreven. In het WSDL-document staat de WSDL-versie beschreven met gegevens over onder andere de operaties, types, objecten of datastructuren die via de webinterface uitgevoerd of uitgewisseld worden. De webclient en webservice hebben een service broker en een WSDL-document nodig om een betrouwbare en stabiele netwerkverbinding op te zetten. Beveiligde webinterfaces gebruiken voor netwerkverbindingen TLS-encryptie. Tijdens de TLS-handshake wordt door een certificaatautoriteit een certificaat verstrekt waarmee een webclient de server authenticatie kan controleren en wisselen de server en de client publieke sleutels uit. Met de publieke sleutels worden alle gegevens versleuteld die na de TLS-handshake over de beveiligde netwerkverbinding verstuurd worden.

## Toepassingen
### Interactieve en grafische applicaties

Webinterfaces hebben als voordeel dat internetprotocollen platformonafhankelijk zijn en dat voor vrijwel elk besturingssysteem een paar populaire webclients voor het raadplegen van webservices beschikbaar zijn. Daarom hoeft een gebruiker doorgaans geen additionele software op zijn computer te installeren om een webinterface te kunnen gebruiken. De mogelijkheden die een webbrowser als webinterface kan bieden zijn aanzienlijk uitgebreid met de standaardisatie van onder meer JavaScript, HTML5, CSS3, SVG, JSON en jQuery.
Bekende voorbeelden van de grafische en interactieve mogelijkheden die webinterfaces kunnen bieden zijn de cartografische diensten van Google Maps en OpenStreetMap.

### Embedded systems

Naast smartphones of smart-tv's kunnen embedded systems ook webinterfaces gebruiken om gegevens met webservices uit te wisselen. Embedded systems in voertuigen kunnen bijvoorbeeld GPS-gegevens over mobiel internet naar gedistribueerde databases van bedrijven in de logistieke sector versturen. Slimme meters, windturbines en smart grids kunnen beveiligde webinterfaces gebruiken om gegevens over het verbruik en de productie van energie met een netbeheerder uit te wisselen.

### Netwerkapparatuur

Op veel netwerkapparatuur voor huisnetwerken, zoals ADSL-routers en multilayer switches, ontbreken aansluitingen voor monitoren, toetsenborden en muizen, zodat deze apparatuur meestal alleen geconfigureerd kan worden via een netwerkverbinding. Doorgaans kan voor de configuratie van deze apparatuur elke computer met een eenvoudige webbrowser gebruikt worden. De configuratie van het apparaat kan aangepast worden door gegevens uit te wisselen met een webapplicatie die op het netwerkapparaat geïnstalleerd is. Soms moet de ethernetkabel van computer waarmee men het apparaat configureert op een bepaalde fysieke ethernetpoort aangesloten worden en in plaats van het gebruikelijke poortnummer 80 voor HTTP moet meestal een TCP-gebruikerpoort gebruikt worden. Hierdoor wordt het voor hackers iets lastiger om op netwerkapparaten in lokale netwerken in te breken.

## Encryptie en firewalls

Het gebruik van een webinterface kan voordelig zijn omdat de gegevensoverdracht via het beveiligde HTTPS-protocol kan verlopen en omdat de overdracht door firewalls doorgaans probleemloos verloopt. Het nadeel kan de extra overhead zijn om de gegevens te verzenden en de hogere computationele inspanning voor de constructie en analyse van XML-gegevensstructuren.