cookie和cookiejar有什么区别?

Tim*_*nov 16 cookies session go session-cookies

今天我面对的是"cookiejar"(包net/http/cookiejar).我试图收集一些有关它的信息,但没有得到任何理解.我知道cookie是服务器发送给客户端的键/值对,例如:Set-Cookie: foo=10浏览器将其存储在本地,然后每个后续请求浏览器将这些cookie发送回服务器,例如:Cookie: foo=10.

好的,但是cookiejar怎么样?它是什么以及它看起来如何?

icz*_*cza 32

正如您在问题中所描述的,cookie由浏览器(HTTP客户端)管理,它们允许在客户端的计算机上存储信息,这些信息由浏览器在后续请求中自动发送.

如果您的应用程序充当客户端(使用该net/http程序包连接到远程HTTP服务器),则没有可以处理/管理cookie的浏览器.我的意思是存储/记住作为Set-Cookie:响应头到达的cookie,并将它们附加到对同一主机/域进行的后续传出请求.Cookie也有截止日期,在决定将它们包含在传出请求中之前,您还需要检查它们.

http.Client但是,该类型允许您设置类型的值http.CookieJar,如果这样做,您将拥有自动cookie管理,否则将不存在或您必须自己进行.这使您可以使用net/http服务器将作为同一会话的一部分看到的包执行多个请求,就像它们是由真实浏览器制作一样,因为通常使用cookie维护HTTP会话(会话ID).

该软件包net/http/cookiejar是一个CookieJar实现,您可以直接使用它.请注意,此实现仅在内存中,这意味着如果重新启动应用程序,cookie将丢失.


因此,基本上,HTTP cookie是从网站发送的一小段数据,并在用户浏览该网站时存储在用户的Web浏览器中.

Cookiejar是一个简单的cookie管理器的Go接口(用于管理来自HTTP请求和响应头的cookie)以及该接口实现.

  • 这是一个很好的解释. (5认同)