cookie和session
前言 HTTP 是无状态协议,也就是说这一次的请求和上一次的请求没有任何关系,服务器不会知道发出这两次请求是同一个用户。而很多时候我们是需要知道状态的,比如记录登录状态、操作的权限认证。 为了能够认出这个用户是刚才已经登录过的用户,服务器就想出了一个办法:给请求过的用户颁发一个凭证(token),而且每次请求用户都需要带上这个凭证,这样服务器通过验证请求所携带过来的凭证就可以确定客户端的身份。 cookie cookie 的出现就是用来解决 HTTP 无状态的问题。cookie 的工作原理就是前面所说,每当一个新的用户发起请求,服务器都会在响应头中添加一个头部 set-cookie 用来向用户颁发凭证,浏览器每次发送请求时都会带上 cookie 表明身份。 cookie 里面保存的是我们出入服务器所需要的状态信息,一般都会被加密。里面是重要的身份信息,为了安全,永远不要把你的cookie泄露给别人。 cookie的组成 key 和 value:一个 cookie 主要就是一个键值对,这就是 cookie 中的存放的凭证信息 domain:设置了 cookie 能起作用的域,如 ...
计算机中数字的表示
整数的存储 整数在计算机中的表示分为有符号数和无符号数。 有符号数:可以区分正负的数 无符号数:无正负的类型(只有正值) 就像 C 语言中的整型数分为 int、unsigned int …其中的 unsigned 就是无符号类型的数,它只能表示正数。 无符号数的表示 计算机使用固定的位数来存储数据,比如计算机使用8位来存储一种类型的数,那么即使这个数并不需要使用8位二进制来表示,计算机依旧会用固定的8位来存储,方式就是在前面补 0。 例如:25 —> 0001 1001 如果在一个数太大,位数不够怎么办?舍去高位,在计算中出现这种情况叫做溢出,也许很多人都见到过正数相加结果位负数的情况。 正如这种情况下,最高位 1 会被直接舍弃,最后结果是 1。 这也说明了对于一种类型的数,它是有范围限制的,比如 C 语言中的占 32 位的 unsigned int 的表示范围为:[0, 4294967295] 那负数该怎么表示呢? 有符号数的表示 就有人想出了可以拿出一位用来做符号位,对于8位正数而言:0xxxxxxx 对于8位负数而言:1xxxxxxx,这就是所谓的原码表示。 这 ...
hexo 搭建个人博客(github + 阿里云)
前言 写博客基本上是每一个程序员都需要做的事,但是在哪里发布是一个比较头疼的问题,当然可以发布在掘金、CSDN这些平台上,但是如果有个人的站点岂不是更好,可以随心所欲的进行配置。 准备工作 安装 node Hexo 是基于 node,所以需要安装 node.js,如果你也是搞前端的电脑里一定有 node,下长期支持版(LTS)就可以,安装比较无脑,next 下去就可以。 安装完成之后,在命令行里输入 node -v 和 npm -v 来分别验证 node 和 npm(node 的包管理器)是否安装成功 安装 Git 为什么要安装 git 呢,无论我们是部署到 github 上还是自己的服务器上都需要用到 git 来实现自动化的部署。 安装完成后通过 git --version 来查看是否安装成功 安装 Hexo 使用 npm 安装 Hexo 的 cli 工具,类似于 vue 那样,选择全局安装比较方便,如果npm玩的比较好的可以选择其他的安装方式。 1npm i -g hexo-cli 通过 hexo version 验证安装是否成功 本地搭建 hexo 项目 就 ...
Vue中的样式穿透
前言 前段时间,写一个轮播图组件的时候遇到了一个样式不生效的问题,通过样式穿透解决了,记录一下。 对于vue文件中的 <style> 标签,加上 scoped 属性,它的css样式只能用于当前的组件,它的原理的是通过使用 PostCSS 来实现转换 scoped 转换规则 组件的根元素、组件自身的后代元素、子组件的根元素都会加上该组件特定的 data-v-x 属性。 css样式中,最后一个选择器会被添加上 data-v-xxx 属性选择器 1234567891011121314151617181920/* Father.vue */<template> <div class="father-wrapper"> <div class="inner"> father-inner </div> <child-cmp></child-cmp> ...