web-dev-qa-db-ja.com

cookieとcookiejarの違いは何ですか?

今日、私は「cookiejar」という用語に直面しました(パッケージnet/http/cookiejar)。それに関する情報を集めようとしましたが、何もわかりませんでした。 cookieは、サーバーがクライアントに送信するキーと値のペアであることを知っています。例:Set-Cookie: foo=10、ブラウザはそれをローカルに保存し、その後の各リクエストブラウザはこれらのCookieをサーバーに送り返します。例:Cookie: foo=10

わかりましたが、cookiejarはどうですか?それはどのようなもので、どのように見えますか?

19

あなたが質問で説明したように、クッキーはブラウザ(HTTPクライアント)によって管理され、その後のリクエストでブラウザによって自動的に送信されるクライアントのコンピュータに情報を保存することができます。

アプリケーションがクライアントとして機能する場合( net/http パッケージを使用してリモートHTTPサーバーに接続する場合)、Cookieを処理/管理するブラウザーはありません。これは、Set-Cookie:応答ヘッダーとして到着するCookieを保存/記憶し、同じホスト/ドメインに対して行われる後続の送信要求にそれらを添付することを意味します。また、Cookieには有効期限があり、送信リクエストに含めるかどうかを決定する前に確認する必要があります。

http.Client タイプでは、タイプ http.CookieJar の値を設定できます。そうすると、自動Cookie管理が可能になります。存在しないか、自分でやらなければならないでしょう。これにより、サーバーが同じセッションの一部として表示するnet/httpパッケージを使用して複数のリクエストを実行できます。これは、HTTPセッション(セッションID)がCookieを使用して維持されることが多いためです。 。

パッケージ net/http/cookiejar は、そのまま使用できるCookieJarの実装です。この実装はメモリ内にのみ存在することに注意してください。つまり、アプリケーションを再起動すると、Cookieは失われます。


つまり、基本的に HTTP cookie は、Webサイトから送信され、ユーザーがユーザーのWebブラウザーに保存する小さなデータです。そのウェブサイトを閲覧しています。

Cookiejarは、単純なCookieマネージャー(HTTP要求および応答ヘッダーからCookieを管理するため)の Goインターフェイス であり、- そのインターフェースの実装

31
icza

一般に、これは、アプリケーション(ブラウザーであるかどうかに関係なく)が要求および応答中に使用するCookieを配置するデータストアです。だから、それは本当にクッキーのための瓶です。

0
Michael Käfer