Czytelnicy tacy jak ty pomagają wspierać MUO. Kiedy dokonujesz zakupu za pomocą linków na naszej stronie, możemy otrzymać prowizję partnerską. Czytaj więcej.

Adresy URL (Uniform Resource Locators) to jedne z najważniejszych elementów infrastruktury internetowej. Podczas tworzenia aplikacji internetowych będziesz musiał manipulować adresami URL, aby zlokalizować i pobrać zasoby.

Tworząc bardziej zaawansowane aplikacje internetowe, będziesz musiał pracować z adresami URL na bardziej szczegółowym poziomie. Może być konieczne zidentyfikowanie schematu, nazwy hosta, ścieżki i parametrów zapytania. Musisz także wiedzieć, jak kodować i dekodować adresy URL, aby móc obsługiwać znaki specjalne i zapewnić bezpieczeństwo aplikacji internetowej.

Standardowa biblioteka Go zawiera pakiet net/url do obsługi adresów URL i komponentów adresów URL.

Pakiet URL

The adres URL pakiet zapewnia kompleksowe funkcje i funkcje do pracy Adresy URL i ich odrębne części. Zapewnia funkcje do analizowania, konstruowania, kodowania i dekodowania adresów URL, dzięki czemu pakiet jest przydatny do tworzenia stron internetowych.

Niektóre z kluczowych cech adres URL pakiet to możliwość parsowania adresów URL na poszczególne komponenty w celu manipulacji i konstruowania adresów URL dla żądań HTTP. The adres URL pakiet zapewnia również Adres URL struktura z a Analizować metoda parsowania ciągów znaków na adresy URL.

Tutaj jest adres URL Adres URL model struktury:

pakiet główny

typ Adres URL struktura {
// Schemat to schemat protokołu adresu URL,
// takie jak „http” lub „https”
Schemat strunowy

// Opaque służy do przechowywania nieprzezroczystych danych
// który powinien być zakodowany w adresie URL
Nieprzejrzysty strunowy

// Użytkownik posiada informacje o użytkowniku zgłaszającym żądanie,
// takie jak nazwa użytkownika i hasło
Użytkownik * Informacje o użytkowniku

// Host to nazwa hosta lub adres IP
// serwera obsługującego adres URL
Gospodarz strunowy

// Ścieżka to ścieżka adresu URL na serwerze
Ścieżka strunowy

// RawPath jest oryginałem,
// zakodowana ścieżka adresu URL
RawPath strunowy

// ForceQuery wskazuje, czy adres URL powinien zawierać ciąg zapytania
// nawet jeśli jest pusty
Wymuś zapytanie bool

// RawQuery jest oryginałem,
//zakodowany ciąg zapytania adresu URL
RawQuery strunowy

// Fragment to identyfikator fragmentu adresu URL,
// używany do linkowania do określonego elementu na stronie
Fragment strunowy

// RawFragment jest oryginałem,
// identyfikator zakodowanego fragmentu adresu URL
RawFragment strunowy
}

Wiedząc, jak uzyskać dostęp do różnych części Adres URL struct może być przydatna do zadań takich jak walidacja.

Parsowanie adresów URL za pomocą funkcji parsowania

The Analizować funkcja adres URL pakiet zapewnia funkcjonalność analizowania ciągów adresów URL w poszczególnych komponentach. The Analizować Funkcja przyjmuje pojedynczy adres URL jako argument i zwraca wskaźnik do adres URL Adres URL struct zawierająca przeanalizowane dane adresu URL i typ błędu.

Oto jak możesz użyć Analizować funkcja do pobierania elementów adresu URL.

import (
"fmt"
„sieć/url”
)

funkcjagłówny() {
// Adres URL, który chcesz przeanalizować
przykładURL := " https://www.example.com/path? parametr1=wartość1&parametr2=wartość2"

// Przeanalizuj adres URL
parsedURL, błąd:= adres URL. Analizuj (exampleURL)

Jeśli błąd!= zero {
fmt. Println (błąd)
powrót
}

// Wydrukuj wszystkie pola adresu URL
fmt. println("Schemat:", przeanalizowany URL.Scheme)
fmt. println("Nieprzejrzysty:", przeanalizowany URL. Nieprzezroczysty)
fmt. println("Użytkownik:", przeanalizowany URL.Użytkownik)
fmt. println("Gospodarz:", przeanalizowany URL.Host)
fmt. println("Ścieżka:", przeanalizowany URL.Ścieżka)
fmt. println(„Surowa ścieżka:”, przeanalizowany URL.RawPath)
fmt. println(„Wymuś zapytanie:”, parsowany URL.ForceQuery)
fmt. println(„SuroweZapytanie:”, parsowany URL.RawQuery)
fmt. println("Fragment:", przeanalizowany URL.Fragment)
fmt. println(„RawFragment:”, przeanalizowany URL.RawFragment)
}

The przykładURL zmienna zawiera pełny, nieprzeanalizowany adres URL, a plik Analizować funkcja analizuje zawartość pliku przykładURL zmienna i zwraca przeanalizowany adres URL. Program kończy się serią wezwań do Drukuj ln aby zademonstrować poszczególne pola Adres URL struktura.

Funkcja analizowania nie sprawdza, czy adres URL jest prawdziwy i faktycznie istnieje, analizuje tylko składnię adresu URL. Możesz użyć http pakiet aby wykonać żądanie GET na adres URL i sprawdzić odpowiedź:

import (
"fmt"
„sieć/http”
)

funkcjagłówny() {
// Adres URL, który chcesz sprawdzić
przykładURL := " https://www.example.com"

// Wykonaj żądanie HTTP GET do adresu URL
odpowiedź, błąd := http. Pobierz (przykładowy adres URL)

Jeśli błąd!= zero {
fmt. Println (błąd)
powrót
}

odraczać odpowiedź. Ciało. Zamknąć()

// Sprawdź kod statusu odpowiedzi
Jeśli odpowiedź. Kod stanu == http. Stan OK {
fmt. println(„Adres URL istnieje”.)
} w przeciwnym razie {
fmt. println(„Adres URL nie istnieje”.)
}
}

The główny funkcja tworzy a DOSTAWAĆ prośba do przykładURL używając Dostawać funkcja http pakiet. Ta funkcja zwraca instancję odpowiedzi i typ błędu. Program kończy się a Jeśli oświadczenie w celu potwierdzenia istnienia strony internetowej poprzez sprawdzenie Kod stanu HTTP niezgodne z StanOk stała od http pakiet.

Takie podejście umożliwia podejmowanie działań w oparciu o wynik sprawdzenia, takich jak przekierowanie użytkownika na inną stronę, wyświetlając komunikat o błędzie lub ponawiając żądanie po pewnym czasie okres.

Kodowanie i dekodowanie parametrów adresu URL

The adres URL pakiet zapewnia Kodować metoda kodowania parametrów adresu URL. The Kodować funkcja percent-koduje znaki specjalne i spacje w parametrach adresu URL.

import (
"fmt"
„sieć/url”
)

funkcjagłówny() {
// utwórz nowy adres URL. Struktura wartości
parametry:=url. wartości{}

// dodaj wartości do struktury
parametry. Dodać("nazwa", "John Smith")
parametry. Dodać("wiek", "30")
parametry. Dodać("płeć", "Mężczyzna")

// zakoduj strukturę w łańcuch
encodedParams:= parametry. Kodować()
fmt. Println (zakodowane parametry)

// Dane wyjściowe: „wiek=30&płeć=mężczyzna&imię=Jan+Kowalski”
}

The główny funkcja tworzy nowy Wartości instancja struktury adres URL pakiet i Dodać metoda instancji struct dodaje pary klucz-wartość danych do instancji struct.

The Kodować konwertuje parę klucz-wartość na format łańcucha adresu URL „klucz1=wartość1&klucz2=wartość2&klucz3=wartość3”.

Możesz zdekodować zakodowany ciąg adresu URL za pomocą ParseQuery funkcja adres URL pakiet.

import (
"fmt"
„sieć/url”
)

funkcjagłówny() {
// zakodowany ciąg parametrów adresu URL
zakodowane parametry := "wiek=30&płeć=mężczyzna&imię=Jan+Kowalski"

// przeanalizuj zakodowany ciąg znaków na adres URL. Struktura wartości
parametry, błąd:= adres URL. ParseQuery (encodedParams)

Jeśli błąd!= zero {
fmt. Println (błąd)
}

// wydrukuj strukturę
fmt. Println (parametry)

// Dane wyjściowe: map[wiek:[30] płeć:[mężczyzna] imię i nazwisko:[Jan Kowalski]]
}

The zakodowany parametr zmienna to zakodowany ciąg adresu URL. The ParseQuery funkcja przyjmuje zakodowany parametr zmienna i zwraca zdekodowany ciąg adresu URL oraz błąd.

Te pakiety Go mogą przenieść Twoją grę z routingiem internetowym na wyższy poziom

Adresy URL, których używasz do stron swojej aplikacji internetowej, przyczyniają się do jej wydajności i widoczności w wyszukiwarkach. Routing sieciowy to proces kierowania przychodzących żądań do odpowiedniej funkcji obsługi na podstawie adresu URL.

Możesz kierować za pomocą pakietu http lub popularnych pakietów innych firm, takich jak Gorilla Mux, Chi, Pat lub Httprouter. Pakiety te sprawiają, że routing jest prostszy niż pakiet http, usuwając niektóre z jego złożoności.