HTTP系列(第3部分):客户端标识

客户识别及其极为重要的原因

正如您最清楚地知道的那样,每个网站,或者至少那些关心您和您的行为的网站,都包含某种形式的内容个性化。

那是什么意思?

HTTP系列(第3部分):客户端标识

好吧,如果您访问电子商务网站,或者包括社交网络上的“您可能知道/想要联系的人”,推荐视频,几乎诡异地了解您需要的广告,以及与之相关的新闻文章你,等等。

这种效果感觉就像一把双刃剑。一方面,它提供了个性化的自定义内容,非常漂亮。另一方面,它可能导致确认偏见,可能导致各种刻板印象和偏见。有一个优秀的迪尔伯特漫画,涉及确认偏见。

然而,我们如何能够在不知道我们最喜欢的球队昨晚得分如何,或者昨晚名人做了什么的情况下生活?

无论哪种方式,内容个性化已成为我们日常生活的一部分,我们可能不会,我们可能甚至不想,对此采取任何行动。

让我们看看Web服务器如何识别您以实现此效果。

识别客户的不同方法

Web服务器可以通过多种方式识别您:

  • HTTP请求标头
  • IP地址
  • URL
  • Cookies
  • 登录信息(认证)

用于标识的HTTP请求标头

Web服务器有几种方法可以直接从HTTP请求标头中提取有关您的信息。

那些标头是:

  • From – 包含用户的电子邮件地址(如果提供)。
  • User-Agent – 包含有关Web客户端的信息。
  • Referer – 包含用户来自的来源。
  • Authorization –
    包含用户名和密码。
  • Client-ip – 包含用户的IP地址。
  • X-Forwarded-For –包含用户的IP地址(通过代理服务器时)。
  • Cookie – 包含服务器生成的ID标签。

从理论上讲,From非常适合唯一标识用户,但实际上,由于电子邮件收集的安全问题,很少使用此标头。

User-Agent包含诸如浏览器的版本或操作系统的信息。虽然这对于自定义内容很重要,但它并不以更相关的方式识别用户。

Referer告诉该用户是来自服务器。此信息用于提高对用户行为的理解,但不太适合识别用户行为。

虽然这些标头提供了有关客户端的一些有用信息,但仅以有意义的方式个性化内容是不够的。

其余标题提供更精确的识别机制。

IP地址

当IP地址不那么容易伪造/交换时,IP地址的客户端识别方法在过去被更多地使用。虽然它可以用作额外的安全检查,但它不够可靠,不能单独使用。

以下是一些原因:

  • 描述了机器,而不是用户。
  • NAT防火墙 -许多ISP(Internet服务提供商)使用NAT防火墙来增强安全性并处理IP地址短缺
  • 动态IP地址 -用户经常从ISP获取动态IP地址
  • HTTP 代理和网关 -这些可以隐藏原始IP地址。某些代理使用Client-ip或X-Forwarded-For来保留原始IP地址

URL

看到网站利用URL来改善用户体验并不罕见。当用户浏览网站时,他们会添加更多信息,直到网址看起来复杂且难以辨认。

您可以通过浏览Amazon商店查看长URL的外观。

https://www.amazon.com/gp/product/1942788002/ref=s9u_psimh_gw_i2?ie=UTF8&fpl=fresh&pd_rd_i=1942788002&pd_rd_r=70BRSEN2K19345MWASF0&pd_rd_w=KpLza&pd_rd_wg=gTIeL&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=&pf_rd_r=RWRKQXA6PBHQG52JTRW2&pf_rd_t=36701&pf_rd_p=1cf9d009-399c-49e1-901a- 7b8786e59436&pf_rd_i =桌面

使用这种方法时有几个问题。

  • 它很丑。
  • 不可分享。
  • 打破缓存。
  • 它仅限于该会话。
  • 增加服务器上的负载。

Cookies

Cookie有两种类型:会话cookie持久性cookie。离开浏览器时会删除会话cookie,持久性cookie会保存在磁盘上并且可以持续更长时间。要将会话cookie视为持久性cookie,需要设置Max-Age或Expiry属性。

Chrome和Firefox等现代浏览器可以在关闭它们时保持后台进程正常工作,以便您可以从中断的位置继续操作。这可能会导致会话cookie的保留,所以要小心。

那么cookie如何运作?

Cookie包含服务器使用Set-Cookie或Set-Cookie2响应标头设置的名称=值对列表。通常,存储在cookie中的信息是某种客户端ID,但是一些网站也存储其他信息。

浏览器将此信息存储在其cookie数据库中,并在用户再次访问该页面/网站时返回该信息。浏览器可以处理数千种不同的cookie,它知道何时为每个cookie提供服务。

以下是一个示例流程

用户代理 - >服务器

HTTP系列(第3部分):客户端标识

用户代理通过表单输入标识自己

服务器 - >用户代理

HTTP系列(第3部分):客户端标识

服务器发送Set-Cookie2响应头以指示用户代理(浏览器)在cookie中设置有关用户的信息。

用户代理 - >服务器

HTTP系列(第3部分):客户端标识

用户选择放置购物篮的物品。

服务器 - >用户代理

HTTP系列(第3部分):客户端标识

购物篮包含一个项目。

用户代理 - >服务器

HTTP系列(第3部分):客户端标识

用户选择送货方式。

服务器 - >用户代理

HTTP系列(第3部分):客户端标识

新cookie反映了送货方式。

用户代理 - >服务器

HTTP系列(第3部分):客户端标识


分享到:


相關文章: