Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A proxy egy közvetítő kiszolgáló, amely egy ügyfél (például az alkalmazás) és a célkiszolgáló (például egy háttér API) között helyezkedik el. Amikor az alkalmazás kérést küld, a proxy kapja meg először. A proxy ezután továbbíthatja a kérést a célkiszolgálónak, módosíthatja, letilthatja vagy közvetlenül visszaadhatja a választ.
Röviden: a proxy az ügyfél vagy a kiszolgáló nevében jár el a kommunikáció közvetítése érdekében.
A proxy működése
A proxyk HTTP-szinten (vagy más alkalmazásprotokollokon) működnek a bejövő kérések fogadásával és az alábbi műveletek közül egy vagy több végrehajtásával:
- A kérés továbbítása a célkiszolgálóra, majd a válasz visszahelyezése az ügyfélnek.
- A fejlécek, URL-címek vagy hasznos adatok módosítása továbbítás előtt.
- A kérés helyi elfogása és megválaszolása a célkiszolgálóval való kapcsolatfelvétel nélkül.
- A kérés elutasítása szabályok vagy hozzáférési szabályzatok alapján.
Az ügyfél szempontjából egyszerűen elküld egy kérést egy URL-címre. A proxy minden mást kezel a színfalak mögött. Az mintázat az ügyfélről a proxyra, majd a célkiszolgálóra irányul.
Ez a minta egy szabályozási és absztrakciós réteget vezet be, amellyel javíthatja a biztonságot, a megfigyelhetőséget, a teljesítményt és a tesztelhetőséget.
Proxyk típusai
Különböző típusú proxyk léteznek. Mindegyik megfelel a rendszerarchitektúra adott szerepköreinek.
Proxy továbbítása
Egy előremutató proxy található az ügyfél előtt. Amikor az alkalmazás kérést küld, az áthalad a proxyn, amely eldönti, hogy az alkalmazás továbbítható-e és hogyan. A továbbítási proxykat általában a következőkre használják:
- A külső erőforrásokhoz való hozzáférés szabályozása.
- Az ügyfélforgalom anonimizálása.
- Naplózza a kimenő forgalmat a figyeléshez.
- Tartalomszűrés vagy átalakítás alkalmazása.
Fordított proxy
A fordított proxy a kiszolgáló előtt helyezkedik el. Az ügyfelek nem ismerik az alapul szolgáló háttér-infrastruktúrát. A fordított proxy fogadja a bejövő kéréseket, és továbbítja őket a háttérkiszolgálók egyikének. A fordított proxykat általában a következőkre használják:
- A terheléselosztás több szolgáltatás forgalmát is kiegyensúlyozza.
- Gyorsítótárazott válaszok kiszolgálása a háttérrendszer terhelésének csökkentése érdekében.
- TLS-/SSL-kapcsolatok leállása.
- Belső szolgáltatásadatok elrejtése a nyilvános internetről.
Átlátszó proxy
A transzparens proxy anélkül irányítja le a forgalmat, hogy az ügyfél kifejezetten konfigurálva lenne a használatára. Ezt a típust vállalati vagy internetszolgáltatói környezetekben használják a szabályzatok kikényszerítésére vagy a használat figyelésére.
Miért fontosak a proxyk az alkalmazásfejlesztők számára?
Gyakran az infrastruktúra vagy a hálózati csapatok kezelik a proxykat. A proxyk azonban közvetlenül befolyásolják az alkalmazás viselkedését, különösen a fejlesztési és tesztelési környezetekben. Az alábbiakban néhány gyakorlati módszert talál, amelyek hatással vannak a mindennapi munkájára.
Hibakeresés és megfigyelhetőség
A proxyk képesek a HTTP-forgalom rögzítésére és vizsgálatára. Az olyan eszközök, mint a Dev Proxy, a Fiddler, a Proxyman, a Charles Proxy vagy a mitmproxy, helyi továbbítási proxyként működnek. Futtathatja rajtuk keresztül az alkalmazást a kérések és válaszok elemzéséhez, a hibák kiszúrásához, valamint a fejlécek vagy hitelesítési jogkivonatok ellenőrzéséhez.
API-átjáró és útválasztás
Számos termelési rendszerben az alkalmazás háttérrendszerére irányuló forgalom API-átjárón vagy fordított proxyn (például NGINX) vagy felhőalapú szolgáltatáson, mint az Azure API Management, keresztül van irányítva. Ezek a proxyk kezelik az útválasztást, a hitelesítést, a sebességkorlátozást és egyebeket.
Az API tervezésekor vagy az elosztott szolgáltatások létrehozásakor tisztában kell lennie azzal, hogy a proxyk hogyan befolyásolják a fejléceket (például X-Forwarded-Foraz időtúllépéseket és a kérelmek méretkorlátjait).
CORS és helyi fejlesztés
A helyi fejlesztés során, különösen a webalkalmazásokban, előfordulhat, hogy a böngészőből származó API-k meghívásakor a forrásközi erőforrás-megosztás (CORS) korlátozásai lépnek fel. A fejlesztési proxy továbbíthatja a kéréseket a cél API-nak, miközben átírja a fejléceket a CORS-korlátozások megkerülése érdekében. A CORS-kérelmeket átíró fejlesztői eszközök gyakori példái a vite, webpack-dev-servervagy egyéni proxyközvetítmények az Express vagy a ASP.NET Core keretrendszerekben.
Szolgáltatásvirtualizálás és tesztelés
A proxyk képesek szimulálni a háttér API-kat. Ez a funkció akkor hasznos, ha a valós szolgáltatás nem érhető el, instabil vagy költséges a tesztelés során. A válaszok elfogásával és kipockázásával tesztelheti az alkalmazás viselkedését különböző helyzetekben, például időtúllépések, hibák vagy helytelenül formázott adatok esetén.
Az integrációs és a végpontok közötti tesztek során gyakran használják erre a célra az olyan eszközöket, mint a Dev Proxy vagy az egyéni proxy implementációk.
Hitelesítés és biztonság
A proxyk gyakran az alkalmazások védelmének frontvonalát képezik. Kényszeríthetik a hozzáférés-vezérlést, beszúrhatják a hitelesítési fejléceket, vagy megszakíthatják a TLS-/SSL-kapcsolatokat. Fejlesztőként fontos tisztában lenni azzal, hogy az alkalmazás hogyan viselkedik, amikor proxy mögött ül, és hogyan férhet hozzá a hitelesítési vagy identitásadatokat tartalmazó fejlécekhez.
A gyakori szempontok a fejlécekkel és a proxykkal kapcsolatban
Amikor egy kérelem áthalad egy proxyn, a rendszer hozzáad vagy módosít bizonyos fejléceket a fontos metaadatok megőrzése érdekében. Például:
-
X-Forwarded-For: Az ügyfél eredeti IP-címét jelzi. -
X-Forwarded-Proto: Az eredeti protokollt (HTTP vagy HTTPS) jelzi. -
X-Forwarded-Host: Az ügyfél által megadott eredeti kiszolgálót jelzi.
Ha az alkalmazás fordított proxy mögött fut, győződjön meg arról, hogy a keretrendszer vagy a platform úgy van konfigurálva, hogy megbízható legyen, és megfelelően értelmezze ezeket a fejléceket.
Fejlesztői proxy továbbítási proxyként fejlesztéshez és teszteléshez
A fejlesztői proxy egy olyan továbbítási proxy, amellyel elfoghatja és módosíthatja az alkalmazástól érkező kéréseket bármely célkiszolgálóra. A Dev Proxyval a következőt teheti:
- Megtudhatja, hogyan reagál az alkalmazás az API-hibákra.
- Ellenőrizze, hogy az alkalmazás hogyan kezeli az API-sebességkorlátokat.
- Megtudhatja, hogyan kezeli az alkalmazás a lassú API-kat.
- Kód írása nélkül gyorsan állítsa fel az ál-API-kat.
- Az API-k használatának kontextusalapú útmutatásával javíthatja az alkalmazást.
Próbálja ki!
Válasszon egy olyan forgatókönyvet, amely megfelel az éppen létrehozott forgatókönyvnek:
- Annak tesztelése, hogy az alkalmazás hogyan kezeli az API-hibákat – 5 perc
- Sebességkorlátozás szimulálása bármely API-n – 10 perc
- API-válaszok szimulálása a kód módosítása nélkül – 10 perc
- OpenAI API helyi szimulálása – 15 perc