# lyshub_api **Repository Path**: lysimportant/lyshub_api ## Basic Information - **Project Name**: lyshub_api - **Description**: 开发的后台接口 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-11 - **Last Updated**: 2021-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Cookie (复数形态Cookies ),又称为“小甜饼”。类型为“小型文本文件,某些网站为了辨别用户身份而存储在用户本地终端( Client Side )上的数据。 浏览器会在特定的情况下携带上cookie来发送请求,我们可以通过cookie来获取一些信息; Cookie总是保存在客户端中,按在客户端中的存储位置,Cookie可以分为内存Cookie和硬盘Cookie。 内存Cookie由浏览器维护,保存在内存中,浏览器关闭时Cookie就会消失,其存在时间是短暂的; 硬盘Cookie保存在硬盘中,有一个过期时间,用户手动清理或者过期时间到时,才会被清理; 如果判断一个cookie是内存cookie还是硬盘cookie呢? 没有设置过期时间,默认情况下cookie是内存cookie,在关闭浏览器时会自动删除 有设置过期时间,并且过期时间不为0或者负数的cookie,是硬盘cookie,需要手动或者到期时,才会删除; cookie的生命周期: p 默认情况下的cookie是内存cookie,也称之为会话cookie,也就是在浏览器关闭时会自动被删除; p 我们可以通过设置expires或者max-age来设置过期的时间; Ø expires:设置的是Date.toUTCString(),设置格式是;expires=date-in-GMTString-format; Ø max-age:设置过期的秒钟,;max-age=max-age-in-seconds (例如一年为60*60*24*365); n cookie的作用域:(允许cookie发送给哪些URL) p Domain:指定哪些主机可以接受cookie Ø 如果不指定,那么默认是 origin,不包括子域名。 Ø 如果指定Domain,则包含子域名。例如,如果设置 Domain=mozilla.org,则 Cookie 也包含在子域名中(如developer.mozilla.org)。 p Path:指定主机下哪些路径可以接受cookie Ø 例如,设置 Path=/docs,则以下地址都会匹配: p /docs p /docs/Web/ p /docs/Web/HTTP cookie和session的方式有很多的缺点: p Cookie会被附加在每个HTTP请求中,所以无形中增加了流量(事实上某些请求是不需要的); p Cookie是明文传递的,所以存在安全性的问题; p Cookie的大小限制是4KB,对于复杂的需求来说是不够的; p 对于浏览器外的其他客户端(比如iOS、Android),必须手动的设置cookie和session; p 对于分布式系统和服务器集群中如何可以保证其他系统也可以正确的解析session? n 所以,在目前的前后端分离的开发过程中,使用token来进行身份验证的是最多的情况: p token可以翻译为令牌; p 也就是在验证了用户账号和密码正确的情况,给用户颁发一个令牌; p 这个令牌作为后续用户访问一些接口或者资源的凭证; p 我们可以根据这个凭证来判断用户是否有权限来访问; n 所以token的使用应该分成两个重要的步骤: p 生成token:登录的时候,颁发token; p 验证token:访问某些资源或者接口时,验证token;