Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

URL-ovi (Uniform Resource Locators) jedan su od najkritičnijih dijelova internetske infrastrukture. Dok izrađujete web aplikacije, morat ćete manipulirati URL-ovima da biste locirali i dohvatili resurse.

Kada izradite sofisticiranije web-aplikacije, morat ćete raditi s URL-ovima na finijoj razini. Možda ćete morati identificirati shemu, naziv glavnog računala, putanju i parametre upita. Također ćete morati znati kako kodirati i dekodirati URL-ove kako biste mogli rukovati posebnim znakovima i zaštititi svoju web-aplikaciju.

Goova standardna biblioteka pruža paket net/url za rukovanje URL-ovima i komponentama URL-a.

URL paket

The url paket pruža opsežne funkcije i značajke za rad URL-ovi i njihovi zasebni dijelovi. Omogućuje funkcije za analiziranje, konstruiranje, kodiranje i dekodiranje URL-ova, čineći paket korisnim za web razvoj.

Neke od ključnih značajki url

instagram viewer
paket su mogućnost raščlambe URL-ova u pojedinačne komponente za manipulaciju i konstrukciju URL-a za HTTP zahtjeve. The url paket također nudi a URL struct s a Raščlanjivati metoda za raščlanjivanje nizova u URL-ove.

Evo url. URL model strukture:

paket glavni

tip URL strukturirati {
// Shema je shema protokola URL-a,
// kao što je "http" ili "https"
Shema niz

// Opaque se koristi za čuvanje neprozirnih podataka
// koji bi trebao biti kodiran u URL-u
Neproziran niz

// Korisnik posjeduje informacije o korisniku koji je podnio zahtjev,
// kao što su korisničko ime i lozinka
Korisnik *Korisničke informacije

// Domaćin je naziv glavnog računala ili IP adresa
// poslužitelja koji hostira URL
Domaćin niz

// Put je put URL-a na poslužitelju
Staza niz

// RawPath je izvornik,
// kodirani put URL-a
RawPath niz

// ForceQuery pokazuje treba li URL uključiti niz upita
// čak i ako je prazan
ForceQuery bool

// RawQuery je izvornik,
//kodirani niz upita URL-a
RawQuery niz

// Fragment je identifikator fragmenta URL-a,
// koristi se za povezivanje na određeni element na stranici
Fragment niz

// RawFragment je izvornik,
// identifikator kodiranog fragmenta URL-a
RawFragment niz
}

Znati kako pristupiti različitim dijelovima URL struct može biti koristan za zadatke poput provjere valjanosti.

Raščlanjivanje URL-ova pomoću funkcije raščlanjivanja

The Raščlanjivati funkcija url paket pruža funkcionalnost za raščlanjivanje URL nizova u pojedinačne komponente. The Raščlanjivati funkcija uzima jedan URL kao argument i vraća pokazivač na url. URL struktura koja sadrži raščlanjene podatke URL-a i vrstu pogreške.

Evo kako možete koristiti Raščlanjivati funkcija za dohvaćanje elemenata URL-a.

uvoz (
"fmt"
"net/url"
)

funkglavni() {
// URL koji želite raščlaniti
primjerURL := " https://www.example.com/path? param1=vrijednost1&param2=vrijednost2"

// Raščlanite URL
raščlanjeniURL, pogreška := url. Raščlanjivanje (primjerURL)

ako pogriješiti != nula {
fmt. Println (greška)
povratak
}

// Ispis svih polja URL-a
fmt. Println("Shema:", raščlanjeniURL.Shema)
fmt. Println("Neproziran:", raščlanjeniURL.Neproziran)
fmt. Println("Korisnik:", raščlanjeniURL.Korisnik)
fmt. Println("Domaćin:", raščlanjeniURL.Host)
fmt. Println("Staza:", parsedURL.Path)
fmt. Println("RawPath:", raščlanjeniURL.RawPath)
fmt. Println("ForceQuery:", parsedURL.ForceQuery)
fmt. Println("RawQuery:", parsedURL.RawQuery)
fmt. Println("Fragment:", raščlanjeniURL.fragment)
fmt. Println("RawFragment:", parsedURL.RawFragment)
}

The primjerURL varijabla sadrži puni, neraščlanjeni URL i Raščlanjivati funkcija analizira sadržaj primjerURL varijablu i vraća raščlanjeni URL. Program završava nizom poziva na Println pokazati pojedinačna polja URL strukturirati

Funkcija raščlambe ne provjerava je li URL pravi i stvarno postoji, ona samo raščlanjuje URL sintaktički. Možete koristiti http paket da napravite GET zahtjev na URL i provjerite odgovor:

uvoz (
"fmt"
"net/http"
)

funkglavni() {
// URL koji želite provjeriti
primjerURL := " https://www.example.com"

// Napravite HTTP GET zahtjev za URL
odgovor, greška := http. Dobiti (primjerURL)

ako pogriješiti != nula {
fmt. Println (greška)
povratak
}

odgoditi odgovor. Tijelo. Zatvoriti()

// Provjerite kod statusa odgovora
ako odgovor. Šifra statusa == http. StatusOK {
fmt. Println("URL postoji.")
} drugo {
fmt. Println("URL ne postoji.")
}
}

The glavni funkcija čini a DOBITI zahtjev za primjerURL koristiti Dobiti funkcija http paket. Ta funkcija vraća instancu odgovora i vrstu pogreške. Program završava an ako izjava za potvrdu postojanja web stranice provjerom HTTP statusni kod protiv StatusOk konstanta od http paket.

Ovaj vam pristup omogućuje poduzimanje radnji na temelju ishoda provjere, poput preusmjeravanja korisnika na drugu stranicu, prikazujući poruku o pogrešci ili ponovno pokušavajući zahtjev nakon određenog razdoblje.

Kodiranje i dekodiranje parametara URL-a

The url paket pruža Kodiraj metoda za kodiranje URL parametara. The Kodiraj funkcija postotak kodira posebne znakove i razmake u URL parametrima.

uvoz (
"fmt"
"net/url"
)

funkglavni() {
// kreirajte novi url. Struktura vrijednosti
parametri := url. Vrijednosti{}

// dodaj vrijednosti strukturi
parametri Dodati("Ime", "John Smith")
parametri Dodati("dob", "30")
parametri Dodati("spol", "muški")

// kodiramo strukturu u niz
encodedParams := parametri. Kodiraj()
fmt. Println (encodedParams)

// Izlaz: "age=30&gender=male&name=John+Smith"
}

The glavni funkcija stvara novu Vrijednosti struct instanca od url paket, i Dodati metoda instance strukture dodaje parove podataka ključ-vrijednost instanci strukture.

The Kodiraj metoda pretvara par ključ-vrijednost u format URL niza "ključ1=vrijednost1&ključ2=vrijednost2&ključ3=vrijednost3".

Možete dekodirati kodirani URL niz pomoću ParseQuery funkcija url paket.

uvoz (
"fmt"
"net/url"
)

funkglavni() {
// kodirani niz parametara URL-a
encodedParams := "dob=30&spol=muški&ime=John+Smith"

// analizirati kodirani niz u url. Struktura vrijednosti
params, err := url. ParseQuery (encodedParams)

ako pogriješiti != nula {
fmt. Println (greška)
}

// ispis strukture
fmt. Println (parametri)

// Izlaz: karta[dob:[30] spol:[muško] ime:[John Smith]]
}

The kodiraniParametar varijabla je kodirani URL niz. The ParseQuery funkcija preuzima kodiraniParametar varijablu i vraća dekodirani URL niz i pogrešku.

Ovi Go paketi mogu podići vašu igru ​​web-usmjeravanja na višu razinu

URL-ovi koje koristite za stranice svoje web aplikacije doprinose njezinoj izvedbi i vidljivosti na tražilicama. Web usmjeravanje je proces usmjeravanja dolaznih zahtjeva odgovarajućoj funkciji rukovatelja na temelju URL-a.

Možete usmjeravati pomoću http paketa ili popularnih paketa trećih strana kao što su Gorilla Mux, Chi, Pat ili Httprouter. Ovi paketi čine usmjeravanje lakšim od http paketa apstrahirajući neke od njegovih složenosti.