Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

URL (vienotie resursu meklētāji) ir viena no vissvarīgākajām interneta infrastruktūras daļām. Veidojot tīmekļa lietojumprogrammas, jums būs jāmaina URL, lai atrastu un izgūtu resursus.

Veidojot sarežģītākas tīmekļa lietotnes, jums būs jāstrādā ar vietrāžiem URL precīzākā līmenī. Iespējams, jums būs jānorāda shēma, resursdatora nosaukums, ceļš un vaicājuma parametri. Jums būs arī jāzina, kā kodēt un atšifrēt vietrāžus URL, lai varētu rīkoties ar īpašām rakstzīmēm un aizsargāt savu tīmekļa lietojumprogrammu.

Go standarta bibliotēka nodrošina tīkla/url pakotni, lai apstrādātu URL un URL komponentus.

URL pakotne

The url pakotne nodrošina visaptverošas funkcijas un iespējas darbam ar URL un to atsevišķās daļas. Tas nodrošina funkcijas URL parsēšanai, konstruēšanai, kodēšanai un dekodēšanai, padarot pakotni noderīgu tīmekļa izstrādei.

Dažas no galvenajām funkcijām

url pakotnes ir iespēja parsēt vietrāžus URL atsevišķos komponentos manipulācijām un URL izveidei HTTP pieprasījumiem. The url pakete arī nodrošina a URL strukturēt ar a Parsēt metode virkņu parsēšanai vietrāžos URL.

Lūk, url. URL struktūras modelis:

iepakojums galvenais

veids URL struktūra {
// Shēma ir URL protokola shēma,
// piemēram, "http" vai "https"
Shēma virkne

// Necaurspīdīgs tiek izmantots, lai turētu jebkādus necaurspīdīgus datus
// kam jābūt iekodētam URL
Necaurspīdīgs virkne

// Lietotājam ir informācija par lietotāju, kurš veic pieprasījumu,
// piemēram, lietotājvārdu un paroli
Lietotājs *Lietotāja informācija

// Saimniekdators ir resursdatora nosaukums vai IP adrese
// no servera, kas mitina URL
Uzņēmēja virkne

// Ceļš ir URL ceļš serverī
Ceļš virkne

// RawPath ir oriģināls,
// URL kodētais ceļš
RawPath virkne

// ForceQuery norāda, vai vietrādī URL ir jāiekļauj vaicājuma virkne
// pat ja tas ir tukšs
ForceQuery bool

// RawQuery ir oriģināls,
//URL kodēta vaicājuma virkne
RawQuery virkne

// Fragments ir URL fragmenta identifikators,
// izmanto, lai izveidotu saiti uz konkrētu lapas elementu
Fragments virkne

// RawFragment ir oriģināls,
// URL kodētais fragmenta identifikators
Neapstrādāts fragments virkne
}

Zinot, kā piekļūt dažādām vietnes daļām URL struct var būt noderīga tādiem uzdevumiem kā validācija.

URL parsēšana, izmantojot parsēšanas funkciju

The Parsēt funkcija url pakotne nodrošina funkcionalitāti URL virkņu parsēšanai atsevišķos komponentos. The Parsēt funkcija izmanto vienu URL kā argumentu un atgriež rādītāju uz url. URL struktūra, kas satur parsētos URL datus un kļūdas veidu.

Lūk, kā varat izmantot Parsēt funkciju, lai izgūtu URL elementus.

imports (
"fmt"
"tīkls/url"
)

funcgalvenais() {
// URL, kuru vēlaties parsēt
exampleURL := " https://www.example.com/path? param1=vērtība1&param2=vērtība2"

// Parsējiet URL
parsedURL, err := url. Parsēt (exampleURL)

ja kļūda! = nulle {
fmt. Println (kļūda)
atgriezties
}

// Drukājiet visus URL laukus
fmt. Println("Shēma:", parsedURL.Scheme)
fmt. Println("Necaurspīdīgs:", parsedURL.Necaurspīdīgs)
fmt. Println("Lietotājs:", parsedURL.Lietotājs)
fmt. Println("Saimnieks:", parsedURL.Host)
fmt. Println("Ceļš:", parsedURL.Path)
fmt. Println("RawPath:", parsedURL.RawPath)
fmt. Println("ForceQuery:", parsedURL.ForceQuery)
fmt. Println("RawQuery:", parsedURL.RawQuery)
fmt. Println("Fragments:", parsedURL.Fragment)
fmt. Println("Neapstrādāts fragments:", parsedURL.RawFragment)
}

The exampleURL mainīgais satur pilnu, neparsētu URL un Parsēt funkcija parsē saturu exampleURL mainīgo un atgriež parsēto URL. Programma beidzas ar virkni zvanu uz Println demonstrēt atsevišķus laukus URL struktūra.

Parsēšanas funkcija nepārbauda, ​​vai URL ir īsts, kas patiešām pastāv, tā tikai parsē URL sintaktiski. Jūs varat izmantot http iepakojums lai veiktu GET pieprasījumu URL un pārbaudītu atbildi:

imports (
"fmt"
"net/http"
)

funcgalvenais() {
// URL, kuru vēlaties pārbaudīt
exampleURL := " https://www.example.com"

// Veiciet HTTP GET pieprasījumu URL
atbilde, kļūda := http. Iegūt (exampleURL)

ja kļūda! = nulle {
fmt. Println (kļūda)
atgriezties
}

atlikt atbildi. Ķermenis. Aizvērt ()

// Pārbaudiet atbildes statusa kodu
ja atbildi. Statusa kods == http. Statuss OK {
fmt. Println("URL pastāv.")
} cits {
fmt. Println("URL neeksistē.")
}
}

The galvenais funkcija padara a GŪT pieprasījums uz exampleURL izmantojot gūt funkcija http iepakojums. Šī funkcija atgriež atbildes gadījumu un kļūdas veidu. Programma beidzas ar ja paziņojumu, lai apstiprinātu vietnes esamību, pārbaudot HTTP statusa kods pret StatussLabi konstants no http iepakojums.

Šī pieeja ļauj veikt darbības, pamatojoties uz pārbaudes rezultātiem, piemēram, pāradresēt lietotājs pāriet uz citu lapu, parādot kļūdas ziņojumu vai atkārtoti mēģinot pieprasījumu pēc noteikta periodā.

Kodēšanas un dekodēšanas URL parametri

The url pakete nodrošina Kodēt URL parametru kodēšanas metode. The Kodēt funkcija procenti-kodē speciālās rakstzīmes un atstarpes URL parametros.

imports (
"fmt"
"tīkls/url"
)

funcgalvenais() {
// izveidot jaunu URL. Vērtību struktūra
parametri := url. Vērtības{}

// pievienot vērtības struktūrai
parametri. Pievienot("vārds", "Džons Smits")
parametri. Pievienot("vecums", "30")
parametri. Pievienot("dzimums", "vīrietis")

// kodē struktūru virknē
encodedParams := parametri. Kodēt ()
fmt. Println (encodedParams)

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

The galvenais funkcija izveido jaunu Vērtības struktūras gadījums url iepakojums un Pievienot struct instances metode struct instancei pievieno datu atslēgu-vērtību pārus.

The Kodēt metode pārvērš atslēgas-vērtības pāri URL virknes formātā “key1=value1&key2=value2&key3=value3”.

Kodētu URL virkni var atšifrēt, izmantojot ParseQuery funkcija url iepakojums.

imports (
"fmt"
"tīkls/url"
)

funcgalvenais() {
// kodēta URL parametru virkne
encodedParams := "vecums=30&dzimums=vīrietis&vārds=Džons+Smits"

// parsējiet kodēto virkni url. Vērtību struktūra
params, err := url. ParseQuery (kodētiParams)

ja kļūda! = nulle {
fmt. Println (kļūda)
}

// izdrukājiet struktūru
fmt. Println (parametri)

// Izvade: karte[vecums:[30] dzimums:[vīrietis] vārds:[Džons Smits]]
}

The kodētaisParameter mainīgais ir kodēta URL virkne. The ParseQuery funkcija uzņem kodētaisParameter mainīgo un atgriež atšifrēto URL virkni un kļūdu.

Šīs Go pakotnes var pacelt jūsu tīmekļa maršrutēšanas spēli uz nākamo līmeni

Vietrāži URL, ko izmantojat savas tīmekļa lietojumprogrammas lapām, veicina tās veiktspēju un redzamību meklētājprogrammās. Tīmekļa maršrutēšana ir process, kurā ienākošie pieprasījumi tiek novirzīti uz atbilstošo apstrādātāja funkciju, pamatojoties uz URL.

Varat maršrutēt, izmantojot http pakotni vai populāras trešo pušu pakotnes, piemēram, Gorilla Mux, Chi, Pat vai Httprouter. Šīs pakotnes atvieglo maršrutēšanu nekā http pakotne, novēršot dažas tās sarežģītības.