Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

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.

instagram viewer

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&param2=é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.