Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Adresy URL (Uniform Resource Locator) sú jednou z najdôležitejších častí infraštruktúry internetu. Pri vytváraní webových aplikácií budete musieť manipulovať s adresami URL, aby ste našli a získali zdroje.

Keď vytvárate sofistikovanejšie webové aplikácie, budete musieť pracovať s adresami URL na jemnejšej úrovni. Možno budete musieť identifikovať schému, názov hostiteľa, cestu a parametre dotazu. Budete tiež potrebovať vedieť, ako kódovať a dekódovať adresy URL, aby ste mohli pracovať so špeciálnymi znakmi a udržiavať svoju webovú aplikáciu v bezpečí.

Štandardná knižnica Go poskytuje balík net/url na spracovanie adries URL a komponentov adries URL.

URL balík

The url balík poskytuje komplexné funkcie a vlastnosti pre prácu s URL a ich samostatné časti. Poskytuje funkcie na analýzu, vytváranie, kódovanie a dekódovanie adries URL, vďaka čomu je balík užitočný pre vývoj webu.

instagram viewer

Niektoré z kľúčových vlastností url balík je schopnosť analyzovať adresy URL do jednotlivých komponentov na manipuláciu a konštrukciu URL pre požiadavky HTTP. The url balík poskytuje aj a URL štruktúra s a Parse metóda na analýzu reťazcov na adresy URL.

Tu je url. URL model štruktúry:

balík Hlavná

typu URL štrukturovať {
// Schéma je schéma protokolu adresy URL,
// ako napríklad „http“ alebo „https“
Schéma reťazec

// Nepriehľadné sa používa na uchovávanie akýchkoľvek nepriehľadných údajov
// ktorá by mala byť zakódovaná v adrese URL
Nepriehľadné reťazec

// Používateľ uchováva informácie o používateľovi, ktorý zadáva požiadavku,
// ako napríklad používateľské meno a heslo
Používateľ *Informácie o používateľovi

// Hostiteľ je názov hostiteľa alebo adresa IP
// servera, ktorý je hostiteľom adresy URL
Hostiteľ reťazec

// Cesta je cesta adresy URL na serveri
Cesta reťazec

// RawPath je originál,
// zakódovaná cesta URL
RawPath reťazec

// ForceQuery označuje, či má adresa URL obsahovať reťazec dopytu
// aj keď je prázdny
ForceQuery bool

// RawQuery je originál,
//zakódovaný reťazec dopytu adresy URL
RawQuery reťazec

// Fragment je identifikátor fragmentu adresy URL,
// používa sa na prepojenie na konkrétny prvok na stránke
Fragment reťazec

// RawFragment je originál,
// zakódovaný identifikátor fragmentu adresy URL
RawFragment reťazec
}

Vedieť, ako pristupovať k rôznym častiam URL struct môže byť užitočná pre úlohy, ako je validácia.

Analýza adries URL pomocou funkcie analýzy

The Parse funkciu url balík poskytuje funkcionalitu na analýzu reťazcov URL do jednotlivých komponentov. The Parse funkcia berie jednu URL ako argument a vracia smerník na url. URL štruktúra obsahujúca analyzované údaje adresy URL a typ chyby.

Tu je návod, ako môžete použiť Parse funkcia na získanie prvkov adresy URL.

importovať (
"fmt"
"net/url"
)

funcHlavná() {
// Adresa URL, ktorú chcete analyzovať
exampleURL := " https://www.example.com/path? param1=hodnota1&param2=hodnota2"

// Analyzujte adresu URL
parsedURL, err := url. Analýza (exampleURL)

ak chyba!= nula {
fmt. Println (chyba)
vrátiť
}

// Vytlačí všetky polia adresy URL
fmt. Println("Schéma:", parsedURL.Scheme)
fmt. Println("Nepriehľadné:", parsedURL.Opaque)
fmt. Println("Používateľ:", parsedURL.User)
fmt. Println("Hostiteľ:", parsedURL.Host)
fmt. Println("Cesta:", 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)
}

The exampleURL premenná obsahuje úplnú, neanalyzovanú adresu URL a Parse funkcia analyzuje obsah exampleURL premennej a vráti analyzovanú adresu URL. Program končí sériou hovorov na Println demonštrovať jednotlivé polia URL štrukturovať.

Funkcia analýzy nekontroluje, či je adresa URL skutočná a skutočne existuje, iba syntakticky analyzuje adresu URL. Môžete použiť http balík ak chcete odoslať požiadavku GET na adresu URL a skontrolovať odpoveď:

importovať (
"fmt"
"net/http"
)

funcHlavná() {
// Adresa URL, ktorú chcete skontrolovať
exampleURL := " https://www.example.com"

// Vytvorte požiadavku HTTP GET na adresu URL
odpoveď, chyba := http. Získať (exampleURL)

ak chyba!= nula {
fmt. Println (chyba)
vrátiť
}

odložiť odpoveď. Telo. Zavrieť()

// Skontrolujte kód stavu odpovede
ak odpoveď. StatusCode == http. StavOK {
fmt. Println("Webová adresa existuje.")
} inak {
fmt. Println("URL neexistuje.")
}
}

The Hlavná funkcia robí a GET žiadosť na exampleURL pomocou Získajte funkciu http balík. Táto funkcia vráti inštanciu odpovede a typ chyby. Program končí an ak na overenie existencie webovej stránky kontrolou Stavový kód HTTP proti StavOk konštantný z http balík.

Tento prístup vám umožňuje vykonávať akcie založené na výsledku kontroly, ako je napríklad presmerovanie používateľa na inú stránku, zobrazenie chybového hlásenia alebo opätovný pokus o požiadavku po určitom čase obdobie.

Kódovanie a dekódovanie parametrov URL

The url balík poskytuje Zakódovať metóda kódovania parametrov URL. The Zakódovať funkcia percent-kóduje špeciálne znaky a medzery v parametroch URL.

importovať (
"fmt"
"net/url"
)

funcHlavná() {
// vytvorte novú adresu URL. Štruktúra hodnôt
parametre := url. hodnoty{}

// pridanie hodnôt do štruktúry
parametre. Pridať("názov", "John Smith")
parametre. Pridať("Vek", "30")
parametre. Pridať("rod", "Muž")

// zakóduje štruktúru do reťazca
encodedParams := params. Kódovať()
fmt. Println (encodedParams)

// Výstup: "vek=30&pohlavie=muz&meno=John+Smith"
}

The Hlavná funkcia vytvorí nový hodnoty struct inštancia url balík a Pridať metóda inštancie struct pridáva páry kľúč-hodnota údajov do inštancie struct.

The Zakódovať metóda konvertuje pár kľúč – hodnota na formát reťazca adresy URL "key1=value1&key2=value2&key3=value3".

Kódovaný reťazec adresy URL môžete dekódovať pomocou ParseQuery funkciu url balík.

importovať (
"fmt"
"net/url"
)

funcHlavná() {
// zakódovaný reťazec parametrov URL
encodedParams := "vek=30&pohlavie=muz&meno=John+Smith"

// analyzovať zakódovaný reťazec na adresu URL. Štruktúra hodnôt
parametre, chyba := url. ParseQuery (encodedParams)

ak chyba!= nula {
fmt. Println (chyba)
}

// vypíše štruktúru
fmt. Println (parametre)

// Výstup: mapa[vek:[30] pohlavie:[muž] meno:[John Smith]]
}

The encodedParameter premenná je zakódovaný reťazec adresy URL. The ParseQuery funkcia zaberá encodedParameter a vráti dekódovaný reťazec adresy URL a chybu.

Tieto balíky Go môžu posunúť vašu hru na smerovanie webu na ďalšiu úroveň

Adresy URL, ktoré používate pre stránky vašej webovej aplikácie, prispievajú k jej výkonnosti a viditeľnosti vo vyhľadávačoch. Webové smerovanie je proces smerovania prichádzajúcich požiadaviek na príslušnú funkciu obsluhy na základe adresy URL.

Smerovať môžete pomocou balíka http alebo populárnych balíkov tretích strán, ako sú Gorilla Mux, Chi, Pat alebo Httprouter. Tieto balíky uľahčujú smerovanie ako balík http tým, že odstraňujú niektoré z jeho zložitosti.