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

当客户端禁用javascript时,cookie是否可用?,javascript,http,cookies,Javascript,Http,Cookies,这是我在今天的采访中被问到的问题之一 但我不确定答案。是(尽管您无法使用JS设置或读取)是。Cookie是一种浏览器/服务器http技术,与客户端脚本完全无关 Cookie的主要(或至少是初始)用途是在服务器端设置值并在服务器端读取 但是,客户端可能会在浏览器中禁用cookie。如果使用服务器端脚本设置cookie,则即使禁用了Javascript,网站也可以设置cookie PHP示例: setcookie('test', 'test'); cookie然后作为HTTP头发送到站点,除非在浏

这是我在今天的采访中被问到的问题之一


但我不确定答案。

是(尽管您无法使用JS设置或读取)

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

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


但是,客户端可能会在浏览器中禁用cookie。

如果使用服务器端脚本设置cookie,则即使禁用了Javascript,网站也可以设置cookie

PHP示例:

setcookie('test', 'test');

cookie然后作为HTTP头发送到站点,除非在浏览器中禁用它们。Javascript是否被禁用并不重要。

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

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 Cookie
Set 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: */*
GET /questions/2476288/will-cookie-be-available-wh... 
Host: stackoverflow.com
....
Accepted-Languages: ....
Accepted-Encoding: ....
....
Cookies: cookie1=value1;cookie2=value2

来源和进一步阅读:

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

GET /spec.html HTTP/1.1
Host: www.example.org
Cookie: name=value
Accept: */*
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。换句话说:Cookie是独立于JS的。

你的证据是什么?Cookie需要写入客户端,但当JS被禁用时,这是允许的吗?你也可以在服务器端写入Cookie。我不知道它们是否是同一件事,但你可以做到。你已经有了两个可靠的答案。Cookie与JavaScription无关您想要证据吗?禁用js,清理你的cookie,浏览一下,打开你的cookie缓存:满是cookie-1.回答错误。服务器可以删除cookie,但javascript也可以。类似地,javascript可以读取页面范围内的cookie。Cookie不会在服务器端设置任何值。