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.

Go to potężny i elastyczny język do tworzenia aplikacji internetowych. The internet pakiet odgrywa istotną rolę w ekosystemie Go.

Podobnie jak większość języków programowania po stronie serwera, Go jest dostarczany z pakietem HTTP do interakcji z protokołem HTTP. Odpowiedni pakiet Go to http pakiet, podpakiet internet pakiet.

Co to jest pakiet net/http?

The sieć/http package jest jedną ze standardowych bibliotek w Go. Zapewnia pełny zestaw funkcji i typów do budowania klientów HTTP, serwerów i innych operacji opartych na protokole HTTP. Obejmują one:

  • Funkcje do wykonywania żądań HTTP.
  • Obsługa próśb i odpowiedzi.
  • Obsługa żądań HTTP.
  • Powiązane obiekty, takie jak nagłówki i pliki cookie.

The sieć/http Pakiet obsługuje również szyfrowanie TLS/SSL, HTTP/2 i inne zaawansowane funkcje, dzięki czemu pakiet jest niezbędnym narzędziem dla programistów Go.

instagram viewer

Wiele popularnych bibliotek i struktur Go, od zestawu narzędzi sieciowych Gorilla po platformę sieciową Echo, opiera się na sieć/http pakiet.

Uruchamianie prostego serwera HTTP

Uruchamianie serwerów to jedna z podstawowych operacji, które musisz zrozumieć, aby pracować z protokołem HTTP.

Oto program do uruchom prosty serwer w Go:

pakiet główny

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

// handler jest typowym handlerem żądania-odpowiedzi HTTP w Go; szczegóły później
funkcjatreser(w http. ResponseWriter, r *http. Wniosek) {
// Fprintf formatuje łańcuch do pisarza
fmt. Fprintf (w, "Witaj świecie!")
}

funkcjagłówny() {
http. HandleFunc("/", przewodnik)
http. słuchaj i służ(":8080", zero)
}

The treser jest typowym modułem obsługi żądania-odpowiedzi dla http pakiet. Ta funkcja zapisuje ciąg „Hello, World!” do modułu zapisującego odpowiedzi HTTP.

O uruchomieniu kodu i odwiedzaniu http://localhost: 8080/ w przeglądarce internetowej powinieneś zobaczyć komunikat „Hello, World!” ciąg wyświetlany w Twojej przeglądarce.

Obsługa żądań i odpowiedzi

Możesz obsługiwać przychodzące żądania za pomocą Funkcja uchwytu metoda tzw http pakiet. The Funkcja uchwytu Metoda przyjmuje ciąg trasy i funkcję obsługi.

The http. Wniosek Metoda jest instancją przychodzącego żądania i możesz użyć wielu metod swojej instancji do interakcji z żądaniami do trasy.

http. HandleFunc("/użytkownicy", funkcja(w http. ResponseWriter, r *http. Wniosek) {
przełącznik R. Metoda {
sprawa"DOSTAWAĆ":
// obsłuż żądanie GET
sprawa"POST":
// obsłuż żądanie POST
domyślny:
http. Błąd (w, „Nieprawidłowa metoda żądania”, http. Metoda stanuNiedozwolona)
}
})

Powyższy kod używa http pakiet do zdefiniowania funkcji obsługi HTTP dla /users trasa. Funkcja obsługi nasłuchuje przychodzących żądań HTTP na trasie i przetwarza je na podstawie metody żądania (np. DOSTAWAĆ, POSTitp.)

Funkcja obsługi przyjmuje Pisarz odpowiedzi I Wniosek metody jako argumenty. The Pisarz odpowiedzi to interfejs, który pomaga programowi obsługi pisać dane jako odpowiedź dla klienta, a Wniosek to struktura zawierająca informacje o przychodzącym żądaniu, takie jak metoda HTTP, adres URL, nagłówki itp.

Powyższa funkcja obsługi używa a przełącznik instrukcja, aby określić metodę żądania i uruchomić różne bloki kodu w oparciu o metodę. Jeśli jest metoda DOSTAWAĆ, program obsługi zajmie się DOSTAWAĆ wniosek. W przeciwnym razie metoda jest POST; poradzi sobie z POST wniosek.

Jeśli metoda jest inna, wyśle ​​wiadomość http. Błąd z komunikatem „Nieprawidłowa metoda żądania” i a Metoda stanuNiedozwolonaKod stanu HTTP do klienta.

Możesz zapisywać ciągi zwrotne do klienta za pomocą Pisać metoda Twojej instancji programu piszącego, która pobiera bajtowy fragment łańcuchów i zapisuje ciąg.

w. Pisać([]bajt("Witaj świecie!"))

Możesz użyć Napisz nagłówek Twoja metoda Pisarz odpowiedzi instancja, aby napisać nagłówki do klienta.

w. Nagłówek zapisu (http. Stan OK)

Praca z oprogramowaniem pośredniczącym HTTP

Oprogramowanie pośrednie składa się z funkcji, które przechwytują przychodzące żądania HTTP dotyczące operacji, zanim żądanie przejdzie do następnej funkcji obsługi.

Oto przykład rejestrowania funkcji obsługi oprogramowania pośredniego w Go:

funkcjalogowanie Oprogramowanie pośredniczące(następny http. Treser)http.Treser {
powrót http. Funkcja obsługi(funkcja(w http. ResponseWriter, r *http. Wniosek) {
// zaloguj żądanie
Następny. ServeHTTP(w, r)
// logowanie odpowiedzi
})
}

The logowanie Oprogramowanie pośredniczące funkcja przyjmuje procedurę obsługi HTTP i zwraca nową procedurę obsługi HTTP. Zwrócona procedura obsługi HTTP jest funkcją anonimową, która przyjmuje zapis odpowiedzi HTTP i żądanie HTTP. Funkcja rejestruje żądanie i wywołuje funkcję Serwuj HTTP metoda na Następny Procedura obsługi HTTP, przekazująca zapis odpowiedzi i żądanie jako argumenty.

Możesz obsługiwać funkcje oprogramowania pośredniego za pomocą Uchwyt metoda tzw http pakiet. The Uchwyt Metoda przyjmuje trasę i funkcję oprogramowania pośredniego.

http. Uchwyt("/", loggingMiddleware (http. HandlerFunc (handler)))

Przekierowania z pakietem HTTP

Przekierowanie jest popularną operacją w aplikacjach internetowych, które odsyłają użytkowników do innych zasobów lub stron internetowych.

Możesz przekierować do innej strony internetowej za pomocą Przeadresować metoda tzw http pakiet.

http. przekierowanie (w, r, " http://example.com", http. status przeniesiony na stałe)

The Przeadresować metoda obejmuje Pisarz odpowiedzi I Wniosek wystąpień, adres URL nowej strony i kod stanu przekierowania.

Możesz budować złożone interfejsy API w Go

The http package to potężne i elastyczne narzędzie do tworzenia złożonych interfejsów API. Możesz użyć bogatej standardowej biblioteki Go i innych potężnych pakiety stron trzecich w celu dodania funkcjonalności do interfejsów API, takich jak łączność z bazą danych i obsługa różnych sieci ramy.

Dzięki Go możesz tworzyć skalowalne, wydajne interfejsy API, które z łatwością obsługują znaczny ruch żądań i złożone zadania przetwarzania danych.