URL-ji (enotni lokatorji virov) so eden najbolj kritičnih delov internetne infrastrukture. Ko izdelujete spletne aplikacije, boste morali manipulirati z URL-ji, da poiščete in pridobite vire.
Ko izdelate bolj izpopolnjene spletne aplikacije, boste morali delati z URL-ji na natančnejši ravni. Morda boste morali identificirati shemo, ime gostitelja, pot in parametre poizvedbe. Prav tako boste morali vedeti, kako kodirati in dekodirati URL-je, da boste lahko ravnali s posebnimi znaki in ohranili svojo spletno aplikacijo varno.
Standardna knjižnica Go ponuja paket net/url za obdelavo URL-jev in komponent URL-jev.
Paket URL
The url paket ponuja celovite funkcije in lastnosti za delo URL-ji in njihovi ločeni deli. Ponuja funkcije za razčlenjevanje, konstruiranje, kodiranje in dekodiranje URL-jev, zaradi česar je paket uporaben za spletni razvoj.
Nekaj ključnih značilnosti
url paket so zmožnost razčlenjevanja URL-jev na posamezne komponente za manipulacijo in konstrukcijo URL-jev za zahteve HTTP. The url paket vsebuje tudi a URL struct z a Razčleni metoda za razčlenjevanje nizov v URL-je.Tukaj je url. URL strukturni model:
paket glavni
vrsta URL struct {
// Shema je shema protokola URL-ja,
// kot je "http" ali "https"
Shema vrvica// Opaque se uporablja za hrambo kakršnih koli neprozornih podatkov
// ki mora biti kodiran v URL-ju
Neprozoren vrvica// Uporabnik ima podatke o uporabniku, ki je poslal zahtevo,
// kot sta uporabniško ime in geslo
Uporabnik *Uporabniške informacije// Gostitelj je ime gostitelja ali naslov IP
// strežnika, ki gosti URL
Gostitelj vrvica// Pot je pot URL-ja na strežniku
Pot vrvica// RawPath je izvirnik,
// kodirana pot URL-ja
RawPath vrvica// ForceQuery označuje, ali naj URL vključuje poizvedbeni niz
// tudi če je prazen
ForceQuery bool// RawQuery je izvirnik,
//kodirani poizvedbeni niz URL-ja
RawQuery vrvica// Fragment je identifikator fragmenta URL-ja,
// uporablja se za povezavo do določenega elementa na strani
Drobec vrvica
// RawFragment je izvirnik,
// kodiran identifikator fragmenta URL-ja
RawFragment vrvica
}
Vedeti, kako dostopati do različnih delov URL struct je lahko koristen za naloge, kot je validacija.
Razčlenjevanje URL-jev z uporabo funkcije Parse
The Razčleni funkcija url ponuja funkcionalnost za razčlenjevanje nizov URL v posamezne komponente. The Razčleni funkcija vzame en URL kot argument in vrne kazalec na url. URL struct, ki vsebuje razčlenjene podatke URL-ja in vrsto napake.
Tukaj je opisano, kako lahko uporabite Razčleni funkcija za pridobivanje elementov URL-ja.
uvoz (
"fmt"
"net/url"
)funkglavni() {
// URL, ki ga želite razčleniti
primerURL := " https://www.example.com/path? param1=vrednost1¶m2=vrednost2"// Razčleni URL
razčlenjeniURL, napaka := url. Razčleni (primerURL)če napaka!= nič {
fmt. Println (napaka)
vrnitev
}
// Natisni vsa polja URL-ja
fmt. Println("Shema:", razčlenjenoURL.Shema)
fmt. Println("Neprozorno:", razčlenjenURL.Neprozoren)
fmt. Println("Uporabnik:", razčlenjenURL.Uporabnik)
fmt. Println("Gostitelj:", razčlenjeniURL.Host)
fmt. Println("Pot:", razčlenjenoURL.Pot)
fmt. Println("RawPath:", razčlenjenoURL.RawPath)
fmt. Println("ForceQuery:", razčlenjenoURL.ForceQuery)
fmt. Println("RawQuery:", parsedURL.RawQuery)
fmt. Println("Drobec:", razčlenjenURL.Fragment)
fmt. Println("RawFragment:", razčlenjenURL.RawFragment)
}
The exampleURL spremenljivka vsebuje celoten, nerazčlenjen URL in Razčleni funkcija razčleni vsebino exampleURL spremenljivko in vrne razčlenjen URL. Program se konča z nizom klicev na Println za prikaz posameznih področij URL struct.
Funkcija razčlenjevanja ne preverja, ali je URL resničen, ki dejansko obstaja, temveč samo sintaktično razčleni URL. Lahko uporabite http paket če želite poslati zahtevo GET na URL in preveriti odgovor:
uvoz (
"fmt"
"net/http"
)funkglavni() {
// URL, ki ga želite preveriti
primerURL := " https://www.example.com"// Izdelajte zahtevo HTTP GET za URL
odgovor, napaka := http. Pridobi (primerURL)če napaka!= nič {
fmt. Println (napaka)
vrnitev
}
odložiti odgovor. Telo. Zapri()
// Preverite kodo statusa odgovora
če odgovor. StatusCode == http. StatusOK {
fmt. Println("URL obstaja.")
} drugače {
fmt. Println("URL ne obstaja.")
}
}
The glavni funkcija naredi a DOBITI zahtevo za exampleURL uporabljati Dobiti funkcija http paket. Ta funkcija vrne primerek odziva in vrsto napake. Program se zaključi z an če izjavo za potrditev obstoja spletne strani s preverjanjem Statusna koda HTTP proti StanjeV redu konstanta od http paket.
Ta pristop vam omogoča, da izvajate dejanja na podlagi izida preverjanja, kot je preusmeritev na uporabnik na drugo stran, prikaz sporočila o napaki ali ponovni poskus zahteve po določenem obdobje.
Kodiranje in dekodiranje parametrov URL
The url paket zagotavlja Kodiraj metoda za kodiranje parametrov URL. The Kodiraj funkcija percent-kodira posebne znake in presledke v parametrih URL.
uvoz (
"fmt"
"net/url"
)funkglavni() {
// ustvari nov url. Struktura vrednot
params := url. Vrednote{}// dodaj vrednosti strukturi
params. Dodaj("ime", "John Smith")
params. Dodaj("starost", "30")
params. Dodaj("spol", "moški")// kodiraj strukturo v niz
encodedParams := params. Kodiraj()
fmt. Println (encodedParams)
// Izhod: "age=30&gender=male&name=John+Smith"
}
The glavni funkcija ustvari novo Vrednote primerek strukture url paket in Dodaj metoda primerka struct doda pare podatkov ključ-vrednost v primerek struct.
The Kodiraj metoda pretvori par ključ-vrednost v obliko niza URL "key1=value1&key2=value2&key3=value3".
Kodiran URL-niz lahko dekodirate z ParseQuery funkcija url paket.
uvoz (
"fmt"
"net/url"
)funkglavni() {
// kodiran niz parametrov URL
encodedParams := "starost=30&spol=moški&ime=John+Smith"
// razčleni kodirani niz v url. Struktura vrednot
params, err := url. ParseQuery (encodedParams)
če napaka!= nič {
fmt. Println (napaka)
}
// natisni strukturo
fmt. Println (parametri)
// Izhod: zemljevid [starost: [30] spol: [moški] ime: [John Smith]]
}
The encodedParameter spremenljivka je kodiran niz URL-ja. The ParseQuery funkcija prevzame encodedParameter spremenljivko in vrne dekodirani niz URL-ja in napako.
Ti paketi Go lahko vašo igro spletnega usmerjanja dvignejo na višjo raven
URL-ji, ki jih uporabljate za strani vaše spletne aplikacije, prispevajo k njeni uspešnosti in vidnosti v iskalnikih. Spletno usmerjanje je postopek usmerjanja dohodnih zahtev k ustrezni funkciji obravnave na podlagi URL-ja.
Usmerjate lahko s paketom http ali priljubljenimi paketi tretjih oseb, kot so Gorilla Mux, Chi, Pat ali Httprouter. Ti paketi olajšajo usmerjanje kot paket http, saj abstrahirajo nekatere njegove kompleksnosti.