-
Notifications
You must be signed in to change notification settings - Fork 182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cookie实践(从搭建服务器到cookie操作全流程) #18
Labels
Web
网络、性能、优化类
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
看了很多关于cookie与session的理论文章,项目中日常也经常用,但自己是前端er,对后端一直抱有好奇心,这次就拿cookie开到,跑一个全流程吧,也顺便作为巩固cookie知识的一个实践
COOKIE和SESSION有什么区别? - 知乎
搭建服务器,初始化
通过node,我们可以很轻易的搭建出一个本地服务器,也为我们做各种项目试验带来了方便,再次推崇一发node大法
这里使用了express框架快速搭建服务器,在新建的main.js文件输入以下代码
express中文官网
终端输入
node main.js
把服务器跑起来浏览器输入
https://localhost:3000
即可看到如下界面还可以看到,页面已经有了一个请求,但没有cookie相关的信息
cookie工作方式
忘了哪位伟人说过:
大胆假设,小心验证
,那我们就听一次话吧先猜测大概流程如
假设如下
开始验证
main.js文件中加上
res.cookie('cookie1', 'cookie1')
关闭服务器重启后,会发现第一次的请求响应中,带上了
![de3337d0-f6ff-4bef-88a9-5ed17a75cd92](https://user-images.githubusercontent.com/25027560/36069449-1e717712-0f25-11e8-8fe0-8238b3b10b2c.png)
Set-Cookie:cookie1=cookie1; Path=/
,但是请求头中并没有出现cookie这时候刷新一下页面,再看看有什么不同?
请求也带上了cookie,也就是说,浏览器已经把cookie记下来了
多加个cookie试试
重启刷新两次页面,再看看?
属性
设置属性:expires,max-age, httpOnly
由于设置了httpOnly,所以cookie3读不出来
![32d86ed1-289d-4c97-9a50-b190f6e84022](https://user-images.githubusercontent.com/25027560/36069458-3b21fbca-0f25-11e8-8868-d8c81d933dc8.png)
过了十秒钟再刷新,cookie1和cookie2没有了
![525133ec-61bf-4ac5-8f54-5717fb3955a9](https://user-images.githubusercontent.com/25027560/36069461-41ee99f4-0f25-11e8-8908-ab5623fea68e.png)
作用域domain
child1.parent.com
和child2.parent.com
是子域,parent.com
是父域。当 Cookie 的 domain 为
child1.parent.com
时 ,那么只有访问child1.parent.com
的时候就会带上 Cookie,访问child2.parent.com
的时候是不会带上的当 Cookie 的 domain 为
parent.com
时,那么访问child1.parent.com
和child2.parent.com
都会带上 Cookie作用路径
在子路径内可以访问访问到父路径的 Cookie,反过来就不行
![3680d948-30f6-44a9-90be-0198b938db87](https://user-images.githubusercontent.com/25027560/36069465-4ea789f8-0f25-11e8-99d4-5ccae8747349.png)
父路径就访问不到子路径的cookie
客户端操作cookie
读取
document.cookie
添加
document.cookie='name=value; expires=Thu, 26 Feb 2119 11:50:25 GMT; domain=sankuai.com; path=/';
domain根据需要设置
修改
跟添加是一样的操作,如果name跟现有cookie一样,则改写,否则是添加
删除
把max-age改为0即可
The text was updated successfully, but these errors were encountered: