【问题标题】:How do you include a cookie in an HTTP Response (e.g. an image request)?如何在 HTTP 响应(例如图像请求)中包含 cookie?
【发布时间】:2011-11-18 04:43:35
【问题描述】:

我想知道像 Double-Click 这样的公司如何在其图像响应中包含 cookie 以跟踪用户。同样,图像(例如智能像素)如何将信息发送回其服务器?

如果可能,请提供一个脚本示例(任何语言都可以)[注意:如果这是解决服务器端的问题,请描述如何使用 APACHE 完成此操作]。

干杯, 抢

【问题讨论】:

  • 图片是否与其他任何类型的资源不同?
  • 让您大吃一惊:阅读ever cookie

标签: http


【解决方案1】:

它们如何包含 cookie? 配置服务器,可能通过脚本发送带有响应的 cookie。图片是http请求,遵循http协议,没有什么神奇之处。

“智能像素”仅通过浏览器必须发送到服务器以加载图像的请求来传达其信息。有关用户/浏览器的信息,可以通过 javascript 收集并嵌入到 url。

【讨论】:

    【解决方案2】:

    要在 php 中执行此操作,您需要使用 setCookie 函数。

    <?php
    $value = 'something from somewhere';
    
    setcookie("TestCookie", $value);
    setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */
    setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);
    ?>
    

    该代码取自我上面引用的 php 文档。基本上这会将Set-Cookie 添加到 HttpResponse 标头中,例如:Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1

    查看http://en.wikipedia.org/wiki/List_of_HTTP_header_fields并搜索Set-Cookie

    另外,在 PHP 等脚本语言中,请确保在呈现任何内容之前设置标题。这是因为 HTTP 标头是响应中发送的第一件事,所以一旦您写了内容,标头应该已经写好了。

    PHP:setcookie doc 的另一句话:

    与其他标头一样,Cookie 必须在您的任何输出之前发送 脚本(这是协议限制)。这需要您放置 在任何输出之前调用此函数,包括和 标签以及任何空格。

    【讨论】:

    • 这个答案是针对 php 页面的请求,而不是简单的图像请求
    • @rednoyz Php 可以很好地响应图像内容,但正常响应是 text/html。有关示例,请参见 Return a PHP page as an image
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 2012-08-09
    • 2011-05-05
    • 2013-10-27
    • 2020-05-26
    • 2019-09-30
    相关资源
    最近更新 更多