今天亲自实验了下:
发现如果一个cookie属于XX域名,那么只要是请求同一个域名或者其子域名,不管端口号是多少,什么协议,都会在请求中把这个域名的cookie带上。
1.先用HTTP请求,再用HTTPS(实验中的cookie是通过js代码给document.cookie赋值生成的,实验环境IIS)
图1:www.a.com:8112
图2:www.a.com:8111
图3:https:www.a.com(https默认443端口)
可以看出来这个cookie在请求同一个域名不同的端口时,都会附带上。
2.先用HTTPS请求,再用HTTP请求:
图4:先用HTTPS请求,响应中设置了cookie
图5:再用HTTP访问同样网页,会发现HTTPS中设置的cookie在http请求中会附带上
总结:
因此有的网站只在登录注册的时候采用HTTPS协议加密数据,返回的会话令牌cookie在之后使用HTTP协议访问同一个域名时仍然会附带。
同理相反在HTTP上附带的cookie会在使用HTTPS请求同一域名的时候附带上。