Az URL-ek (Uniform Resource Locators) az internet infrastruktúrájának egyik legkritikusabb elemei. A webalkalmazások készítése során módosítania kell az URL-eket az erőforrások megkereséséhez és lekéréséhez.
Ha kifinomultabb webalkalmazásokat készít, finomabb szinten kell dolgoznia az URL-ekkel. Lehet, hogy meg kell határoznia a sémát, a gazdagépnevet, az elérési utat és a lekérdezési paramétereket. Azt is tudnia kell, hogyan kell kódolni és dekódolni az URL-eket, hogy kezelni tudja a speciális karaktereket, és megőrizze webalkalmazását.
A Go szabványos könyvtára biztosítja a net/url csomagot az URL-ek és URL-összetevők kezelésére.
Az URL-csomag
A url csomag átfogó funkciókat és funkciókat biztosít a munkához URL-ek és különálló részeik. Funkciókat biztosít az URL-ek elemzéséhez, létrehozásához, kódolásához és dekódolásához, így a csomag hasznossá válik a webfejlesztéshez.
Néhány fő jellemzője a url csomag lehetővé teszi az URL-ek egyedi komponensekké történő elemzését a manipuláció és a HTTP-kérések URL-szerkesztése céljából. A url csomag is rendelkezik a URL szerkezet a Elemzés metódus a karakterláncok URL-ekbe történő elemzéséhez.
Íme a url. URL struktúra modell:
csomag fő-
típus URL struct {
// A séma az URL protokollsémája,
// például "http" vagy "https"
Rendszer húr// Az Opaque az átlátszatlan adatok tárolására szolgál
// amit az URL-ben kell kódolni
Áttetsző húr// A felhasználó információkat őriz a kérelmező felhasználóról,
// például felhasználónév és jelszó
Felhasználó *Felhasználói információ// A gazdagép a gazdagépnév vagy IP-cím
// az URL-t tároló szerverről
Házigazda húr// Az elérési út az URL elérési útja a szerveren
Pálya húr// A RawPath az eredeti,
// az URL kódolt elérési útja
RawPath húr// A ForceQuery jelzi, hogy az URL-nek tartalmaznia kell-e lekérdezési karakterláncot
// akkor is, ha üres
ForceQuery bool// A RawQuery az eredeti,
//az URL kódolt lekérdezési karakterlánca
RawQuery húr// A töredék az URL töredékazonosítója,
// az oldal egy adott elemére való hivatkozásra szolgál
Töredék húr
// A RawFragment az eredeti,
// az URL kódolt töredékazonosítója
RawFragment húr
}
Tudva, hogyan lehet elérni a különböző részeit URL struct hasznos lehet olyan feladatokhoz, mint például az érvényesítés.
URL-ek elemzése az elemzési funkcióval
A Elemzés funkciója url csomag biztosítja az URL-karakterláncok egyedi összetevőkké történő elemzésének funkcióját. A Elemzés függvény egyetlen URL-t vesz fel argumentumként, és egy mutatót ad vissza a url. URL az URL elemzett adatait és egy hibatípust tartalmazó struct.
Íme, hogyan használhatja a Elemzés függvény az URL elemeinek lekéréséhez.
import (
"fmt"
"net/url"
)funcfő-() {
// Az elemezni kívánt URL
példaURL := " https://www.example.com/path? param1=érték1¶m2=érték2"// Az URL elemzése
parsedURL, err := url. Elemzés (exampleURL)ha hiba! = nulla {
fmt. Println (hiba)
Visszatérés
}
// Az URL összes mezőjének kinyomtatása
fmt. Println("Rendszer:", parsedURL.Scheme)
fmt. Println("Áttetsző:", elemzettURL.Átláthatatlan)
fmt. Println("Felhasználó:", elemzettURL.Felhasználó)
fmt. Println("Házigazda:", elemzettURL.Host)
fmt. Println("Pálya:", parsedURL.Path)
fmt. Println("NyersPath:", elemzettURL.RawPath)
fmt. Println("ForceQuery:", parsedURL.ForceQuery)
fmt. Println("RawQuery:", parsedURL.RawQuery)
fmt. Println("Töredék:", parsedURL.Fragment)
fmt. Println("Nyers töredék:", parsedURL.RawFragment)
}
A példaURL változó tartalmazza a teljes, nem elemzett URL-t és a Elemzés függvény elemzi a tartalmát példaURL változót, és visszaadja az elemzett URL-t. A program egy sor felhívással zárul Println bemutatni az egyes mezőket a URL struct.
Az elemzési funkció nem ellenőrzi, hogy egy URL valódi-e, amely valóban létezik, csak szintaktikailag elemzi az URL-t. Használhatja a http csomag GET kérés küldéséhez az URL-hez, és ellenőrizze a választ:
import (
"fmt"
"net/http"
)funcfő-() {
// Az ellenőrizni kívánt URL
példaURL := " https://www.example.com"// HTTP GET kérés küldése az URL-hez
válasz, hiba := http. Get (exampleURL)ha hiba! = nulla {
fmt. Println (hiba)
Visszatérés
}
elhalasztja válasz. Test. Bezárás()
// Ellenőrizze a válasz állapotkódját
ha válasz. Állapotkód == http. ÁllapotOK {
fmt. Println("URL létezik.")
} más {
fmt. Println("Az URL nem létezik.")
}
}
A fő- függvény teszi a KAP kérni a példaURL használni a Kap funkciója http csomag. Ez a függvény válaszpéldányt és hibatípust ad vissza. A program egy ha nyilatkozat a weboldal létezésének igazolására a HTTP állapotkód szemben a ÁllapotOk állandó a http csomag.
Ez a megközelítés lehetővé teszi, hogy az ellenőrzés eredménye alapján műveleteket hajtson végre, például átirányítsa a felhasználó egy másik oldalra, hibaüzenetet jelenít meg, vagy egy bizonyos után újra megpróbálja a kérést időszak.
URL-paraméterek kódolása és dekódolása
A url csomag biztosítja a Kódol módszer az URL-paraméterek kódolására. A Kódol A százalékos függvény speciális karaktereket és szóközöket kódol az URL-paraméterekben.
import (
"fmt"
"net/url"
)funcfő-() {
// hozzon létre egy új URL-t. Értékszerkezet
params := url. Értékek{}// értékek hozzáadása a struktúrához
params. Add("név", "John Smith")
params. Add("kor", "30")
params. Add("nem", "férfi")// karakterláncba kódolja a struktúrát
encodedParams := params. Kódol()
fmt. Println (kódoltParams)
// Kimenet: "age=30&gender=male&name=John+Smith"
}
A fő- függvény újat hoz létre Értékek struct példánya a url csomagot, és a Hozzáadás A struct példány metódusa kulcs-érték adatpárokat ad hozzá a struct példányhoz.
A Kódol metódus a kulcs-érték párt a „kulcs1=érték1&kulcs2=érték2&kulcs3=érték3” URL-karakterlánc formátumra konvertálja.
A kódolt URL-karakterláncot a ParseQuery funkciója url csomag.
import (
"fmt"
"net/url"
)funcfő-() {
// URL-paraméterek kódolt karakterlánca
encodedParams := "életkor=30&gender=férfi&név=János+Smith"
// elemzi a kódolt karakterláncot egy url-be. Értékszerkezet
params, err := url. ParseQuery (encodedParams)
ha hiba! = nulla {
fmt. Println (hiba)
}
// kinyomtatja a struktúrát
fmt. Println (paraméterek)
// Kimenet: térkép[életkor:[30] nem:[férfi] név:[John Smith]]
}
A kódolt Paraméter A változó egy kódolt URL-karakterlánc. A ParseQuery függvény beveszi a kódolt Paraméter változót, és visszaadja a dekódolt URL-karakterláncot és egy hibát.
Ezek a Go-csomagok a következő szintre emelhetik webes útválasztási játékát
A webalkalmazása oldalaihoz használt URL-ek hozzájárulnak annak teljesítményéhez és láthatóságához a keresőmotorokban. A webes útválasztás az a folyamat, amely a bejövő kéréseket a megfelelő kezelő funkcióhoz irányítja az URL alapján.
Az útvonalat a http-csomag vagy olyan népszerű harmadik féltől származó csomagok, mint például a Gorilla Mux, a Chi, a Pat vagy a Httprouter használatával végezheti el. Ezek a csomagok egyszerűbbé teszik az útválasztást, mint a http csomag azáltal, hogy absztrahálják néhány bonyolultságát.