男生做网站运营的前景湖南互联网公司
2025/12/22 16:28:02 网站建设 项目流程
男生做网站运营的前景,湖南互联网公司,企业qq多少钱一年,微网站 举例目录一、Cookie讲解1、概念2、Cookie 的主要属性3、使用流程4、cookie 主要特点二、Session讲解1、Session概念2、流程图3、Session和Cookie的区别三、token讲解1、概念2、Token的组成3、Token认证流程四、三者对比我们都知道 HTTP 协议是无状态的#xff0c;所谓的无状态就是…目录一、Cookie讲解1、概念2、Cookie 的主要属性3、使用流程4、cookie 主要特点二、Session讲解1、Session概念2、流程图3、Session和Cookie的区别三、token讲解1、概念2、Token的组成3、Token认证流程四、三者对比我们都知道HTTP 协议是无状态的所谓的无状态就是客户端每次想要与服务端通信都必须重新与服务端链接意味着请求一次客户端和服务端就连接一次下一次请求与上一次请求是没有关系的。这种无状态的方式就会存在一个问题如何判断两次请求的是同一个人就好比用户在页面 A 发起请求获取个人信息然后在另一个页面同样发起请求获取个人信息我们如何确定这俩个请求是同一个人发的呢为了解决这种问题我们就迫切需要一种方式知道发起请求的客户端是谁此时cookie、token、session 就出现了它们就可以解决客户端标识的问题在扩大一点就是解决权限问题。它们就好比让每个客户端或者说登录用户有了自己的身份证我们可以通过这个身份证确定发请求的是谁一、Cookie讲解1、概念Cookie是一种在客户端存储数据的技术这里指的是Web端它是由服务器发送给客户端的小型文本文件存储在客户端的浏览器中,大小限制大致在 4KB 左右。在客户端发送请求时浏览器会自动将相应的 Cookie 信息发送给服务器服务器通过读取 Cookie 信息就可以判断该请求来自哪个客户端。Cookie 可以用于存储用户的登录状态、购物车信息等。在以前很多开发人员通常用 cookie 来存储各种数据后来随着更多浏览器存储方案的出现cookie 存储数据这种方式逐渐被取代主要原因有如下:1、cookie有存储大小限制4KB 左右。2、浏览器每次请求会携带 cookie 在请求头中。3、字符编码为 Unicode不支持直接存储中文。4、数据可以被轻易查看。2、Cookie 的主要属性名称Name 和 值Value核心内容以键值对形式存储信息。名称和值在创建时设置并且会被编码通常为 URL 编码。有效期Expires和Max-AgeExpires指定一个绝对的过期日期/时间GMT 格式。超过此时间Cookie失效。例如ExpiresWed, 21 Oct 2026 07:28:00 GMT如果不设置或设置为过去的日期Cookie将成为会话 Cookie浏览器关闭后即删除。Max-Age指定一个以秒为单位的相对过期时间。优先级高于Expires。例如Max-Age3600 1小时后过期值为 0 或负数会立即删除该 Cookie。作用域Domain和PathDomain指定哪些主机可以接收此Cookie。例如设置为.example.com则www.example.com、api.example.com等子域名都能访问。如果不设置默认为当前文档的主机不包含子域名且现代浏览器会将其限制为当前主机。不能设置为当前域名所属域之外的域这是安全限制。Path指定 URL 路径前缀只有路径匹配时才会发送 Cookie。例如Path/docs则/docs、/docs/Web/下的请求都会携带此Cookie而/admin则不会。默认为当前请求路径的父目录但通常设为 / 表示整个站点。安全性Secure,HttpOnly,SameSiteSecure标记为Secure的Cookie只能通过HTTPS协议加密传输防止明文传输被窃听。HttpOnly标记为HttpOnly的Cookie无法通过JavaScript的document.cookie API访问。关键安全属性能有效防止跨站脚本攻击XSS窃取 Cookie。SameSite控制 Cookie 在跨站请求时是否发送是防御跨站请求伪造CSRF攻击的重要机制。Strict最严格。完全禁止在跨站请求中发送Cookie。例如从其他网站链接过来不会发送此 Cookie。Lax现代浏览器默认值。允许在安全的顶级导航如点击链接或 GET 请求中发送 Cookie但禁止在跨站的 POST 请求或嵌入资源如图片、iframe中发送。平衡了安全与用户体验。None允许跨站发送Cookie。必须同时设置Secure属性即仅 HTTPS 下可用。常用于需要跨站身份验证的场景如第三方登录。3、使用流程那么我们是如何通过 cookie 来实现用户确定或者权限的确定呢看下图1.客户端发送请求到服务端比如登录请求。2.服务端收到请求后生成一个session会话。3.服务端响应客户端并在响应头中设置Set-Cookie。Set-Cookie里面包含了sessionId它的格式如下Set-Cookie: value[; expiresdate][; domaindomain][; pathpath][; secure]。其中sessionId就是用来标识客户端的类似于去饭店里面服务员给你一个号牌后续上菜通过这个号牌来判断上菜到哪里。4.客户端收到该请求后如果服务器给了Set-Cookie那么下次浏览器就会在请求头中自动携带 cookie。5.客户端发送其它请求自动携带了cookiecookie中携带有用户信息等。6.服务端接收到请求验证cookie信息比如通过sessionId来判断是否存在会话存在则正常响应。第一个请求通常是不带 Cookie 的。4、cookie 主要特点1.cookie 存储在客户端2.cookie 不可跨域但是在如果设置了 domain那么它们是可以在一级域名和二级域名之间共享的。二、Session讲解1、Session概念Session由服务端创建当一个请求发送到服务端时服务器会检索该请求里面有没有包含SessionId标识如果包含了SessionId则代表服务端已经和客户端创建过Session然后就通过这个SessionId去查找真正的Session如果没找到则为客户端创建一个新的 session并生成一个新的SessionId与Session对应然后在响应的时候将SessionId给客户端通常是存储在Cookie中。如果在请求中找到了真正的Session验证通过正常处理该请求。每一个客户端与服务端连接服务端都会为该客户端创建一个Session并将Session的唯一标识SessionId通过设置Set-Cookie头的方式响应给客户端客户端将SessionId存到Cookie中。2、流程图通常情况下Cookie和Session都是结合着来用。如下图具体流程介绍看上面Cookie流程即可。3、Session和Cookie的区别Cookie和Session它们两者之间主要是通过SessionId关联起来的所以总结出SessionId是Cookie和Session之间的桥梁。Session是基于Cookie实现的它们两个主要有以下特点1.Session比Cookie更加安全因为它是存在服务端的Cookie 是存在客户端的。2.Cookie只支持存储字符串数据Session可以存储任意数据。3.Cookie的有效期可以设置较长时间Session有效期都比较短。4.Session存储空间很大Cookie有限制。系统想要实现鉴权可以单独使用Cookie也可以单独使用Session但是建议结合两者使用三、token讲解1、概念Token是一种在客户端和服务端之间传递身份信息的方式。当用户登录成功后服务端会生成一个Token将其发送给客户端。客户端在后续的请求中需要将Token携带在请求头或请求参数中。服务端通过验证Token的合法性就可以确定该请求来自哪个用户并且可以根据用户的权限进行相应的操作。Token可以有效地避免了Cookie的一些安全问题比如 CSRF 攻击。2、Token的组成Token是一个由一串字符组成的令牌用于在计算机系统中进行身份验证和授权。它通常由三个部分组成标头、有效载荷、签名。1.标头Header包含了算法和类型用于指定如何对有效载荷进行编码和签名。常用的算法有HMAC、RSA、SHA等。2.有效载荷Payload包含了一些信息如用户ID、角色、权限等用于验证身份和授权。有效载荷可以是加密的也可以是明文的。3.签名Signature是对标头和有效载荷进行签名后得到的值用于验证token的完整性和真实性。签名通常使用私钥进行签名并使用公钥进行验证。一个完整的token包含了标头、有效载荷和签名三个部分它们一起构成了一个安全的令牌用于进行身份验证和授权。3、Token认证流程1.客户端发起登录请求比如用户输入用户名和密码后登录。2.服务端校验用户名和密码后将用户 id 和一些其它信息进行加密生成 token。3.服务端将 token 响应给客户端。4.客户端收到响应后将 token 存储下来。5.下一次发送请求后需要将 token 携带上比如放在请求头中或者其它地方。6.服务端 token 后校验校验通过则正常返回数据。四、三者对比Token的实现逻辑SessionCookie的实现方案

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询