丹徒网站建设平台分销商城平台

web/2025/9/29 18:14:45/文章来源:
丹徒网站建设平台,分销商城平台,Wordpress development,电子商务网站前台设计一、Cookie的出现浏览器和服务器之间的通信少不了HTTP协议#xff0c;但是因为HTTP协议是无状态的#xff0c;所以服务器并不知道上一次浏览器做了什么样的操作#xff0c;这样严重阻碍了交互式Web应用程序的实现。针对上述的问题#xff0c;网景公司的程序员创造了Cookie。…一、Cookie的出现浏览器和服务器之间的通信少不了HTTP协议但是因为HTTP协议是无状态的所以服务器并不知道上一次浏览器做了什么样的操作这样严重阻碍了交互式Web应用程序的实现。针对上述的问题网景公司的程序员创造了Cookie。二、Cookie的传输服务器端在实现Cookie标准的过程中需要对任意HTTP请求发送Set-Cookie HTTP头作为响应的一部分Set-Cookie: namevalue; expiresTue, 03-Sep-2019 14:10:21 GMT; path/; domain.xxx.com;浏览器端会存储这样的Cookie并且为之后的每个请求添加Cookie HTTP请求头发送回服务器Cookie: namevalue服务器通过验证Cookie值来判断浏览器发送请求属于哪一个用户。三、浏览器中的Cookie浏览器中的Cookie主要由以下几部分组成名称Cookie唯一的名称必须经过URL编码处理。同名会出现覆盖的情况值必须经过URL编码处理。域domain默认情况下cookie在当前域下有效你也可以设置该值来确保对其子域是否有效。路径path指定Cookie在哪些路径下有效默认是当前路径下。失效时间expires默认情况下浏览器会话结束时会自动删除Cookie也可以设置一个GMT格式的日期指定具体的删除日期如果设置的日期为以前的日期那么Cookie会立即删除。安全标志secure指定之后只允许Cookie发送给https协议。浏览器在发送请求时只会将名称与值添加到请求头的Cookie字段中发送给服务端。浏览器提供了一个非常蹩脚的API来操作Cookiedocument.cookie通过上述方法可以对该Cookie进行写操作每一次只能写入一条Cookie字符串document.cookie a1; secure; path/通过该方法还可以进行Cookie的读操作document.cookie // a1由于上述方法操作Cookie非常的不直观一般都会写一些函数来简化Cookie读取、设置和删除操作。对于Cookie的设置操作中需要以下几点对于名称和值进行URL编码处理也就是采用JavaScript中的encodeURIComponent()方法expires要求传入GMT格式的日期需要处理为更易书写的方式比如设置秒数的方式注意只有的属性名的secure每一段信息需要采用分号加空格。function setCookie (key, value, attributes) {if (typeof document undefined) {return}attributes Object.assign({}, {path: /}, attributes)let { domain, path, expires, secure } attributesif (typeof expires number) {expires new Date(Date.now() expires * 1000)}if (expires instanceof Date) {expires expires.toUTCString()} else {expires }key encodeURIComponent(key)value encodeURIComponent(value)let cookieStr ${key}${value}if (domain) {cookieStr ; domain${domain}}if (path) {cookieStr ; path${path}}if (expires) {cookieStr ; expires${expires}}if (secure) {cookieStr ; secure}return (document.cookie cookieStr) }Cookie的读操作需要注意的是将名称与值进行URL解码处理也就是调用JavaScript中的decodeURIComponent()方法function getCookie (name) {if (typeof document undefined) {return}let cookies []let jar {}document.cookie (cookies document.cookie.split(; ))for (let i 0, max cookies.length; i max; i) {let [key, value] cookies[i].split()key decodeURIComponent(key)value decodeURIComponent(value)jar[key] valueif (key name) {break}}return name ? jar[name] : jar }最后一个清除的方法就更加简单了只要将失效日期expires设置为过去的日期即可function removeCookie (key) { setCookie(key, , { expires: -1 }) }介绍Cookie基本操作的封装之后还需要了解浏览器为了限制Cookie不会被恶意使用规定了Cookie所占磁盘空间的大小以及每个域名下Cookie的个数。为了绕开单域名下Cookie个数的限制开发人员还创造了一种称为subcookie的概念这里就不在赘述了可以参考【JavaScript高级程序设计第23章 p633】。四、服务端的Cookie相比较浏览器端服务端执行Cookie的写操作时是将拼接好的Cookie字符串放入响应头的Set-Cookie字段中执行Cookie的读操作时则是解析HTTP请求头字段Cookie中的键值对。 与浏览器最大的不同在于服务端对于Cookie的安全性操碎了心signed当设置signedtrue时服务端会对该条Cookie字符串生成两个Set-Cookie响应头字段 Set-Cookie: lastTime2019-03-05T14:31:05.543Z; path/; httponlySet-Cookie: lastTime.sigURXREOYTtMnGm0b7qCYFJ2Db400; path/; httponly这里通过再发送一条以.sig为后缀的名称以及对值进行加密的Cookie来验证该条Cookie是否在传输的过程中被篡改。httpOnly服务端Set-Cookie字段中新增httpOnly属性当服务端在返回的Cookie信息中含有httpOnly字段时开发者是不能通过JavaScript来操纵该条Cookie字符串的。 这样做的好处主要在于面对XSSCross-site scripting攻击时黑客无法拿到设置httpOnly字段的Cookie信息。 此时你会发现localStorage相比较Cookie在XSS攻击的防御上就略逊一筹了。sameSite 在介绍这个新属性之前首先你需要明白当用户从http://a.com发起http://b.com的请求也会携带上Cookie而从http://a.com携带过来的Cookie称为第三方Cookie。虽然第三方Cookie有一些好处但是给CSRFCross-site request forgrey攻击的机会。为了从根源上解决CSRF攻击sameSite属性便闪亮登场了它的取值有以下几种strict浏览器在任何跨域请求中都不会携带Cookie这样可以有效的防御CSRF攻击但是对于有多个子域名的网站采用主域名存储用户登录信息的场景每个子域名都需要用户重新登录造成用户体验非常的差。lax相比较strict它允许从三方网站跳转过来的时候使用Cookie。为了方便大家理解sameSite的实际效果可以看这个例子 // a.com 服务端会在访问页面时返回如下Cookiecookies.set(foo, aaaaa)cookies.set(bar, bbbbb)cookies.set(name, cccccc)// b.com 服务端会在访问页面时返回如下Cookiecookies.set(foo, a, { sameSite: strict })cookies.set(bar, b, { sameSite: lax })cookies.set(baz, c)如何现在用户在a.com中点击链接跳转到b.com它的请求头是这样的Request Headers Cookie: barb; bazc 五、网站性能优化Cookie在服务端和浏览器的通信中主要依靠HTTP的响应头和请求头传输的所以Cookie会占据一定的带宽。前面提到浏览器会为每一次HTPP请求自动携带上Cookie信息但是对于同站内的静态资源服务器并不需要处理其携带的Cookie这无形中便浪费了带宽。在最佳实践中一般都会将静态资源部署到独立的域名上从而可以避免无效Cookie的影响。作者descire链接http://www.imooc.com/article/286535

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个人网站可以放广告吗上传图片的网站要怎么做

忍着疼痛奔跑,带着泪光微笑转瞬,毕业已近四年,回顾,还在路上。头几年,有着一颗爱玩的心,秉着“人这一辈子不能对不起自己”的谬论,一直随着自己的性子,想做什么就做什么,…

学校网站设计流程公司门户网站建设公司

Spring 就是⼀个包含了众多工具方法的 IoC 容器。既然是容器那么它就具备两个最基本的功能: 将对象存储到容器(Spring)中从容器中将对象取出来 接下来使用 Maven 方式来创建一个 Spring 项目,创建 Spring 项目和 Servlet 类似&a…

怎么看一个网站是html5百度seo关键词排名s

Day3 链表 链表也是一种很重要的数据结构,链表的优势是空间不必连续,分配比较自由,缺点是不支持随机访问,想要获取链表中间的某个元素,必须要从头遍历。 LeetCode 203.移除链表元素【虚拟头结点】 移除链表中的某个…

建设网站设计的公司网站返回500错误

这里的笔记是关于蓝桥杯关键知识点的记录,有别于基础语法,很多内容只要求会用就行,无需深入掌握。 文章目录 前言一、编程基础1.1 C基础格式和版本选择1.2 输入输出cin和cout: 1.3 string以下是字符串的一些简介:字符串…

企业案例网站生成网页跳转微信小程序

Mycat 1.Mycat 分库分表中间件,将存放在一个数据库的数据存放在不同的多个数据库中。来分散负载。 scheme 逻辑库,对应mysql的数据库,一个逻辑库定义了包含的所有table.是数据库集群对外的统一访问接口。table 逻辑表,和物理数…

提供网站建设找哪家公司好wordpress邮件配置

一. 主要内容 1. 数据层和业务层父类。(泛型约束) 2. 模板方法模式(业务层子类方法通过业务层父类调用数据层子类的方法)。 二. 源代码 http://files.cnblogs.com/HuoAA/EF%E4%B8%89%E5%B1%82.rar转载于:https://www.cnblogs.com/…

seo整站优化价格咋做黄页网站

IPTV即交互式网络电视,是一种利用宽带网,集互联网、多媒体、通讯等技术于一体,向用户提供包括数字电视在内的多种交互式服务的崭新技术。它能够很好地适应当今网络飞速发展的趋势,充分有效地利用网络资源。 IPTV既不同于传统的模…

连云港网站建设电话成都网站推广营销

mysql连接不断线MySql配置为删除任何闲置超过8小时的连接。 这意味着什么? 在8个小时的间隔后返回到已部署的应用程序之后(如果未更改默认SQL参数),将会遇到异常情况。 如何解决这个问题? 增加wait_time参数-不是一个…

网站域名备案变更汇点远程app下载安装

202350读书笔记|《再别康桥:徐志摩诗选》——微风起,清芬酝藉,不减荼 《再别康桥:徐志摩诗选》我觉得有时候诗人是很狂热的,上头的感觉。 有几首很喜欢,节选如下: 偶然 我是天空里的一片云&…

广州建站公司模板做进口货的电商网站

EXCEL是一个非常使用的软件,虽然我们平时仅使用他做一些报表,仅此而已; 我在工作中,由于很懒,不愿意做考试重复的工作,就想着使用vba的宏来完成重复的工作,这样就能省出一部分的时间来了。 本人不喜欢在博客里面写以下教程类的东西,我的理念是将工作中的痛点的解决办法…

网站开发php和pythonwordpress侧边栏 代码

创建一个Java项目在IntelliJ IDEA中是一个直观且功能强大的过程,适合从初学者到经验丰富的开发者。IntelliJ IDEA由JetBrains开发,被誉为Java开发领域最受欢迎的IDE(集成开发环境)之一,它提供了代码自动补全、版本控制…

深圳网络推广网络如何做网站seo优化

1、下载安装 分为安卓端和PC端,两个设备都需要安装对应的软件。 SpaceDesk官网 https://link.zhihu.com/?targethttp%3A//spacedesk.net/ 需要魔法上网。安装过程比较简单,无脑下一步即可。 我已经把安装包准备好了,如果不想自己找&#…

lol做直播网站广东网络seo推广公司

杨宏宇:腾讯多模态内容理解技术及应用 分享嘉宾:杨宇鸿 腾讯 内容理解高级工程师 编辑整理:吴祺尧 出品平台:DataFunTalk 导读: 搜索内容的理解贯穿了整个搜索系统。我们需要从多个粒度理解搜索内容,包括语…

网站代运营合同模板视频怎么上传到wordpress

一、概念 ZooKeeper是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作,最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。 分布式应用程序可以基于ZooKeeper实现…

网站设计)天宁网站建设

联想笔记本用U盘安装 winXP系统教程。联想笔记本是指联想集团生产的便携手提电脑。 联想集团成立于1984年,由中科院计算所投资20万元人民币、11名科技人员创办,到今天已经发展成为一家在信息产业内多元化发展的大型企业集团。今天小编将给大家介绍使用U盘…

多国语言网站网站开发折旧

GPT4ALL是一款可以运行在个人电脑上的大模型系统,不需要GPU即可运行,目前支持mac,linux和windows系统。 什么是GPT4ALL? 不论学习任何东西,首先要明白它是个什么东西。 Open-source large language models that run …

网站模板flash软文广告怎么写

IT之家 8 月 30 日消息 华为 9 月 10 日将举行华为开发者大会 2020,华为官网表示,“我们将与您分享 HMS Core 5.0 最新进展, 揭开 HarmonyOS 和 EMUI 11 的神秘面纱。 振奋人心的新技术,深入的交流学习机会, 更灵动的想…

专业广州网站建设软件开发流程报告

【0】README 0.1)本文总结于 数据结构与算法分析, 但源代码均为原创,旨在实现 不相交集ADT的两个操作:合并集合union查找集合find; 0.2) 不相交集ADT 的 Introduction , 参见 http://blog.csd…

企业网站备案注销免费的写作网站

目录 List 用法 1. 增 2. 删 3. 查 内部编码 应用场景 前言 Redis 中的 List 和 Set 数据结构各有特点,适用于不同的应用场景。List 提供了有序的列表结构,适合用于消息队列和任务列表等场景;Set 提供了无序且不重复的集合结构&#…