客户端禁用javascript时cookie是否可用?

时间:2010-03-19 09:56:15

标签: javascript http cookies

这是我今天在采访中提出的一个问题,

但我不确定答案。

5 个答案:

答案 0 :(得分:2)

是。 Cookie是一种浏览器/服务器http技术,完全与客户端脚本无关。

Cookie的主要(或至少是初始)用途是设置服务器端的值并在服务器端读取它。

但客户可能会在浏览器中禁用Cookie。

答案 1 :(得分:1)

答案是肯定的。防弹推导如下:

  

Cookie作为HTTP标头发送   通过Web服务器到Web浏览器和   然后发送回来不变   浏览器每次访问它   服务器


设置cookie

要访问页面http://www.example.org/index.html,浏览器会连接到服务器www.example.org,向其发送如下所示的请求:

GET /index.html HTTP/1.1
Host: www.example.org

服务器通过发送所请求的页面来回复,该页面前面有一个类似的文本包,称为“HTTP响应”。此数据包可能包含请求浏览器存储cookie的行:

HTTP/1.1 200 OK
Content-type: text/html
Set-Cookie: name=value

(content of page)

仅当服务器希望浏览器存储cookie时,服务器才会发送行Set-CookieSet-Cookie是浏览器存储字符串name=value的请求,并在将来的所有请求中将其发送回服务器。如果浏览器支持cookie并且启用了cookie,则对同一服务器的每个后续页面请求都将包含cookie。例如,浏览器通过向服务器http://www.example.org/spec.html发送如下请求来请求页面www.example.org

GET /spec.html HTTP/1.1
Host: www.example.org
Cookie: name=value
Accept: */*

来源和进一步阅读:Wikipedia: HTTP Cookie

答案 2 :(得分:1)

Cookie只是一个典型的HTTP标头。每当您的浏览器请求某个网站时,它会发送如下所示的请求标头:

GET /questions/2476288/will-cookie-be-available-wh... 
Host: stackoverflow.com
....
Accepted-Languages: ....
Accepted-Encoding: ....
....
Cookies: cookie1=value1;cookie2=value2

因为你可以看到cookie是HTTP协议的一部分而不是JS,但JS能够创建/删除/修改cookie。换句话说:来自JS的cookie 独立

答案 3 :(得分:0)

如果使用服务器端脚本设置co​​okie,即使Javascript被禁用,网站也可以设置cookie。

PHP示例:

setcookie('test', 'test');

然后将cookie作为HTTP标头发送到站点,除非它们在浏览器中被禁用。 Javascript是否被禁用无关紧要。

答案 4 :(得分:-1)

是(虽然您无法使用JS进行设置或阅读)