cookie与跨域的方法

                                                                     cookie与跨域的方法

1.跨域方法 

 在浏览器中因为受到同源策略的影响,我们不能跨服务器进行数据的访问。因此接下来要说到的就是几种关于浏览器跨域的几种方式。

1.flash现目前不常用,因此不做讨论
2.服务器代理中转
3.jsonp
4.document.domain(针对基础域名相同的情况)
bj.58.com   document.domain = '58.com'
 tj.58.com   document.domain = '58.com'

各种跨域的实现原理与方法
服务器代理中转:
首先明白的一点就是同源策略是浏览器与服务器中间存在的,而服务器与服务器之间不存在同源策略问题。因此如果
想要实现从浏览器跨域到其他服务器,可以采用的方式是先将浏览器中的请求发送给与自己端口、协议、域名相同的
服务器当中,再通过这个服务器与其他服务器进行数据之间的请求,从而就能实现跨域的过程

document.domain(针对基础域名相同的情况)
采用这种方式去处理跨域问题时,必须有一个要求就是基础域名必须是相同的情况下,才能够用这种方式

JSONP原理
1.在web页面上用<script>引入js文件时则不受是否跨域的影响。不仅如此,我们还发现,凡是拥有src这个属性的标签
都拥有跨域的能力,比如 script  img  iframe

2.于是就可以把数据放在服务器上,并且数据为json形式(因为js可以轻松的处理json数据)

3.因为无法监控script的src属性是否把数据获取完成,所以我们需要做一个处理

4.实现定义好处理跨域获取数据的函数,如function doJSON(data){}

5.用src获取数据的时候提那一个参数cb = 'doJSON'(服务端会根据参数cn的值返回 对应的内容) 此内容为以cb对应
的值doJSON为函数真实要传递的数据为函数的参数的一串字符

在这里需要注意一点的就是,在使用src引入文件的时候,src其实不管文件的格式是什么类型,只要文件中含有需要的数据
就可以进行引入。

注意jsonp的请求方式都是get请求

2.cookie

    Cookie是由服务器端生成,发送给USer-Agent(一般是浏览器),浏览器会将Cookie以key/value保存到某个
目录下的文本文件内,下次请求同一个网站时就会发送该Cookie给服务器

记录数据的几种形式
1.标记用户身份http头部请求
  以form:email的形式,这种方式的缺点是有的恶意网站会将用户的邮件保存下来,用于发送垃圾文件
  以user-agent的形式,只能识别浏览器,不能具体识别用户
  referer,用于记录上一次浏览过的网站,用于链接的跳转
2.通过ip地址对其进行识别
  1.ip地址描述的是机器不是用户,2.ip地址不唯一,会随机生成不同的ip值
3.用户登录的方式
4.胖URL表示对已有的URL中进行拓展,缺点1.url过长  2.对浏览器会有过多的负载 3.不能共享  4.所存在
的生命周期是页面是否存在,重新生成后会产生一个新的url
5.cookie服务器端生成,发送给USer-Agent(一般是浏览器),浏览器会将Cookie以key/value保存到某个
目录下的文本文件内

cookie的生成与访问流程
首先,进入网页后给服务器发送信号,将设置cookie的信号告诉给浏览器,在此时服务器本身也会创建一个cookie
浏览器就会在本地设置好cookie待下次访问时,浏览器就会将本地的cookie发送给服务器,此时服务器就会将相同
的cookie拿出来返回到浏览器当中

Cookie内存大小受限制,不同版本浏览器,Cookie值是不相同的,但大小一般都是4K

                       IE6.0                  IE7.0                   Opera                FF                      Safari         chrome
Cookie个数   每个域名下20个  每个域名下50个   每个域名下30个   每个域名下50个  无限制     每个域名下53个
Cookie大小   4095字节              4095字节            4096字节         4097字节          4097字节    4097字节


不同浏览中Cookie的存储方式是不一样的
在ie中的存储方式是以字段的形式存储     ******  ********   *********的样式储存
在Chrome中储存的方式是按照  Name  Value  Domain  Path  Expires/Max-Age   Size 的形式储存

下面就来了解Cookie中的增添删改
在chrome中,其Cookie的每段中的内容分别表示
Name   Value表示该cookie的名称和值  Path表示储存路径   Domain表示访问的服务器之间的位置
Expires 表示cookie具体的存储到某个什么日期,Max-age表示储存的时间为多少秒就结束其单位用秒来表示
document.cookie = 'age=18;max-age=2000';在Cookie中每个字段之间用分号表示对应字段是否结束。

猜你喜欢

转载自blog.csdn.net/care_yourself/article/details/99889560