Megosztás a következőn keresztül:


UrlPrefix sztringek

A HTTP Server API-ban a UrlPrefix egy széles karakterű (UTF-16) Unicode-sztring, amely egy olyan canonical form, amely megadja az URL-névtér egy szakaszát. Az URL-névtér egy szakaszának lefoglalására szolgál egy felhasználói fiókhoz, vagy regisztrálja az URL-névtér egy szakaszát egy folyamathoz.

UrlPrefix formátum

Az UrlPrefix szintaxisa a következő:

"scheme://host:port/relativeURI"

Az UrlPrefix sémájának, gazdagépének és portelemeinek jelen kell lenniük és nem üresnek kell lenniük, és be kell tartaniuk a következő szabályokat:

séma

Http vagy https lehet, mind kisbetűs.

gazdagép

Teljes tartománynévnek, IPv4 vagy IPv6 literális sztringnek vagy helyettesítő karakternek kell lennie. A kisbetűs sémával ellentétben a gazdagéprész nem érzékeny a kis- és nagybetűkre. A gazdagéprész megadásától függően az UrlPrefix az alábbi négy útválasztási kategória egyikébe tartozik, amelyeket az alábbiakban részletesebben ismertetünk:

Erős helyettesítő karakter
Világos
IP-címhez kötött gyenge helyettesítő karakter
Gyenge helyettesítő karakter

port

Decimális numerikus sztring, amely nem nullával kezdődik, és érvényes TCP-portszámot (1–65 535) jelöl. Ez az érték nem lehet helyettesítő karakter.

relativeURI

A relatívURI elem megadása nem kötelező, de ha jelen van, mindig perjel karaktert ("/") kell követni. Ez egy előtag-sztring, amely a gép névterén belül a séma, a gazdagép és a port értékeihez viszonyítva megadott részhalmazt jelzi. A kisbetűs sémától eltérően a relatívURI-rész nem érzékeny a kis- és nagybetűkre.

A megfelelően formázott UrlPrefixek például a következők:

  • https://www.adatum.com:80/vroot/
  • https://adatum.com:443/secure/database/
  • https://+:80/vroot/

Host-Specifier kategóriák

A rugalmasság és a könnyű használat érdekében a HTTP Server API négy különböző módszert támogat a gazdagépek megadására. A négy gazdagépválasztó kategória az alábbi sorrendben van felsorolva:

Erős helyettesítő karakter (pluszjel)

Ha az UrlPrefix gazdagépeleme egyetlen pluszjelből (+) áll, az UrlPrefix a séma, a port és a relativeURI elemek kontextusában lévő összes lehetséges gazdagépnévvel egyezik, és az erős helyettesítő karakterek kategóriájába tartozik.

Az erős helyettesítő karakterek akkor hasznosak, ha egy alkalmazásnak egy vagy több relatívURI-nak címzett kérést kell kiszolgálnia, függetlenül attól, hogy ezek a kérések hogyan érkeznek a gépre, vagy milyen helyet adnak meg a gazdagép fejlécében. Az erős helyettesítő karakterek használata ebben a helyzetben nem szükséges megadni a gazdagépek és/vagy IP-címek teljes listáját.

Explicit

Egy explicit gazdagépnév, például a gazdagépelem teljes tartományneve url-előtagot helyez el az explicit kategóriában. Ez a gazdagépelem közvetlenül a bejövő kérések gazdagépfejlécével van egyeztetve.

Az explicit gazdagép-specifikációk olyan többhelyes alkalmazások esetében hasznosak, mint például a webkiszolgálók, amelyek a kérés címzett helyétől függően különböző tartalmat szolgáltatnak.

IP-címhez kötött gyenge helyettesítő karakter

Ha egy IP-cím gazdaelemként jelenik meg, az UrlPrefix az IP-címhez kötött gyenge helyettesítő karakterek kategóriájába tartozik. Az ilyen típusú UrlPrefix egyezik a megadott IP-felület gazdagépnevével a megadott sémával, porttal és relatívURI-val, és amelyet még nem egyezett meg egy erős helyettesítő karakterrel vagy explicit URLPrefixtel. Az IP-cím a gazdagépelem két űrlapjának egyikét használja:

IPv4-konstans sztring

Az IPv4-literál négy pontozott decimális számból áll, mindegyiket a 0–255 tartományban, például 192.168.0.0 tartományban.

IPv6-konstans sztring

Az IPv6 literális sztring szögletes zárójelek közé van zárva, és kettősponttal elválasztott hexa számokat tartalmaz; például: [::1] vagy [3ffe:ffff::6ECB:0101].

Az IP-kötött gyenge helyettesítő karakterek gazdagép-definiálói olyan alkalmazásokhoz készültek, amelyek a bejövő kérések útvonala alapján változtatják meg az általuk kiszolgált tartalmat. A biztonság kikényszerítéséhez ne támaszkodjon AZ IP-címhez kötött gyenge helyettesítő karakterek gazdagép-azonosítóira.

gyenge helyettesítő karakter (csillag)

Ha egy csillag (*) gazdaelemként jelenik meg, az UrlPrefix a gyenge helyettesítő karakterek kategóriájába kerül. Az ilyen típusú UrlPrefix megegyezik a megadott sémához, porthoz és relatívURI-hoz társított gazdagépnévvel, amelyet még nem egyezett meg egy erős helyettesítő karakter, explicit vagy IP-kötött gyenge helyettesítő karakter urlPrefix.

Ez a gazdagép-specifikáció bizonyos körülmények között alapértelmezett catch-allként használható, vagy az URL-névtér nagy részének megadására is használható anélkül, hogy több URL-előtagot kellene használnia.

UrlPrefix ütközésészlelés foglalás és regisztráció során

Foglalási és regisztrációs célokból az URLPrefix négy különböző kategóriája külön, egymásra való hivatkozás nélkül kezelhető. Az ütköző UrlPrefixes-eket mindaddig regisztrálhatja, amíg különböző kategóriákba tartoznak. Csak ugyanabban a kategóriában történik ütközés, amely egy foglalási kísérlet meghiúsulását okozza.

Például a explicit UrlPrefix https://www.adatum.com:80/vroot/ és az ütköző erős helyettesítő UrlPrefix https://+:80/vroot/is lefoglalható, mivel ezek különböző kategóriákba tartoznak. A https://+:80/vroot/ egy másik felhasználónak való lefoglalásának későbbi kísérlete azonban meghiúsulna, mert ütközne egy meglévő foglalással a saját kategóriájában.

Útválasztási viselkedés

Bejövő HTTP-kérések átirányításakor a HTTP Server API az erős helyettesítő karakter kategóriával kezdődik, és összehasonlítja a bejövő URL-címet a regisztrált és a fenntartott URL-címelőtagokkal az adott kategóriában.

Ha a bejövő URL-cím megfelel egy foglalásnak, de regisztrációnak nem, a HTTP Server API meghiúsul a kérésben. Ez megakadályozza, hogy az alacsonyabb prioritású regisztrációk átvehessék a nem neki szánt kéréseket. A hiba állapota 503 helyett 400 ("Hibás kérés"), mert a terheléselosztási átjárók néha tévesen úgy értelmezik az 503-as visszatérést, hogy azt jelzik, hogy a kiszolgáló túlterhelt volt.

Ha egyező regisztráció található a kategóriában, a rendszer átirányítja a kérést a regisztrációhoz társított kérési üzenetsorhoz. A kérés mindig a kategória leghosszabb egyező URL-címelőtagjával társított üzenetsorhoz lesz átirányítva.

Ha nem található egyezés a kategóriában, akkor a HTTP Server API a explicit kategóriára lép, és ugyanazt az eljárást ismétli. Összefoglalva a kategóriák vizsgálatának sorrendje a következő:

  1. Erős helyettesítő karakter
  2. Világos
  3. IP-Bound gyenge helyettesítő karakter
  4. Gyenge helyettesítő karakter

Ha egyik kategóriában sem található egyezés, a HTTP Server API egy 400-es állapotkóddal rendelkező választ küld, amely jelzi, hogy a kérés nem irányítható.

Leghosszabb egyezés szabály

A HTTP Server API minden UrlPrefix-kategórián belül átirányít egy kérést a leghosszabb egyező UrlPrefixhez társított üzenetsorhoz. Tegyük fel például, hogy a következő két URL-címelőtag van regisztrálva különböző üzenetsorokban:

  • Queue1 https://www.adatum.com:80/
  • Queue2 https://www.adatum.com:80/dir/sna/

A HTTP Server API átirányítja a https://www.adatum.com:80/default.htm kérését a Queue1-be, és egy https://www.adatum.com:80/dir/sna/snadefault.htm kérést a Queue2-be. A https://www.adatum.com:80/dir/app.htm kérését átirányítja a Queue1-hez, mert a leghosszabb teljes egyezés az https://www.adatum.com:80/ UrlPrefixtel, nem pedig a https://www.adatum.com:80/dir/sna UrlPrefixtel.