移动端的api可以不用cookie,因为客户端可以将session信息存储在客户端上,可以不同cookie。但是在web端,由于所有的网站页面都要依赖浏览器来,没有独自的存储空间,所以需要浏览器来帮各个网站存session信息,用到的技术就是cookie。

如果服务器下发了cookie,那么同源的网站再次请求时会自动带上cookie,这是浏览器的规范。

下发的cookie有两个重要的属性:domain和path。

先说path:

只有path以及path的子路径才能看到此cookie。比如cookie.path=/api,那么/api/login和/api都可以看到,但是/api2/login就不行了。下发cookie时最好设置path,防止cookie不可见。如果在tomcat下设置了context的path,这个path也会记入其中。

再看domain,同理,只有domain以及父domain可以看到此cookie。比如站点的域名是abc.tech.com,那么cookie.domain可以为abc.tech.com,或者.tech.com,都可以看到。如果不设置,默认是全域名,即abc.tech.com。如果是父域名,前面会有一个点号.

但是不能使顶级域名,比如.com后者.net,这种会失效。

cookie的跨域可以让cookie的domain为两个域名的公共部分。