Cookie的字面翻译实际上是“小甜蛋糕”。但是在互联网世界中,Cookie是网络开发中常用的数据存储和会话跟踪技术。
饼干机制在Applet的发展方面也有很大的需求。但是,大多数主流小程序平台不支持cookie机制,这使开发人员通过applet的本地缓存模拟cookie的效果。但是这种方法并不完美,有很多问题。
这是每个人的以下两种流行方法!
使用小程序数据缓存能力模拟cookie只能满足基本需求,而开发人员负担很大。
常见操作是封装开发人员的请求请求,删除需要从接口响应中保存的值,然后将其保存在本地缓存存储中。每个接口请求,然后将相关数据从存储中读取到请求标头或主体。要模拟cookie的效果。
1.增加开发人员的手动维护负担
2.降低迷你程序性能
//发送请求tt.request({data:{param1,param2,// ...});
//视频请求想标记这样的用户吗?
``##使用第三-party库>社区中的一些第三方库支持Applet的Cookie机制。尽管很方便,但存在诸如性能,安全性,兼容性等问题。tt.uploadfile,tt.Downloadfile和其他API,添加自动分析并添加CookieOperation消除了开发人员管理Cookie的负担。
与具有第三方库的手动管理相比,它具有一定的优势:
但是,第三方库的cookie实现仍基于applet的本地缓存,并且仍然存在许多缺点:
3.无法支持网络请求方法,例如视频,音频,实时播放器,tt.previewimage;
4.跨平台框架,例如Uni-App,Taro和其他跨平台框架可能需要适应第三方库的兼容性,否则将不使用;
5.安全问题,如果有恶意的第三方框架,您可以得到/修改cookie;
6.引入第三方库将增加小程序包的数量。
考虑到开发人员的紧急需求以及现有使用本地缓存方法的缺点,该字节applet提供了基本库2.45.0版本中框架级别的cookie支持。
BYTE MINI程序支持TT.Request响应中的支持服务,使用HTTP首次设置cookie的Set-Cookie字段。该框架负责Cookie分析,存储,匹配和发送的框架,并且处理逻辑遵循RFC6265规格。。
有关更多介绍,查看器文档:小程序cookie机制
与市场上的两种流行方法相比,字节迷你程序提供的曲奇机制具有以下核心优势:
与使用存储模拟cookie实施的开发人员相比,小程序cookie遵循RFC6265规范,所提供的功能相对完整且丰富:
小程序cookie由框架SDK管理。读取速度比前端存储模拟快得多。根据数据,小程序cookie的阅读速度<1ms,写作速度约为7ms。
然后比较开发人员自己的阅读数据的情况,并且性能优势很明显:
// http请求不会携带cookie // cookie:''tt.request({url:“ http:/xxx.com”});
// https请求仅携带cookie // cookie:'id = 1'tt.request({url:“ https:/xxx.com”});
// cross-domain set-cookie不会存储网址:“ https://a.com/” set-cookie:“ id1 = 1; domain = b.com”
// ttml
// js playVideo(e){const id = e.target.id;const userId = tt.getStotOragesYnc('useId');tt.request({url:'xxx',数据:{userId,videoid:id,}});};}
{“ cookie”:{“ enablestore”:true // true打开小程序cookie Mechangigry.default false}}}
//本地cookie // key1 = value1;key2 = value2
//自定义cookie tt.request({url:“ https://xxx.com/request”,header:{“ content-type”:“ application/json”,cookie:“ key1 = value3”,//此hereaddcookie},成功(res){console.log(“成功呼叫”,res.data);},});
// cookie // key1 = value3;key2 = value2
原始:https://juejin.cn/post/7096032377788432392