Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een proxy is een tussenliggende server die zich tussen een client (zoals uw toepassing) en een bestemmingsserver (zoals een back-end-API) bevindt. Wanneer uw toepassing een aanvraag verzendt, ontvangt de proxy deze eerst. De proxy kan het verzoek vervolgens doorsturen naar de doelserver, het wijzigen, blokkeren of rechtstreeks een antwoord terugsturen.
Kortom, een proxy handelt namens de client of de server om communicatie te bemiddelen.
Hoe een proxy werkt
Proxy's werken op HTTP-niveau (of andere toepassingsprotocollen) door binnenkomende aanvragen te ontvangen en een of meer van de volgende acties uit te voeren:
- Het verzoek doorsturen naar de doelserver en het antwoord vervolgens terugsturen naar de client.
- het wijzigen van headers, URL's of payloads voordat ze worden doorgestuurd.
- onderscheppen en lokaal reageren op de aanvraag zonder contact op te maken met de doelserver.
- Het weigeren van de aanvraag op basis van regels of toegangsbeleid.
Vanuit het perspectief van de client verzendt deze gewoon een aanvraag naar een URL. De proxy verwerkt alles achter de schermen. Het patroon is client naar proxy naar doelserver.
Dit patroon introduceert een laag van controle en abstractie die u kunt gebruiken om de beveiliging, waarneembaarheid, prestaties en testbaarheid te verbeteren.
Typen proxies
Er zijn verschillende soorten proxy's. Elk is geschikt voor specifieke rollen in de systeemarchitectuur.
doorstuurproxy
Een forward proxy bevindt zich vóór de client. Wanneer uw toepassing een aanvraag indient, gaat deze via de proxy, waarmee wordt bepaald of en hoe deze moet worden doorgestuurd. Forward-proxy's worden doorgaans gebruikt om
- Toegang tot externe resources beheren.
- Clientverkeer anoniem maken.
- Registreer het uitgaande verkeer voor het monitoren.
- Pas inhoudsfiltering of transformatie toe.
Omgekeerde proxy
Een omgekeerde proxy bevindt zich vóór de server. Klanten zijn niet op de hoogte van de onderliggende back-end infrastructuur. De reverse proxy ontvangt binnenkomende verzoeken en stuurt deze door naar een van de verschillende back-endservers. Omgekeerde proxy's worden vaak gebruikt voor:
- Verkeer gelijkmatig verdelen over meerdere diensten.
- Serveer antwoorden in de cache om de belasting van de back-end te verminderen.
- Beëindig TLS/SSL-verbindingen.
- Interne servicegegevens van het openbare internet verbergen.
Transparante proxy
Een transparante proxy onderschept verkeer zonder dat de client expliciet is geconfigureerd om deze te gebruiken. Dit type wordt gebruikt in bedrijfs- of internetprovideromgevingen om beleid af te dwingen of het gebruik te controleren.
Waarom proxy's belangrijk zijn voor toepassingsontwikkelaars
Infrastructuur- of netwerkteams beheren vaak proxy's. Proxy's hebben echter een directe invloed op het gedrag van applicaties, vooral in ontwikkel- en testomgevingen. Hier zijn enkele praktische manieren waarop ze uw dagelijkse werk beïnvloeden.
Foutopsporing en waarneembaarheid
Proxy's kunnen HTTP-verkeer vastleggen en inspecteren. Hulpprogramma's zoals Dev Proxy, Fiddler, Proxyman, Charles Proxy of mitmproxy fungeren als lokale doorstuurproxy's. U kunt uw toepassing uitvoeren om aanvragen en antwoorden te analyseren, fouten te herkennen en headers of verificatietokens te verifiëren.
API-gateway en routering
In veel productiesystemen wordt het verkeer naar de back-end van uw toepassing gerouteerd via een API-gateway of reverse proxy, zoals NGINX, of een cloudeigen service zoals Azure API Management. Deze proxy's verwerken routering, verificatie, frequentiebeperking en meer.
Wanneer u uw API ontwerpt of gedistribueerde services bouwt, moet u begrijpen hoe proxy's van invloed zijn op headers (zoals X-Forwarded-For), time-outs en limieten voor de grootte van aanvragen.
CORS en lokale ontwikkeling
Tijdens lokale ontwikkeling, met name in webtoepassingen, kunt u CORS-beperkingen (Cross-origin Resource Sharing) tegenkomen wanneer u API's aanroept vanuit de browser. Een ontwikkelingsproxy kan uw aanvragen doorsturen naar de doel-API terwijl deze headers herschrijft om CORS-beperkingen te omzeilen. Veelvoorkomende voorbeelden van ontwikkelhulpprogramma's die CORS-aanvragen herschrijven, zijn vite, webpack-dev-serverof aangepaste proxy-middleware in frameworks zoals Express of ASP.NET Core.
Servicevirtualisatie en testen
Proxy's kunnen back-end-API's simuleren. Deze mogelijkheid is handig wanneer de echte service niet beschikbaar, onstabiel of duur is om te gebruiken tijdens het testen. Door reacties te onderscheppen en te mocken, kunt u het gedrag van toepassingen testen onder verschillende scenario's, zoals time-outs, fouten of onjuiste gegevens.
Tools zoals Dev Proxy of aangepaste proxy-implementaties worden vaak voor dit doel gebruikt bij integratie en end-to-end tests.
Verificatie en beveiliging
Proxy's zijn vaak de frontlinie van verdediging bij het beveiligen van applicaties. Ze kunnen toegangscontroles afdwingen, authenticatieheaders injecteren of TLS/SSL-verbindingen beëindigen. Als ontwikkelaar is het belangrijk om te weten hoe uw toepassing zich gedraagt wanneer deze zich achter een proxy bevindt en hoe u toegang krijgt tot headers die verificatie- of identiteitsgegevens bevatten.
Algemene overwegingen voor headers en proxy's
Wanneer een aanvraag via een proxy wordt doorgegeven, worden bepaalde headers toegevoegd of gewijzigd om belangrijke metagegevens te behouden. Bijvoorbeeld:
-
X-Forwarded-For: geeft het oorspronkelijke IP-adres van de client aan. -
X-Forwarded-Proto: Geeft het oorspronkelijke protocol (HTTP of HTTPS) aan. -
X-Forwarded-Host: Geeft de oorspronkelijke host aan die door de client is aangevraagd.
Wanneer uw toepassing achter een reverse proxy wordt uitgevoerd, moet u ervoor zorgen dat uw framework of platform is geconfigureerd om deze headers te vertrouwen en correct te interpreteren.
Dev Proxy als doorstuurproxy voor ontwikkeling en testen
Dev Proxy is een doorgestuurde proxy die u kunt gebruiken om verzoeken van uw toepassing naar elke doelserver te onderscheppen en te wijzigen. Met Dev Proxy kunt u het volgende doen:
- Bekijk hoe uw app reageert op API-fouten.
- Controleer hoe uw app API-frequentielimieten verwerkt.
- Bekijk hoe uw app trage API's verwerkt.
- Sta snel nep-API's op zonder een regel code te schrijven.
- Verbeter uw app met contextuele richtlijnen voor het gebruik van API's.