1.form表单的数据是一段一段上传的;
可以用以下方法在服务器端获得请求体
let body = [];
request.on('data', (chunk) => {
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString();
// at this point, `body` has the entire request body stored in it as a string
console.log(body);
response.statusCode = 200;
response.end();
});
2.浏览器第一次发送请求后,服务起会返回一个cookie,在这之后,浏览器每次访问同源发出的请求都会携带者这段cookie。这段cookie相当于身份证。并且由期限;
cookies特点:
1.服务器通过Set-Cookie响应头设置Cookie
2.浏览器得到Cookie之后,每次请求都要带上Cookie
3.服务器读取了Cookie就知道了用户的信息。
问题:
我在 Chrome 登录了得到 Cookie,用 Safari 访问,Safari 会带上 Cookie 吗
no
Cookie 存在哪
Windows 存在 C 盘的一个文件里
Cookie会被用户篡改吗?
可以,下节课会讲 Session 来解决这个问题,防止用户篡改
Cookie 有效期吗?
默认有效期20分钟左右,不同浏览器策略不同
后端可以强制设置有效期,具体语法看 MDN
Cookie 遵守同源策略吗?
也有,不过跟 AJAX 的同源策略稍微有些不同。
当请求 qq.com 下的资源时,浏览器会默认带上 qq.com 对应的 Cookie,不会带上 baidu.com 对应的 Cookie
当请求 v.qq.com 下的资源时,浏览器不仅会带上 v.qq.com 的Cookie,还会带上 qq.com 的 Cookie
另外 Cookie 还可以根据路径做限制,请自行了解,这个功能用得比较少。
不同浏览器有不同的cookie
cookie有两个,一个在本地一个在浏览器
cookie有时间的限制(默认是20分钟左右,后端可以强制修改有效时间)
过程
1.用户注册,.post()发出post请求。服务器检查数据无误后将数据存入数据库;2用户登录,.post()发出post请求。服务器检查数据无误后将数据存入数据库;2用户登录,.post()发出post请求。服务器对比用户提交的数据与数据库中的数据,确认一样后返回一个cookie给浏览器。
3.此后用户从浏览器发出的每次请求都会携带这段cookie,并且服务器通过检查这段cookie来确认是不是该用户。