Cookie学习记录
Cookie 概述是服务器通过 HTTP 响应头发送给浏览器、由浏览器保存在本地的小型文本数据(通常小于 4KB)。后续浏览器向同一服务器发送请求时,会通过 HTTP 请求头自动携带匹配的 Cookie,让服务器识别这是之前来过的客户端,从而实现状态保持。Cookie 主要用于解决 HTTP 协议 “无状态” 的问题(HTTP 协议本身不会记录请求间的关联,Cookie 就是用来 “记住” 信息的桥梁) Cookie 的空间小,无法存储大容量数据,如果需要存储大量数据,可以使用 localStorage; 防 CSRF 令牌:服务器下发 csrfToken=abc123 的 Cookie(带 HttpOnly),前端提交表单时需从 Cookie 中读取该令牌并放在请求体中,服务器验证令牌一致性,防止跨站请求伪造。 Cookie 工作流程Cookie 的交互完全基于 HTTP 协议,无需前端主动干预: 客户端发起首次请求:例如用户第一次访问一个 url,此时请求头中没有服务器下发的 Cookie 服务器收到客户端的第一次请求后,若需要记住客户端,会在 HTTP 响应头中添加...
Session学习记录
session 概述Session 是 Web 开发中用于在服务器端存储用户状态信息的机制,核心作用是解决 HTTP 协议 “无状态” 的特性带来的用户身份识别和状态维持问题 HTTP 协议的无状态:每次客户端与服务器的通信都是独立的,服务器无法天然记住 “这个客户端之前做过什么 session:服务器为每个客户端(用户)创建的专属存储空间,用于记录该用户的状态信息(如登录状态、权限、临时数据等)。服务器通过一个唯一标识(Session ID)来关联客户端和对应的存储空间。 Session 工作流程 客户端首次访问需要记录状态的服务时(登录,加入购物车),服务器生成一个唯一的 session ID 并在服务器本地创建于该 Session ID 绑定的存储空间,用于存放用户状态。服务器通过 HTTP 响应头,将 Session ID 发送给客户端 客户端存储接受到 cookie 后,将 Session ID 以 Cookie 形式存储在本地。 客户端后续请求携带 Session ID,用户再次访问服务器时,浏览器会检查本地的 Cookie,若存在与当前请求域名 / 路径匹配的 Se...
HTTP、WebSocket学习记录
httpHttp 是互联网应用最广泛的客户端-服务器通信协议,用于规范浏览器、移动应用等客户端与 Web 服务器之间的数据交互。 HTTP 的特点 无状态协议:服务器不会记忆客户端的历史请求,每次请求都是独立的 只能由客户端发起请求,服务器接收后返回响应请求,服务器不会主动向客户端发送数据 通过请求方法、状态码(200、403、404 等等)、头部字段(数据信息、请求头等等)实现 标准 HTTP 在传输层使用 TCP,但数据以明文形式发送,有被监听、窃取的风险;HTTPS 通过加密保护数据安全 工作流程 建立 TCP 连接,客户端通过 TCP 协议与服务器的端口建立连接(三次握手) 客户端发起 HTTP 请求,客户端向服务器发送请求报文,包含要访问的 u 资源和客户端信息 服务器解析请求报文,处理业务逻辑 服务器将处理结果封装为响应报文,返回给客户端 客户端解析响应报文,处理数据 关闭 TCP 连接 HTTP 请求报文结构请求报文由请求行、请求头、空行、请求体四部分组成,格式如下: 12345678910111213141516// 请求行:方法 + URL + 协议版本GE...
Jwt学习记录
JWT 概述JWT 是一种基于 JSON 的轻量级身份认证令牌,用于在客户端和服务器之间安全传递信息。session 会在服务器端存储用户状态,这在分布式系统中会带来 Session 共享的麻烦。而 JWT 的核心设计是服务器不存储状态,通过令牌本身携带认证信息,实现无状态认证。 服务器签发令牌后,无需保存任何用户数据; 客户端后续请求携带令牌,服务器只需验证令牌有效性即可完成认证; 任何服务器只要拥有密钥,都能验证令牌 设置令牌刷新机制:access token 作为访问令牌,短期有效,refresh token 作为刷新令牌,长期有效;jwt 常配合 spring security 和 cookies 来使用 JWT 的组成结构JWT 令牌是一个字符串,有 Header(头部)、Payload(载荷)、Signature(签名)三个部分组成,格式为 Header.Payload.Signature Header:声明令牌类型和签名算法,JSON 格式,经 Base64URL 编码后成为第一部分 Payload:存储需要传递的用户信息,分为标准声明和自定义声明,Json ...
Axios、Fetch学习记录
AxiosAxios 是一个基于 Promise 的 HTTP 客户端,主要用于浏览器和 Node.js 中发送 HTTP 请求。它具有简洁的 API、拦截请求和响应、转化请求和响应数据等功能 功能 支持 Promise API:可以使用 async/await 语法 拦截请求和响应:能够在请求发送前或响应返回后进行处理 自动将数据转换为 JSON 数据,也可以自定义转换方式 可以取消正在进行的 HTTP 请求 自动转换请求头:根据数据类型自动设置合适的 Content-Type 客户端防止 XSRF:提供了 XSRF 保护机制 工程中的使用方式 npm 安装 1npm install axios 引入 12345// ES6 模块引入import axios from "axios";// CommonJS 引入const axios = require("axios"); 在 src 目录下新建一个 utils 目录,新建一个 request.js 文件,将代码添加到文件中,请根据自己的需求添加,这里是我在公司的 reques...
无标题
Web教学关于html和css这里不做讲解,请读者自行学习。 HTMLCSSJSTsDOM和BOMTSJquerycanvasSnap.svgThird.jsUI组件库element UI(Vue2)||plus(Vue3)指南安装 npm i element-ui -S 引入 在main.js添加以下内容 1234567891011import Vue from 'vue';import ElementUI from 'element-ui';import 'element-ui/lib/theme-chalk/index.css';import App from './App.vue';Vue.use(ElementUI);new Vue({ el: '#app', render: h => h(App)}); 全局配置 在引入 Element 时,可以传入一个全局配置对象。该对象目前支持 size 与 zIndex 字段。size 用于改变组件的...