h4x3rotab
2015-04-08 00:16:06 +08:00
问题不在于能否互相访问,而是理解其中原理。php是运行在服务器端的,他的唯一作用就是接受http请求,执行php脚本,生成html页面,回复给浏览器。浏览器收到了服务器发来的html页面之后会呈现出来,同时也会执行js脚本。
那么cookies是怎么同步的?浏览器内每一个域名都会保存一些cookies,值是由你设定的,js可以对浏览器内的cookies读写访问。但是呢,每一次浏览器访问服务器的时候,php都会接收到一个http请求,这个请求内会包含浏览器内存储的cookies,所以说php在生成html页面的时候,也可以取得用户这边的cookies。在php生成html页面的时候,同时会生成一段http响应,响应中就包含了一个叫Set-cookie的属性,浏览器收到这个响应就会去修改内部的cookies。
所以说本身cookies是只存在于浏览器的一段文本,可以由js访问。只有在发生http请求的时候,这段cookies才会传递给服务器,伺候服务器也可以返回Set-cookie来修改浏览器的cookies。这不能叫做互相读取,而是一种传递机制。