session - 浏览器HTTP请求发送的COOKIE和PHP setcookie函数种下的COOKIE有什么区别?
回复内容:
浏览器HTTP请求发送的COOKIE和PHP setcookie函数种下的COOKIE有什么区别?两种COOKIE是否在能在浏览器-》网页信息-》显示网站cookie里面看到呢?
setCookie设置的cookie,会已hhtp响应头的形式,写入浏览器,若path,domain等匹配,将会在下一次HTTP发送请求时加入HTTP请求头。二者只是设置的方式不一样,但一旦设置成功,都可以在浏览器开发者工具中看到。
可以参考下我以前回答的一个问题 http://segmentfault.com/q/1010000002655809/a-1020000002655842
PHP setcookie函数,是通知浏览器,把这个cookie保存起来;浏览器HTTP请求发送的COOKIE是把之前保存的cookie发送给服务器,告诉服务器,我是有这个cookie的。
其实你首先要理解从cookie的作用,他就是服务端生成之后发给客户端,用于验证用户的身份用的。这样客户端(浏览器)向服务器发送请求时就将cookie也发送到服务器,这样服务端只要查一下你的cookie是不是对的,这样就不用每次都去查一下用户的账号密码是不是正确的。(当然cookie还是有其他作用的,例如储存用户的访问习惯之类的)。
而对于你的问题
客户端(浏览器):HTTP请求发送的cookie就是服务器生成后发给浏览器,浏览每次向服务器发送请求都携带回去的。
服务端:PHP的setcookie,其实就是服务端生成cookie的过程。
两者就是同一个东西。所以在浏览器看到的就是同一个东西。
1 Cookie是统一的标准,用什么方式发送,都应该是一样的,否则就失去了它存在的意义。
2 浏览器是不会发送Cookie的,所以也就不存在“浏览器HTTP请求发送的COOKIE”,都是从server端发送给浏览器的,因为http是个无状态协议,只有使用cookie和session,来分辨某个用户的身份。