当前位置: 首页 > news >正文

电商网站开发多少钱网站制作论文文献综述

电商网站开发多少钱,网站制作论文文献综述,网站可以备案先提交类别后来改么,石碣镇网站建设公司我们看到的 cookie 前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。 我自己创建了一个网站#xff0c;网址为http://ppsc.sankuai.com。在这个网页中我设置了几个cookie#xff1a;JS…我们看到的 cookie 前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。 我自己创建了一个网站网址为http://ppsc.sankuai.com。在这个网页中我设置了几个cookieJSSESSIONIDPA_VTIMEskmtutctest。 在 chrome 浏览器中打开这个网站进入开发者模式点击Resources栏 - 选择cookies我们会看到如下图所示的界面 解释一下左边栏Cookies下方会列举当前网页中设置过cookie的域都有哪些。上图中只有一个域即“ppsc.sankuai.com”。而右侧区域显示的就是某个域下具体的 cookie 列表对应上图就是“ppsc.sankuai.com”域下设置的4个cookie。 在这个网页中我往http://ppsc.sankuai.com/getList接口发了一个 Ajax 请求request header如下图所示 从上图中我们会看到request header中自动添加了Cookie字段我并没有手动添加这个字段哦~Cookie字段的值其实就是我设置的那4个 cookie。这个请求最终会发送到http://ppsc.sankuai.com这个服务器上这个服务器就能从接收到的request header中提取那4个cookie。 上面两张图展示了cookie的基本通信流程设置cookie  cookie被自动添加到request header中 服务端接收到cookie。这个流程中有几个问题需要好好研究 什么样的数据适合放在cookie中 cookie是怎么设置的 cookie为什么会自动加到request header中 cookie怎么增删查改 我们要带着这几个问题继续往下阅读。 cookie 是怎么工作的 首先必须明确一点存储cookie是浏览器提供的功能。cookie 其实是存储在浏览器中的纯文本浏览器的安装目录下会专门有一个 cookie 文件夹来存放各个域下设置的cookie。 当网页要发http请求时浏览器会先检查是否有相应的cookie有则自动添加在request header中的cookie字段中。这些是浏览器自动帮我们做的而且每一次http请求浏览器都会自动帮我们做。这个特点很重要因为这关系到“什么样的数据适合存储在cookie中”。 存储在cookie中的数据每次都会被浏览器自动放在http请求中如果这些数据并不是每个请求都需要发给服务端的数据浏览器这设置自动处理无疑增加了网络开销但如果这些数据是每个请求都需要发给服务端的数据比如身份认证信息浏览器这设置自动处理就大大免去了重复添加操作。所以对于那设置“每次请求都要携带的信息最典型的就是身份认证信息”就特别适合放在cookie中其他类型的数据就不适合了。 但在 localStorage 出现之前cookie被滥用当做了存储工具。什么数据都放在cookie中即使这些数据只在页面中使用而不需要随请求传送到服务端。当然cookie标准还是做了一些限制的每个域名下的cookie 的大小最大为4KB每个域名下的cookie数量最多为20个但很多浏览器厂商在具体实现时支持大于20个。 cookie 的格式 document.cookie JS 原生的 API提供了获取cookie的方法document.cookie注意这个方法只能获取非 HttpOnly 类型的cookie。在 console 中执行这段代码可以看到结果如下图 打印出的结果是一个字符串类型因为cookie本身就是存储在浏览器中的字符串。但这个字符串是有格式的由键值对 keyvalue构成键值对之间由一个分号和一个空格隔开。 cookie 的属性选项 每个cookie都有一定的属性如什么时候失效要发送到哪个域名哪个路径等等。这些属性是通过cookie选项来设置的cookie选项包括expires、domain、path、secure、HttpOnly。在设置任一个cookie时都可以设置相关的这些属性当然也可以不设置这时会使用这些属性的默认值。在设置这些属性时属性之间由一个分号和一个空格隔开。代码示例如下 keyname; expiresThu, 25 Feb 2016 04:18:00 GMT; domainppsc.sankuai.com; path/; secure; HttpOnly expires expires选项用来设置“cookie 什么时间内有效”。expires其实是cookie失效日期expires必须是 GMT 格式的时间可以通过 new Date().toGMTString()或者 new Date().toUTCString() 来获得。 如expiresThu, 25 Feb 2016 04:18:00 GMT表示cookie讲在2016年2月25日4:18分之后失效对于失效的cookie浏览器会清空。如果没有设置该选项则默认有效期为session即会话cookie。这种cookie在浏览器关闭后就没有了。 expires 是 http/1.0协议中的选项在新的http/1.1协议中expires已经由 max-age 选项代替两者的作用都是限制cookie 的有效时间。expires的值是一个时间点cookie失效时刻 expires而max-age 的值是一个以秒为单位时间段cookie失效时刻 创建时刻 max-age。 另外max-age 的默认值是 -1(即有效期为 session )若max-age有三种可能值负数、0、正数。负数有效期session0删除cookie正数有效期为创建时刻 max-age domain 和 path domain是域名path是路径两者加起来就构成了 URLdomain和path一起来限制 cookie 能被哪些 URL 访问。 一句话概括某cookie的 domain为“baidu.com”, path为“/ ”若请求的URL(URL 可以是js/html/img/css资源请求但不包括 XHR 请求)的域名是“baidu.com”或其子域如“api.baidu.com”、“dev.api.baidu.com”且 URL 的路径是“/ ”或子路径“/home”、“/home/login”则浏览器会将此 cookie 添加到该请求的 cookie 头部中。 所以domain和path2个选项共同决定了cookie何时被浏览器自动添加到请求头部中发送出去。如果没有设置这两个选项则会使用默认值。domain的默认值为设置该cookie的网页所在的域名path默认值为设置该cookie的网页所在的目录。 特别说明1 发生跨域xhr请求时即使请求URL的域名和路径都满足 cookie 的 domain 和 path默认情况下cookie也不会自动被添加到请求头部中。若想知道原因请阅读本文最后一节 特别说明2 domain是可以设置为页面本身的域名本域或页面本身域名的父域但不能是公共后缀 public suffix。举例说明下如果页面域名为 www.baidu.com, domain可以设置为“www.baidu.com”也可以设置为“baidu.com”但不能设置为“.com”或“com”。 secure secure选项用来设置cookie只在确保安全的请求中才会发送。当请求是HTTPS或者其他安全协议时包含 secure 选项的 cookie 才能被发送至服务器。 默认情况下cookie不会带secure选项(即为空)。所以默认情况下不管是HTTPS协议还是HTTP协议的请求cookie 都会被发送至服务端。但要注意一点secure选项只是限定了在安全情况下才可以传输给服务端但并不代表你不能看到这个 cookie。 下面我们设置一个 secure类型的 cookie document.cookie  namehuang; secure; 之后你就能在控制台中看到这个 cookie 了如下图所示 这里有个坑需要注意下 如果想在客户端即网页中通过 js 去设置secure类型的 cookie必须保证网页是https协议的。在http协议的网页中是无法设置secure类型cookie的。 httpOnly 这个选项用来设置cookie是否能通过 js 去访问。默认情况下cookie不会带httpOnly选项(即为空)所以默认情况下客户端是可以通过js代码去访问包括读取、修改、删除等这个cookie的。当cookie带httpOnly选项时客户端则无法通过js代码去访问包括读取、修改、删除等这个cookie。 在客户端是不能通过js代码去设置一个httpOnly类型的cookie的这种类型的cookie只能通过服务端来设置。 那我们在页面中怎么知道哪些cookie是httpOnly类型的呢看下图 凡是httpOnly类型的cookie其 HTTP 一列都会打上√如上图中的PA_VTIME。你通过document.cookie是不能获取的也不能修改PA_VTIME的。 ——httpOnly与安全 从上面介绍中大家是否会有这样的疑问为什么我们要限制客户端去访问cookie其实这样做是为了保障安全。 试想如果任何 cookie 都能被客户端通过document.cookie获取会发生什么可怕的事情。当我们的网页遭受了 XSS 攻击有一段恶意的script脚本插到了网页中。这段script脚本做的事情是通过document.cookie读取了用户身份验证相关的 cookie并将这些 cookie 发送到了攻击者的服务器。攻击者轻而易举就拿到了用户身份验证信息于是就可以摇摇大摆地冒充此用户访问你的服务器了因为攻击者有合法的用户身份验证信息所以会通过你服务器的验证。 如何设置 cookie 知道了cookie的格式cookie的属性选项接下来我们就可以设置cookie了。首先得明确一点cookie既可以由服务端来设置也可以由客户端来设置。 服务端设置 cookie 不管你是请求一个资源文件如 html/js/css/图片还是发送一个ajax请求服务端都会返回response。而response header中有一项叫set-cookie是服务端专门用来设置cookie的。如下图所示服务端返回的response header中有5个set-cookie字段每个字段对应一个cookie注意不能将多个cookie放在一个set-cookie字段中set-cookie字段的值就是普通的字符串每个cookie还设置了相关属性选项。 注意 一个set-Cookie字段只能设置一个cookie当你要想设置多个 cookie需要添加同样多的set-Cookie字段。 服务端可以设置cookie 的所有选项expires、domain、path、secure、HttpOnly 客户端设置 cookie 在网页即客户端中我们也可以通过js代码来设置cookie。如我当前打开的网址为http://dxw.st.sankuai.com/mp/在控制台中我们执行了下面代码 document.cookie  nameJonh; ; 查看浏览器 cookie 面板如下图所示cookie确实设置成功了而且属性选项 domain、path、expires都用了默认值。 再执行下面代码 document.cookieage12; expiresThu, 26 Feb 2116 11:50:25 GMT; domainsankuai.com; path/; 查看浏览器cookie 面板如下图所示新的cookie设置成功了而且属性选项 domain、path、expires都变成了设定的值。 注意 客户端可以设置cookie 的下列选项expires、domain、path、secure有条件只有在https协议的网页中客户端设置secure类型的 cookie 才能成功但无法设置HttpOnly选项。 用 js 如何设置多个 cookie 当要设置多个cookie时 js 代码很自然地我们会这么写 document.cookie  nameJonh; age12; class111; 但你会发现这样写只是添加了第一个cookie“nameJohn”后面的所有cookie都没有添加成功。所以最简单的设置多个cookie的方法就在重复执行document.cookie keyname如下 document.cookie nameJonh; document.cookie age12; document.cookie class111; 如何修改、删除 修改 cookie 要想修改一个cookie只需要重新赋值就行旧的值会被新的值覆盖。但要注意一点在设置新cookie时path/domain这几个选项一定要旧cookie 保持一样。否则不会修改旧值而是添加了一个新的 cookie。 删除 cookie 删除一个cookie 也挺简单也是重新赋值只要将这个新cookie的expires 选项设置为一个过去的时间点就行了。但同样要注意path/domain/这几个选项一定要旧cookie 保持一样。 cookie 编码 cookie其实是个字符串但这个字符串中逗号、分号、空格被当做了特殊符号。所以当cookie的 key 和 value 中含有这3个特殊字符时需要对其进行额外编码一般会用escape进行编码读取时用unescape进行解码当然也可以用encodeURIComponent/decodeURIComponent或者encodeURI/decodeURI三者的区别可以参考这篇文章。 var key escape(name;value); var value escape(this is a value contain , and ;); document.cookie key value ; expiresThu, 26 Feb 2116 11:50:25 GMT; domainsankuai.com; path/; 跨域请求中 cookie 之前在介绍 XHR 的一篇文章里面提过默认情况下在发生跨域时cookie 作为一种 credential 信息是不会被传送到服务端的。必须要进行额外设置才可以。具体原因和如何设置可以参考我的这篇文章你真的会使用XMLHttpRequest吗 另外关于跨域资源共享 CORS极力推荐大家阅读阮一峰老师的这篇 跨域资源共享 CORS 详解。 其他补充 什么时候 cookie 会被覆盖name/domain/path 这3个字段都相同的时候 关于domain的补充说明参考1/参考2 如果显式设置了 domain则设置成什么浏览器就存成什么但如果没有显式设置则浏览器会自动取 url 的 host 作为 domain 值 新的规范中显式设置 domain 时如果 value 最前面带点则浏览器处理时会将这个点去掉所以最后浏览器存的就是没有点的注意但目前大多数浏览器并未全部这么实现 前面带点‘.’和不带点‘.’有啥区别 带点任何 subdomain 都可以访问包括父 domain 不带点只有完全一样的域名才能访问subdomain 不能但在 IE 下比较特殊它支持 subdomain 访问 转自https://segmentfault.com/a/1190000004556040#articleHeader6
http://www.sadfv.cn/news/201865/

相关文章:

  • 电子科技学校网站建设wordpress积分等级
  • 揭阳城乡建设局网站idc分销系统
  • c2c商城网站建设二次开发电子商务交易平台
  • 天津自动网站建设调试付第三期网站建设费的账务处理
  • 网站开发工程师 北大青鸟小程序定制开发外包风险
  • 网站建设基本流程价格网站设计制作的服务好不好
  • 祥云网站建设公司 概况网站部分乱码
  • 视频解析网站建设提供给他人做视频解析的网站源码
  • 网站开发产品描述网页制作教程视频下载
  • 商城类网站模板中国空间站vr全景
  • php网站广告管理系统烟台市未成年思想道德建设网站
  • 建站有哪些公司西安市住房和城乡建设局门户网站
  • 北京综合网站建设系列泉州cms建站系统
  • 肥西县建设局资询网站wordpress常用数组
  • 免费设计图网站page文件转换wordpress
  • 个人网站每年要多少钱深圳网站建设 网站设计
  • 网站开发 在html标记后出现乱码 查看源文件显示是问好建设英文网站的公司
  • 超低价的郑州网站建设网站开发费用计入什么科目
  • 做网站公司(深圳信科)网站系统开发流程
  • 这个是以前我自己做的一个网站互联网编程
  • 咨询类网站模板网站为什么改版
  • 学生处网站建设工作总结做排名出租网站
  • 电商网站建设价格低国产做网站
  • 酒店加盟什么网站建设oppo手机商城
  • 免费手机网页seo高级优化方法
  • 浙江做网站套餐重庆市建设工程信息网、
  • 网站内文章外链如何做做机械设备类网站用什么颜色好
  • 网站描述标签优化网页游戏魔域
  • 什么网站需要备案机械设计网
  • 使用element做的网站如何找外包的销售团队