服务器无法在发送 http 标头之后修改 cookie.,浏览器在后续请求中不发送cookie

博客内容描述了一个关于用户识别的项目,通过Cookie在localhost上的服务进行实现。当用户访问时,服务返回包含Cookie的响应头。后续的API请求应当携带这个Cookie,但似乎在实际操作中出现了问题。作者检查了请求和响应头,但未能确定遗漏了什么,导致Cookie没有正确传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用cookie进行用户识别的项目.

当用户到达时,它会调用该服务(在localhost中运行),并且带有响应头的服务发送cookie如下所示:

curl 'http://127.0.0.1:8000/api/v1.0/tracking' -X OPTIONS -H 'Access-Control-Request-Method: POST' -H 'Origin: http://local.com:8080' -H 'Access-Control-Request-Headers: content-type,x-forwarded-for' --compressed

响应标头如下所示:

HTTP/1.1 200 OK

Connection: keep-alive

Keep-Alive: 60

Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, x-forwarded-for

Access-Control-Allow-Origin: *

Access-Control-Allow-Methods: POST, PATCH, GET

Content-Length: 0

Content-Type: text/plain; charset=utf-8

Set-Cookie: id=random_id_123_123; expires=Wed, 06-Dec-2017 10:57:36 GMT; Domain=.local.com; Path=/

然后在特定用户操作后,应用程序发送以下API请求:

curl 'http://127.0.0.1:8000/api/v1.0/tracking?event=video_added&user_id=123123123' -H 'Origin: http://local.com:8080' -H 'Accept: */*' -H 'Referer: http://local.com:8080/' -H 'Connection: keep-alive' --compressed

上述请求的请求标头如下所示:

GET api/v1.0/tracking?event=video_added&user_id=123123123 HTTP/1.1

Host: 127.0.0.1:8000

Connection: keep-alive

Accept: */*

Origin: http://local.com:8080

User-Agent: My user agent

Referer: http://local.com:8080/

Accept-Encoding: gzip, deflate, br

Accept-Language: en-US,en;q=0.9

我期待第一个请求接收cookie(random_id_123_123),因为响应头将是第二个请求的请求头.

该网站运行于:http://local.com:8080(实际上在本地机器上运行,我的vhost配置指向127.0.0.1 local.com),它由python提供服务SimpleHTTPServer.

设置cookie的后端服务也在localhost的端口8000上运行.似乎我在实施过程中遗漏了一些东西.那是什么?

编辑:这是代码.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值