Lesere som deg er med på å støtte MUO. Når du foretar et kjøp ved å bruke lenker på nettstedet vårt, kan vi tjene en tilknyttet provisjon. Les mer.

URL-er (Uniform Resource Locators) er en av internetts mest kritiske deler av infrastrukturen. Når du bygger nettapplikasjoner, må du manipulere URL-er for å finne og hente ressurser.

Når du bygger mer sofistikerte nettapper, må du jobbe med nettadresser på et mer detaljert nivå. Du må kanskje identifisere skjemaet, vertsnavnet, banen og spørringsparametrene. Du må også vite hvordan du koder og dekoder URL-er slik at du kan håndtere spesialtegn og holde nettapplikasjonen din trygg.

Gos standardbibliotek gir nett/url-pakken for å håndtere URL-er og URL-komponenter.

URL-pakken

De url pakken gir omfattende funksjoner og funksjoner for å jobbe med URL-er og deres separate deler. Den gir funksjoner for å analysere, konstruere, kode og dekode URL-er, noe som gjør pakken nyttig for webutvikling.

Noen av nøkkelfunksjonene til url pakken er muligheten til å analysere URL-er til individuelle komponenter for manipulering og URL-konstruksjon for HTTP-forespørsler. De

instagram viewer
url pakken gir også en URL struktur med en Parse metode for å analysere strenger til URL-er.

Her er url. URL strukturmodell:

pakke hoved-

type URL struktur {
// Scheme er protokollskjemaet til URL-en,
// som "http" eller "https"
Opplegg streng

// Opaque brukes til å holde alle ugjennomsiktige data
// som skal være kodet i URL-en
Ugjennomsiktig streng

// Bruker har informasjon om brukeren som sender forespørselen,
// som brukernavn og passord
Bruker *Brukerinfo

// Vert er vertsnavnet eller IP-adressen
// av serveren som er vert for URL-en
Vert streng

// Bane er banen til URL-en på serveren
Sti streng

// RawPath er originalen,
// kodet bane til nettadressen
RawPath streng

// ForceQuery angir om URL-en skal inneholde en spørringsstreng
// selv om den er tom
ForceQuery bool

// RawQuery er originalen,
//kodet søkestreng for URL-en
RawQuery streng

// Fragment er fragmentidentifikatoren til URL-en,
// brukes til å lenke til et spesifikt element på en side
Fragment streng

// RawFragment er originalen,
// kodet fragmentidentifikator for nettadressen
RawFragment streng
}

Å vite hvordan du får tilgang til ulike deler av URL struct kan være nyttig for oppgaver som validering.

Parse URL-er ved hjelp av Parse-funksjonen

De Parse funksjonen til url pakken gir funksjonaliteten for å analysere URL-strenger til individuelle komponenter. De Parse funksjonen tar en enkelt URL som et argument og returnerer en peker til url. URL struct som inneholder de analyserte dataene til URL-en og en feiltype.

Her er hvordan du kan bruke Parse funksjon for å hente elementene i en URL.

import (
"fmt"
"net/url"
)

funchoved-() {
// URL-en du vil analysere
eksempelURL := " https://www.example.com/path? param1=verdi1&param2=verdi2"

// Parse URL
parsedURL, feil := url. Parse (exampleURL)

hvis feil!= null {
fmt. Println (feil)
komme tilbake
}

// Skriv ut alle feltene i URL-en
fmt. Println("Opplegg:", parsedURL.Scheme)
fmt. Println("Ugjennomsiktig:", parsedURL.Opaque)
fmt. Println("Bruker:", parsedURL.User)
fmt. Println("Vert:", parsedURL.Host)
fmt. Println("Sti:", parsedURL.Path)
fmt. Println("RawPath:", parsedURL.RawPath)
fmt. Println("ForceQuery:", parsedURL.ForceQuery)
fmt. Println("RawQuery:", parsedURL.RawQuery)
fmt. Println("Fragment:", parsedURL.Fragment)
fmt. Println("RawFragment:", parsedURL.RawFragment)
}

De eksempelnettadresse variabelen inneholder den fullstendige, uparsede URL-en og Parse funksjonen analyserer innholdet i eksempelnettadresse variabel og returnerer den analyserte URL-en. Programmet avsluttes med en rekke oppfordringer til Println å demonstrere de enkelte feltene i URL struktur.

Parse-funksjonen sjekker ikke om en URL er en ekte en som faktisk eksisterer, den analyserer bare URL-en syntaktisk. Du kan bruke http pakke for å sende en GET-forespørsel til URL-en og sjekke svaret:

import (
"fmt"
"net/http"
)

funchoved-() {
// URLen du vil sjekke
eksempelURL := " https://www.example.com"

// Lag en HTTP GET-forespørsel til URL-en
svar, feil := http. Hent (eksempelURL)

hvis feil!= null {
fmt. Println (feil)
komme tilbake
}

utsette respons. Kropp. Lukk()

// Sjekk svarstatuskoden
hvis respons. Statuskode == http. StatusOK {
fmt. Println("URL finnes.")
} ellers {
fmt. Println("URL finnes ikke.")
}
}

De hoved- funksjon gjør en forespørsel til eksempelnettadresse bruker funksjonen til http pakke. Denne funksjonen returnerer en responsforekomst og feiltype. Programmet avsluttes med en hvis erklæring for å validere nettstedets eksistens ved å sjekke HTTP-statuskode mot StatusOk konstant fra http pakke.

Denne tilnærmingen lar deg utføre handlinger basert på resultatet av sjekken, for eksempel å omdirigere brukeren til en annen side, viser en feilmelding eller prøver forespørselen på nytt etter en viss periode.

Koding og dekoding URL-parametre

De url pakken gir Kode metode for koding av URL-parametere. De Kode funksjon prosent-koder spesialtegn og mellomrom i URL-parametere.

import (
"fmt"
"net/url"
)

funchoved-() {
// opprett en ny url. Verdier struktur
params := url. Verdier{}

// legg til verdier til strukturen
params. Legg til("Navn", "John Smith")
params. Legg til("alder", "30")
params. Legg til("kjønn", "mannlig")

// kode strukturen til en streng
encodedParams := params. Encode()
fmt. Println (encodedParams)

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

De hoved- funksjonen oppretter en ny Verdier struct forekomst av url pakken, og Legg til metoden til struct-forekomsten legger til nøkkelverdi-par med data til struct-forekomsten.

De Kode metoden konverterer nøkkelverdi-paret til URL-strengformatet "key1=value1&key2=value2&key3=value3".

Du kan dekode en kodet URL-streng med ParseQuery funksjonen til url pakke.

import (
"fmt"
"net/url"
)

funchoved-() {
// kodet streng med URL-parametere
encodedParams := "alder=30&kjønn=mann&navn=John+Smith"

// analysere den kodede strengen til en url. Verdier struktur
params, feil := url. ParseQuery (encodedParams)

hvis feil!= null {
fmt. Println (feil)
}

// skriv ut strukturen
fmt. Println (params)

// Utdata: kart[alder:[30] kjønn:[mann] navn:[John Smith]]
}

De kodet Parameter variabel er en kodet URL-streng. De ParseQuery funksjonen tar inn kodet Parameter variabel og returnerer den dekodede URL-strengen og en feil.

Disse Go-pakkene kan ta nettrutingsspillet ditt til neste nivå

URL-ene du bruker for sidene i nettapplikasjonen din bidrar til ytelsen og synligheten på søkemotorene. Nettruting er prosessen med å dirigere innkommende forespørsler til riktig behandlerfunksjon basert på URL-en.

Du kan rute ved å bruke http-pakken eller populære tredjepartspakker som Gorilla Mux, Chi, Pat eller Httprouter. Disse pakkene gjør ruting enklere enn http-pakken ved å abstrahere bort noen av dens kompleksitet.