我尝试过
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET https://sportnet.rtl.hr/sportnetklub/kosarka-2/
我正在尝试了解set-cookie。
HTTP/1.1 200 OK
Date: Wed, 04 Jul 2018 14:59:45 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __cfduid=dcf1d1aaf0cecdf86c66d953a2ad6c4dd1530716385; expires=Thu, 04-Jul-19 14:59:45 GMT; path=/; domain=.rtl.hr; HttpOnly
Cache-Control: private
Vary: Accept-Encoding
Set-Cookie: ASP.NET_SessionId=nphhhutdgvl1yvjvzt3dhupw; path=/; HttpOnly
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
Set-Cookie: sportnet_klub=; expires=Sun, 24-Jun-2018 15:00:07 GMT; path=/
X-Powered-By: ASP.NET
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 435275230b1f7c60-BEG
为什么我们得到多个值? 客户端操作系统是否会影响HTTP REQUEST-RESPONSE?
答案 0 :(得分:2)
为什么我们会得到多个值?
在不了解要定位的服务器(和代理)的情况下,很难回答原因。据我了解,这就是这些cookie的含义:
__cfduid
是Cloulflare cookie,用于识别共享IP地址后面的各个客户端,并基于每个客户端应用安全设置。ASP.NET_SessionId
是.NET应用程序中使用的cookie,用于标识服务器上的用户会话。sportnet_klub
似乎是特定于应用程序的cookie。根据RFC 6265,在响应中包含多个Set-Cookie
标头是完全有效的:
原始服务器可以在单个响应中包含多个
Set-Cookie
头字段。 [...]原始服务器不应将多个
Set-Cookie
头字段折叠为一个头字段。折叠HTTP标头字段的常用机制可能会更改Set-Cookie
标头字段的语义,因为%x2C
使用,
(Set-Cookie
)字符会与冲突这样的折叠。
答案 1 :(得分:0)
您请求的服务器将要求您根据某些cookie设置它们。这些可以用于会话身份验证,对于服务器登录系统正常运行至关重要,或者您可以想到的任何其他用途。因此,“为什么”很难说,它实际上取决于您与之通信的服务器以及它们使用cookie的目的。