厦门 网站优化深圳网站设..

张小明 2026/1/14 11:31:28
厦门 网站优化,深圳网站设..,网站建设编写代码问题,网站建设与管理个人职业生涯规划书#x1f9d1; 博主简介#xff1a;CSDN博客专家#xff0c;历代文学网#xff08;PC端可以访问#xff1a;https://literature.sinhy.com/#/literature?__c1000#xff0c;移动端可微信小程序搜索“历代文学”#xff09;总架构师#xff0c;15年工作经验#xff0c;… 博主简介CSDN博客专家历代文学网PC端可以访问https://literature.sinhy.com/#/literature?__c1000移动端可微信小程序搜索“历代文学”总架构师15年工作经验精通Java编程高并发设计Springboot和微服务熟悉LinuxESXI虚拟化以及云原生Docker和K8s热衷于探索科技的边界并将理论知识转化为实际应用。保持对新技术的好奇心乐于分享所学希望通过我的实践经历和见解启发他人的创新思维。在这里我希望能与志同道合的朋友交流探讨共同进步一起在技术的世界里不断学习成长。技术合作请加本人wx注明来自csdnforeast_sea全面了解 Cookies、Session 和 TokenCooke、Session 和 TokenCookie 和 SessionSession 是什么Session 如何判断是否是同一会话Session 的缺点Cookies 是什么创建 CookieSet-Cookie 和 Cookie 标头会话 Cookies永久性 CookiesCookie 的 Secure 和 HttpOnly 标记Cookie 的作用域JSON Web Token 和 Session Cookies 的对比JWT 和 Session Cookies 的相同之处什么是 Session Cookies什么是 Json Web TokensJWT 的格式拼凑在一起JWT 和 Session Cookies 的不同密码签名JSON 是无状态的可扩展性JWT 支持跨域认证JWT 和 Session Cookies 的选型后记Cookie 和 SessionHTTP 协议是一种无状态协议即每次服务端接收到客户端的请求时都是一个全新的请求服务器并不知道客户端的历史请求记录Session和Cookie的主要目的就是为了弥补 HTTP 的无状态特性。Session 是什么客户端请求服务端服务端会为这次请求开辟一块内存空间这个对象便是Session对象存储结构为ConcurrentHashMap。Session弥补了HTTP无状态特性服务器可以利用Session存储客户端在同一个会话期间的一些操作记录。Session 如何判断是否是同一会话服务器第一次接收到请求时开辟了一块 Session 空间创建了Session对象同时生成一个 sessionId 并通过响应头的 **Set-CookieJSESSIONIDXXXXXXX **命令向客户端发送要求设置 Cookie 的响应 客户端收到响应后在本机客户端设置了一个 **JSESSIONIDXXXXXXX **的 Cookie 信息该 Cookie 的过期时间为浏览器会话结束接下来客户端每次向同一个网站发送请求时请求头都会带上该 Cookie信息包含 sessionId 然后服务器通过读取请求头中的 Cookie 信息获取名称为 JSESSIONID 的值得到此次请求的 sessionId。Session 的缺点Session 机制有个缺点比如 A 服务器存储了 Session就是做了负载均衡后假如一段时间内 A 的访问量激增会转发到 B 进行访问但是 B 服务器并没有存储 A 的 Session会导致 Session 的失效。Cookies 是什么HTTP 协议中的 Cookie 包括Web Cookie和浏览器 Cookie它是服务器发送到 Web 浏览器的一小块数据。服务器发送到浏览器的 Cookie浏览器会进行存储并与下一个请求一起发送到服务器。通常它用于判断两个请求是否来自于同一个浏览器例如用户保持登录状态。HTTP Cookie 机制是 HTTP 协议无状态的一种补充和改良Cookie 主要用于下面三个目的会话管理登陆、购物车、游戏得分或者服务器应该记住的其他内容个性化用户偏好、主题或者其他设置追踪记录和分析用户行为Cookie 曾经用于一般的客户端存储。虽然这是合法的因为它们是在客户端上存储数据的唯一方法但如今建议使用现代存储 API。Cookie 随每个请求一起发送因此它们可能会降低性能尤其是对于移动数据连接而言。创建 Cookie当接收到客户端发出的 HTTP 请求时服务器可以发送带有响应的Set-Cookie标头Cookie 通常由浏览器存储然后将 Cookie 与 HTTP 标头一同向服务器发出请求。Set-Cookie 和 Cookie 标头Set-CookieHTTP 响应标头将 cookie 从服务器发送到用户代理。下面是一个发送 Cookie 的例子此标头告诉客户端存储 Cookie现在随着对服务器的每个新请求浏览器将使用 Cookie 头将所有以前存储的 Cookie 发送回服务器。有两种类型的 Cookies一种是 Session Cookies一种是 Persistent Cookies如果 Cookie 不包含到期日期则将其视为会话 Cookie。会话 Cookie 存储在内存中永远不会写入磁盘当浏览器关闭时此后 Cookie 将永久丢失。如果 Cookie 包含有效期则将其视为持久性 Cookie。在到期指定的日期Cookie 将从磁盘中删除。还有一种是Cookie的 Secure 和 HttpOnly 标记下面依次来介绍一下会话 Cookies上面的示例创建的是会话 Cookie 会话 Cookie 有个特征客户端关闭时 Cookie 会删除因为它没有指定Expires或Max-Age指令。但是Web 浏览器可能会使用会话还原这会使大多数会话 Cookie 保持永久状态就像从未关闭过浏览器一样。永久性 Cookies永久性 Cookie 不会在客户端关闭时过期而是在特定日期Expires或特定时间长度Max-Age外过期。例如Set-Cookie: ida3fWa; ExpiresWed, 21 Oct 2015 07:28:00 GMT;Cookie 的 Secure 和 HttpOnly 标记安全的 Cookie 需要经过 HTTPS 协议通过加密的方式发送到服务器。即使是安全的也不应该将敏感信息存储在cookie 中因为它们本质上是不安全的并且此标志不能提供真正的保护。HttpOnly 的作用会话 Cookie 中缺少 HttpOnly 属性会导致攻击者可以通过程序(JS脚本、Applet等)获取到用户的 Cookie 信息造成用户 Cookie 信息泄露增加攻击者的跨站脚本攻击威胁。HttpOnly 是微软对 Cookie 做的扩展该值指定 Cookie 是否可通过客户端脚本访问。如果在 Cookie 中没有设置 HttpOnly 属性为 true可能导致 Cookie 被窃取。窃取的 Cookie 可以包含标识站点用户的敏感信息如 ASP.NET 会话 ID 或 Forms 身份验证票证攻击者可以重播窃取的 Cookie以便伪装成用户或获取敏感信息进行跨站脚本攻击等。Cookie 的作用域Domain和Path标识定义了 Cookie 的作用域即 Cookie 应该发送给哪些 URL。Domain标识指定了哪些主机可以接受 Cookie。如果不指定默认为当前主机(不包含子域名。如果指定了Domain则一般包含子域名。例如如果设置Domainmozilla.org则 Cookie 也包含在子域名中如developer.mozilla.org。例如设置Path/docs则以下地址都会匹配/docs/docs/Web//docs/Web/HTTPJSON Web Token 和 Session Cookies 的对比JSON Web Token 简称 JWT它和Session都可以为网站提供用户的身份认证但是它们不是一回事。下面是 JWT 和 Session 不同之处的研究JWT 和 Session Cookies 的相同之处在探讨 JWT 和 Session Cookies 之前有必要需要先去理解一下它们的相同之处。它们既可以对用户进行身份验证也可以用来在用户单击进入不同页面时以及登陆网站或应用程序后进行身份验证。如果没有这两者那你可能需要在每个页面切换时都需要进行登录了。因为 HTTP 是一个无状态的协议。这也就意味着当你访问某个网页然后单击同一站点上的另一个页面时服务器的内存中将不会记住你之前的操作。因此如果你登录并访问了你有权访问的另一个页面由于 HTTP 不会记录你刚刚登录的信息因此你将再次登录。JWT 和 Session Cookies 就是用来处理在不同页面之间切换保存用户登录信息的机制。也就是说这两种技术都是用来保存你的登录状态能够让你在浏览任意受密码保护的网站。通过在每次产生新的请求时对用户数据进行身份验证来解决此问题。所以 JWT 和 Session Cookies 的相同之处是什么那就是它们能够支持你在发送不同请求之间记录并验证你的登录状态的一种机制。什么是 Session CookiesSession Cookies 也称为会话 Cookies在 Session Cookies 中用户的登录状态会保存在服务器的内存中。当用户登录时Session 就被服务端安全的创建。在每次请求时服务器都会从会话 Cookie 中读取 SessionId如果服务端的数据和读取的 SessionId 相同那么服务器就会发送响应给浏览器允许用户登录。什么是 Json Web TokensJson Web Token 的简称就是 JWT通常可以称为Json 令牌。它是RFC 7519中定义的用于安全的将信息作为Json 对象进行传输的一种形式。JWT 中存储的信息是经过数字签名的因此可以被信任和理解。可以使用 HMAC 算法或使用 RSA/ECDSA 的公用/专用密钥对 JWT 进行签名。使用 JWT 主要用来下面两点认证(Authorization)这是使用 JWT 最常见的一种情况一旦用户登录后面每个请求都会包含 JWT从而允许用户访问该令牌所允许的路由、服务和资源。单点登录是当今广泛使用 JWT 的一项功能因为它的开销很小。信息交换(Information Exchange)JWT 是能够安全传输信息的一种方式。通过使用公钥/私钥对 JWT 进行签名认证。此外由于签名是使用head和payload计算的因此你还可以验证内容是否遭到篡改。JWT 的格式下面我们会探讨一下 JWT 的组成和格式是什么JWT 主要由三部分组成每个部分用.进行分割各个部分分别是HeaderPayloadSignature因此一个非常简单的 JWT 组成会是下面这样然后我们分别对不同的部分进行探讨。HeaderHeader 是 JWT 的标头它通常由两部分组成令牌的类型(即 JWT)和使用的签名算法例如 HMAC SHA256 或 RSA。例如{alg:HS256,typ:JWT}指定类型和签名算法后Json 块被Base64Url编码形成 JWT 的第一部分。PayloadToken 的第二部分是PayloadPayload 中包含一个声明。声明是有关实体通常是用户和其他数据的声明。共有三种类型的声明registered, public 和 private声明。registered 声明 包含一组建议使用的预定义声明主要包括ISS签发人iss (issuer)签发人exp (expiration time)过期时间sub (subject)主题aud (audience)受众nbf (Not Before)生效时间iat (Issued At)签发时间jti (JWT ID)编号public 声明公共的声明可以添加任何的信息一般添加用户的相关信息或其他业务需要的必要信息但不建议添加敏感信息因为该部分在客户端可解密。private 声明自定义声明旨在在同意使用它们的各方之间共享信息既不是注册声明也不是公共声明。例如{sub:1234567890,name:John Doe,admin:true}然后 payload Json 块会被Base64Url编码形成 JWT 的第二部分。signatureJWT 的第三部分是一个签证信息这个签证信息由三部分组成header (base64后的)payload (base64后的)secret比如我们需要 HMAC SHA256 算法进行签名HMACSHA256(base64UrlEncode(header).base64UrlEncode(payload),secret)签名用于验证消息在此过程中没有更改并且对于使用私钥进行签名的令牌它还可以验证 JWT 的发送者的真实身份拼凑在一起现在我们把上面的三个由点分隔的 Base64-URL 字符串部分组成在一起这个字符串可以在 HTML 和 HTTP 环境中轻松传递这些字符串。下面是一个完整的 JWT 示例它对 header 和 payload 进行编码然后使用 signature 进行签名eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ如果想自己测试编写的话可以访问 JWT 官网 https://jwt.io/#debugger-ioJWT 和 Session Cookies 的不同JWT 和 Session Cookies 都提供安全的用户身份验证但是它们有以下几点不同密码签名JWT 具有加密签名而 Session Cookies 则没有。JSON 是无状态的JWT 是无状态的因为声明被存储在客户端而不是服务端内存中。身份验证可以在本地进行而不是在请求必须通过服务器数据库或类似位置中进行。 这意味着可以对用户进行多次身份验证而无需与站点或应用程序的数据库进行通信也无需在此过程中消耗大量资源。可扩展性Session Cookies 是存储在服务器内存中这就意味着如果网站或者应用很大的情况下会耗费大量的资源。由于 JWT 是无状态的在许多情况下它们可以节省服务器资源。因此 JWT 要比 Session Cookies 具有更强的可扩展性。JWT 支持跨域认证Session Cookies 只能用在单个节点的域或者它的子域中有效。如果它们尝试通过第三个节点访问就会被禁止。如果你希望自己的网站和其他站点建立安全连接时这是一个问题。使用 JWT 可以解决这个问题使用 JWT 能够通过多个节点进行用户认证也就是我们常说的跨域认证。JWT 和 Session Cookies 的选型我们上面探讨了 JWT 和 Cookies 的不同点相信你也会对选型有了更深的认识大致来说对于只需要登录用户并访问存储在站点数据库中的一些信息的中小型网站来说Session Cookies 通常就能满足。如果你有企业级站点应用程序或附近的站点并且需要处理大量的请求尤其是第三方或很多第三方包括位于不同域的API则 JWT 显然更适合。后记前两天面试的时候问到了这个题所以写篇文章总结一下还问到了一个面试题禁用 Cookies如何使用 Session网上百度了一下发现这是 PHP 的面试题…但还是选择了解了一下如何禁用 Cookies 后使用 Session如果禁用了 Cookies服务器仍会将 sessionId 以 cookie 的方式发送给浏览器但是浏览器不再保存这个cookie (即sessionId) 了。如果想要继续使用 session需要采用URL 重写的方式来实现可以参考https://www.cnblogs.com/Renyi-Fan/p/11012086.html如果你在阅读文章的过程中发现错误和问题请及时与我联系如果文章对你有帮助希望小伙伴们三连走起
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站系统改教程云捷配快速开发平台

LangFlow正则表达式过滤器使用场景深度解析 在构建基于大语言模型(LLM)的应用时,一个常见的挑战是:如何让“自由发挥”的AI输出符合我们对结构、安全和格式的严格要求?尽管现代LLM具备强大的自然语言生成能力&#xf…

张小明 2026/1/1 3:29:27 网站建设

自己的网站怎么做关键词做网站的颜色

GPT-SoVITS对算力的需求有多高?实测数据来了 在内容创作越来越依赖个性化表达的今天,你有没有想过:只需一分钟录音,就能让AI用你的声音读出任何文字?这不再是科幻电影的情节——GPT-SoVITS 正在将这一能力带入现实。 这…

张小明 2026/1/1 3:29:24 网站建设

云南网站优化排名传奇网站如何建设

Kotaemon如何支持结构化数据与非结构化数据混合检索? 在构建现代智能问答系统时,一个普遍而棘手的问题是:企业的知识散落在各处——订单记录躺在数据库表里,产品说明藏在PDF文档中,客服经验沉淀于聊天日志。如果系统只…

张小明 2026/1/10 13:56:52 网站建设

模板网站修改教程视频网站做优化一般几个字

在企业成本结构中,采购支出往往占据核心比重,其管控精度直接决定企业利润空间与市场竞争力。对于财务人员而言,传统采购模式下的预算失控、价格模糊、流程冗余、数据割裂等痛点,一直是成本管控的“老大难”问题。而采购管理系统的…

张小明 2026/1/6 21:18:25 网站建设

开发网站网络公司排行wordpress 自动安装 插件怎么用

终极指南:在macOS上完美配置Xbox游戏手柄的完整教程 【免费下载链接】360Controller 项目地址: https://gitcode.com/gh_mirrors/36/360Controller 还在为Mac电脑无法识别Xbox游戏手柄而烦恼吗?作为游戏爱好者,你一定希望在macOS系统…

张小明 2026/1/1 5:27:25 网站建设

成都网站设计成功柚v米科技专注于seo顾问

在 Hive SQL 中,COALESCE()、NVL()和IFNULL()都是用于处理NULL 值的函数,但在参数数量、语法兼容、功能范围等方面存在显著区别。 一、函数基本定义与用法 1. NVL() 函数 Hive 中的NVL()是双参数函数,用于将 NULL 值替换为指定的非 NULL 值&a…

张小明 2026/1/11 9:12:31 网站建设