Jak opisano w pytaniu, pliki cookie są zarządzane przez przeglądarki (klienci HTTP) i umożliwiają przechowywanie informacji na komputerach klientów, które są automatycznie wysyłane przez przeglądarkę przy kolejnych żądaniach.
Jeśli aplikacja działa jako klient (łączysz się ze zdalnymi serwerami HTTP przy użyciu pakietu net/http
), nie ma przeglądarki, która obsłuży/będzie zarządzać plikami cookie. Mam tutaj na myśli przechowywanie/zapamiętywanie plików cookie, które przychodzą jako nagłówki odpowiedzi i dołączanie ich do kolejnych wysyłanych żądań do tego samego hosta/domeny. Również ciasteczka mają datę wygaśnięcia, którą należy również sprawdzić przed podjęciem decyzji o włączeniu ich do wniosków wychodzących.
Typ http.Client
pozwala jednak ustawić wartość typu http.CookieJar
, a jeśli to zrobisz, będziesz mieć automatyczne zarządzanie plikami cookie, które inaczej nie istniałoby lub musiałbyś to zrobić samodzielnie. Umożliwia to wykonywanie wielu żądań za pomocą pakietu net/http
, który serwer zobaczy jako część tej samej sesji, tak jakby był wykonany przez prawdziwą przeglądarkę, ponieważ często sesje HTTP (identyfikatory sesji) są utrzymywane za pomocą plików cookie.
Pakiet net/http/cookiejar
to implementacja CookieJar, której można użyć po wyjęciu z pudełka. Zauważ, że ta implementacja jest tylko w pamięci, co oznacza, że jeśli ponownie uruchomisz swoją aplikację, pliki cookie zostaną utracone.
Więc w zasadzie HTTP cookie to mały kawałek danych przesyłanych z witryny internetowej i przechowywane w przeglądarce internetowej użytkownika, gdy użytkownik jest przeglądanie tej strony.
Cookiejar jest Go interface prostego menadżera ciasteczek (zarządzać cookies z żądania HTTP i nagłówków odpowiedzi) oraz implementation of that interface.
Zobacz ['net/http.CookieJar'] (https://godoc.org/net/http#CookieJar). –
Stycznie powiązane: użyj https://github.com/gorilla/securecookie lub sesji, jeśli potrzebujesz plików cookie do przechowywania danych. Uwierzytelnione pliki cookie są ważne dla bezpieczeństwa. – elithrar