Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

URL (Uniform Resource Locator) yra viena iš svarbiausių interneto infrastruktūros dalių. Kurdami žiniatinklio programas turėsite manipuliuoti URL, kad surastumėte ir gautumėte išteklius.

Kai kuriate sudėtingesnes žiniatinklio programas, turėsite dirbti su URL tikslesniu lygiu. Gali reikėti nustatyti schemą, pagrindinio kompiuterio pavadinimą, kelią ir užklausos parametrus. Taip pat turėsite žinoti, kaip užkoduoti ir iššifruoti URL, kad galėtumėte naudoti specialiuosius simbolius ir apsaugoti žiniatinklio programą.

Standartinėje Go bibliotekoje pateikiamas tinklo / URL paketas, skirtas URL ir URL komponentams tvarkyti.

URL paketas

The url paketas suteikia išsamias funkcijas ir funkcijas, skirtas darbui URL ir atskiros jų dalys. Jame teikiamos URL analizavimo, konstravimo, kodavimo ir dekodavimo funkcijos, todėl paketas yra naudingas kuriant žiniatinklio adresą.

instagram viewer

Kai kurios pagrindinės funkcijos url paketas yra galimybė išanalizuoti URL į atskirus komponentus, kad būtų galima manipuliuoti ir sukurti URL HTTP užklausoms. The url paketas taip pat numato a URL struktūra su a Išanalizuoti metodas, skirtas eilučių analizei į URL.

Štai url. URL konstrukcijos modelis:

paketą pagrindinis

tipo URL struktūra {
// Schema yra URL protokolo schema,
// pvz "http" arba "https"
Schema styga

// Nepermatomas naudojamas bet kokiems nepermatomiems duomenims laikyti
// kuris turėtų būti užkoduotas URL
Nepermatomas styga

// Vartotojas turi informaciją apie užklausą pateikiantį vartotoją,
// pvz., vartotojo vardą ir slaptažodį
Vartotojas *Vartotojo informacija

// Priegloba yra pagrindinio kompiuterio pavadinimas arba IP adresas
// serverio, kuriame yra URL
Šeimininkas styga

// Kelias yra URL kelias serveryje
Kelias styga

// RawPath yra originalas,
// užkoduotas URL kelias
RawPath styga

// ForceQuery nurodo, ar URL turi būti užklausos eilutė
// net jei jis tuščias
ForceQuery bool

// RawQuery yra originalas,
//užkoduota URL užklausos eilutė
RawQuery styga

// Fragmentas yra URL fragmento identifikatorius,
// naudojamas nuorodai į konkretų puslapio elementą
Fragmentas styga

// RawFragment yra originalas,
// užkoduotas URL fragmento identifikatorius
Neapdorotas fragmentas styga
}

Žinodami, kaip pasiekti įvairias dalis URL struktūra gali būti naudinga atliekant tokias užduotis kaip patvirtinimas.

URL analizavimas naudojant analizavimo funkciją

The Išanalizuoti funkcija url paketas suteikia funkciją analizuoti URL eilutes į atskirus komponentus. The Išanalizuoti funkcija paima vieną URL kaip argumentą ir grąžina žymeklį į url. URL struktūra, kurioje yra išanalizuoti URL duomenys ir klaidos tipas.

Štai kaip galite naudoti Išanalizuoti funkcija, kad gautų URL elementus.

importuoti (
"fmt"
"net/url"
)

funcpagrindinis() {
// URL, kurį norite išanalizuoti
pavyzdysURL := " https://www.example.com/path? param1=value1&param2=value2"

// Išanalizuoti URL
parsedURL, err := url. Išanalizuoti (exampleURL)

jeigu klysta! = nulis {
fmt. Println (klaida)
grąžinti
}

// Spausdinkite visus URL laukus
fmt. Println("Schema:", parsedURL.Scheme)
fmt. Println("Nepermatomas:", parsedURL.Nepermatomas)
fmt. Println("Vartotojas:", parsedURL.User)
fmt. Println("Šeimininkas:", parsedURL.Host)
fmt. Println("Kelias:", parsedURL.Path)
fmt. Println("RawPath":, parsedURL.RawPath)
fmt. Println(„ForceQuery“:, parsedURL.ForceQuery)
fmt. Println(„RawQuery“:, parsedURL.RawQuery)
fmt. Println("Fragmentas:", parsedURL.Fragment)
fmt. Println("Neapdorotas fragmentas":, parsedURL.RawFragment)
}

The pavyzdysURL kintamasis turi visą, neišnagrinėtą URL ir Išanalizuoti funkcija analizuoja turinį pavyzdysURL kintamąjį ir grąžina išnagrinėtą URL. Programa baigiasi skambučių serija Println parodyti atskirus laukus URL struktūra.

Analizavimo funkcija netikrina, ar URL yra tikras, kuris iš tikrųjų egzistuoja, ji tik analizuoja URL sintaksiniu būdu. Galite naudoti http paketą norėdami pateikti GET užklausą URL ir patikrinti atsakymą:

importuoti (
"fmt"
"net/http"
)

funcpagrindinis() {
// URL, kurį norite patikrinti
pavyzdysURL := " https://www.example.com"

// Pateikite HTTP GET užklausą URL
atsakymas, klaida := http. Gauti (pavyzdysURL)

jeigu klysta! = nulis {
fmt. Println (klaida)
grąžinti
}

atidėti atsakymą. Kūnas. Uždaryti()

// Patikrinkite atsakymo būsenos kodą
jeigu atsakymą. Būsenos kodas == http. BūsenaGerai {
fmt. Println("URL yra.")
} Kitas {
fmt. Println("URL neegzistuoja.")
}
}

The pagrindinis funkcija daro a GAUTI prašymą į pavyzdysURL naudojant Gauk funkcija http paketą. Ši funkcija grąžina atsakymo atvejį ir klaidos tipą. Programa baigiasi an jeigu pareiškimą, kad patvirtintumėte svetainės egzistavimą, patikrindami HTTP būsenos kodas prieš BūsenaGerai pastovus nuo http paketą.

Šis metodas leidžia imtis veiksmų, pagrįstų patikrinimo rezultatais, pvz., nukreipti vartotoją į kitą puslapį, rodydamas klaidos pranešimą arba bandydamas iš naujo pateikti užklausą po tam tikro laikotarpį.

URL parametrų kodavimas ir dekodavimas

The url paketas suteikia Užkoduoti URL parametrų kodavimo metodas. The Užkoduoti funkcija procentai koduoja specialiuosius simbolius ir tarpus URL parametruose.

importuoti (
"fmt"
"net/url"
)

funcpagrindinis() {
// sukurti naują URL. Vertybių struktūra
parametrai := url. Vertybės{}

// pridėti vertes į struktūrą
parametrai. Papildyti("vardas", "Džonas Smitas")
parametrai. Papildyti("amžius", "30")
parametrai. Papildyti("Lytis", "Patinas")

// užkoduokite struktūrą į eilutę
encodedParams := parametrai. Koduoti ()
fmt. Println (užkoduoti parametrai)

// Išvestis: "age=30&gender=male&name=John+Smith"
}

The pagrindinis funkcija sukuria naują Vertybės struktūros pavyzdys url paketą ir Papildyti struct egzemplioriaus metodas prideda raktų ir reikšmių duomenų poras prie struktūros egzemplioriaus.

The Užkoduoti metodas konvertuoja rakto-reikšmių porą į URL eilutės formatą „key1=value1&key2=value2&key3=value3“.

Galite iššifruoti užkoduotą URL eilutę naudodami ParseQuery funkcija url paketą.

importuoti (
"fmt"
"net/url"
)

funcpagrindinis() {
// užkoduota URL parametrų eilutė
encodedParams := „amžius=30&lytis=vyras&vardas=Jonas+Smitas“

// išanalizuoti užkoduotą eilutę į URL. Vertybių struktūra
params, err := url. „ParseQuery“ (užkoduoti parametrai)

jeigu klysta! = nulis {
fmt. Println (klaida)
}

// išspausdinti struktūrą
fmt. Println (parametrai)

// Išvestis: žemėlapis[amžius:[30] lytis:[vyro] vardas:[John Smith]]
}

The encodedParameter kintamasis yra užkoduota URL eilutė. The ParseQuery funkcija perima encodedParameter kintamąjį ir grąžina iššifruotą URL eilutę bei klaidą.

Šie „Go“ paketai gali pakelti jūsų žiniatinklio maršruto parinkimo žaidimą į kitą lygį

URL, kuriuos naudojate savo žiniatinklio programos puslapiams, prisideda prie jos našumo ir matomumo paieškos sistemose. Žiniatinklio maršruto parinkimas – tai procesas, kai gaunamos užklausos nukreipiamos į atitinkamą tvarkyklės funkciją pagal URL.

Galite nukreipti naudodami http paketą arba populiarius trečiųjų šalių paketus, tokius kaip Gorilla Mux, Chi, Pat arba Httprouter. Šie paketai palengvina maršruto parinkimą nei http paketas, nes pašalina kai kuriuos jo sudėtingumus.