Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

URL-id (ühtsed ressursiotsijad) on üks Interneti kõige olulisematest infrastruktuuri osadest. Veebirakenduste loomisel peate ressursside leidmiseks ja toomiseks URL-e manipuleerima.

Kui loote keerukamaid veebirakendusi, peate URL-idega töötama täpsemal tasemel. Võimalik, et peate tuvastama skeemi, hostinime, tee ja päringu parameetrid. Samuti peate teadma, kuidas URL-e kodeerida ja dekodeerida, et saaksite käsitleda erimärke ja hoida oma veebirakendust turvalisena.

Go standardteek pakub URL-ide ja URL-i komponentide haldamiseks paketti net/url.

URL-i pakett

The url pakett pakub töötamiseks kõikehõlmavaid funktsioone ja funktsioone URL-id ja nende eraldi osad. See pakub funktsioone URL-ide sõelumiseks, konstrueerimiseks, kodeerimiseks ja dekodeerimiseks, muutes paketi veebiarenduse jaoks kasulikuks.

Mõned põhifunktsioonid url pakett on võime analüüsida URL-e üksikuteks komponentideks manipuleerimiseks ja URL-i loomiseks HTTP-päringute jaoks. The

instagram viewer
url pakett sisaldab ka a URL struktuur koos a Parse meetod stringide URL-ideks sõelumiseks.

Siin on url. URL struktuuri mudel:

pakett peamine

tüüp URL struktuur {
// Skeem on URL-i protokolliskeem,
// näiteks "http" või "https"
Skeem string

// Läbipaistmatut kasutatakse läbipaistmatute andmete hoidmiseks
// mis peaks olema URL-is kodeeritud
Läbipaistmatu string

// Kasutajal on teavet päringu esitanud kasutaja kohta,
// näiteks kasutajanimi ja parool
Kasutaja *Kasutajainfo

// Host on hostinimi või IP-aadress
// URL-i majutavast serverist
Host string

// Tee on URL-i tee serveris
Tee string

// RawPath on originaal,
// URL-i kodeeritud tee
RawPath string

// ForceQuery näitab, kas URL peaks sisaldama päringu stringi
// isegi kui see on tühi
ForceQuery bool

// RawQuery on originaal,
//URL-i kodeeritud päringustring
RawQuery string

// Fragment on URL-i fragmendi identifikaator,
// kasutatakse lehe konkreetse elemendi linkimiseks
Fragment string

// RawFragment on originaal,
// URL-i kodeeritud fragmendi identifikaator
Toores fragment string
}

Teades, kuidas juurdepääsu erinevatele osadele URL struct võib olla kasulik selliste ülesannete jaoks nagu valideerimine.

URL-ide sõelumine parsimisfunktsiooni abil

The Parse funktsioon url pakett pakub funktsiooni URL-i stringide sõelumiseks üksikuteks komponentideks. The Parse funktsioon võtab argumendina ühe URL-i ja tagastab kursori url. URL struct, mis sisaldab URL-i sõelutud andmeid ja veatüüpi.

Siin on, kuidas saate kasutada Parse funktsiooni URL-i elementide toomiseks.

importida (
"fmt"
"net/url"
)

funcpeamine() {
// URL, mida soovite sõeluda
näideURL := " https://www.example.com/path? param1=väärtus1&param2=väärtus2"

// Parsi URL-i
parsedURL, err := url. Parse (exampleURL)

kui eks!= null {
fmt. Println (viga)
tagasi
}

// Printige kõik URL-i väljad
fmt. Println("Skeem:", parsedURL.Scheme)
fmt. Println("Läbipaistmatu:", parsedURL. Läbipaistmatu)
fmt. Println("Kasutaja:", parsedURL.Kasutaja)
fmt. Println("Võõrustaja:", parsedURL.Host)
fmt. Println("Tee:", parsedURL.Path)
fmt. Println("Toortee:", parsedURL.RawPath)
fmt. Println("ForceQuery:", parsedURL.ForceQuery)
fmt. Println("RawQuery:", parsedURL.RawQuery)
fmt. Println("Fragment:", parsedURL.Fragment)
fmt. Println("Toores fragment:", parsedURL.RawFragment)
}

The näideURL muutuja sisaldab täielikku sõelumata URL-i ja Parse funktsioon analüüsib sisu näideURL muutuja ja tagastab sõelutud URL-i. Programm lõpeb mitme kõnega aadressile Println üksikute väljade demonstreerimiseks URL struktuur.

Sõelumisfunktsioon ei kontrolli, kas URL on päriselt olemas, vaid analüüsib seda ainult süntaktiliselt. Võite kasutada http pakett URL-ile GET-päringu esitamiseks ja vastuse kontrollimiseks:

importida (
"fmt"
"net/http"
)

funcpeamine() {
// URL, mida soovite kontrollida
näideURL := " https://www.example.com"

// Tehke URL-ile HTTP GET-i päring
vastus, viga := http. Hangi (exampleURL)

kui eks!= null {
fmt. Println (viga)
tagasi
}

edasi lükata vastuseks. Keha. Sulge()

// Kontrollige vastuse olekukoodi
kui vastuseks. Olekukood == http. Olek OK {
fmt. Println("URL on olemas.")
} muidu {
fmt. Println("URL-i pole olemas.")
}
}

The peamine funktsioon teeb a SAADA taotlus näideURL kasutades Hangi funktsioon http pakett. See funktsioon tagastab vastuse eksemplari ja veatüübi. Programm lõpeb tähega kui avaldus veebisaidi olemasolu kinnitamiseks, kontrollides HTTP olekukood vastu OlekOk konstantne alates http pakett.

See lähenemisviis võimaldab teil võtta kontrolli tulemusel põhinevaid toiminguid, näiteks suunata kasutaja teisele lehele, kuvades tõrketeate või proovides pärast teatud kindlat päringut uuesti esitada periood.

URL-i parameetrite kodeerimine ja dekodeerimine

The url pakett pakub Kodeerida meetod URL-i parameetrite kodeerimiseks. The Kodeerida funktsioon protsenti-kodeerib URL-i parameetrites erimärke ja tühikuid.

importida (
"fmt"
"net/url"
)

funcpeamine() {
// looge uus URL. Väärtuste struktuur
params := url. Väärtused{}

// lisage struktuurile väärtusi
parameetrid. Lisama("nimi", "John Smith")
parameetrid. Lisama("vanus", "30")
parameetrid. Lisama("sugu", "mees")

// kodeerib struktuuri stringiks
kodeeritudParams := parameetrid. Kodeeri ()
fmt. Println (kodeeritud paramid)

// Väljund: "age=30&gender=male&name=John+Smith"
}

The peamine funktsioon loob uue Väärtused struktuuri eksemplar url pakett ja Lisama Struktuuri eksemplari meetod lisab struktuuri eksemplarile võtme-väärtuse andmepaarid.

The Kodeerida meetod teisendab võtme-väärtuse paari URL-i stringi vormingusse "key1=value1&key2=value2&key3=value3".

Kodeeritud URL-i stringi saate dekodeerida nupuga ParseQuery funktsioon url pakett.

importida (
"fmt"
"net/url"
)

funcpeamine() {
// URL-i parameetrite kodeeritud string
kodeeritudParams := "vanus=30&sugu=mees&nimi=John+Smith"

// sõelub kodeeritud stringi URL-iks. Väärtuste struktuur
params, err := url. ParseQuery (kodeeritudParams)

kui eks!= null {
fmt. Println (viga)
}

// printida struktuur
fmt. Println (parameetrid)

// Väljund: kaart[vanus:[30] sugu:[mees] nimi:[John Smith]]
}

The kodeeritud parameeter muutuja on kodeeritud URL-i string. The ParseQuery funktsioon võtab sisse kodeeritud parameeter muutuja ja tagastab dekodeeritud URL-i stringi ja vea.

Need Go paketid võivad viia teie veebimarsruutimise mängu järgmisele tasemele

URL-id, mida kasutate oma veebirakenduse lehtede jaoks, aitavad kaasa selle toimivusele ja nähtavusele otsingumootorites. Veebimarsruutimine on protsess, mille käigus suunatakse sissetulevad päringud URL-i alusel sobivasse töötleja funktsiooni.

Saate marsruutida kasutades http-paketti või populaarseid kolmanda osapoole pakette, nagu Gorilla Mux, Chi, Pat või Httprouter. Need paketid muudavad marsruutimise lihtsamaks kui http-pakett, eemaldades selle osa keerukusest.