客户端识别和cookie机制

HTTP最初是一个匿名的、无状态的请求,服务器处理来自客户端的请求,然后向客户端回送响应,web服务器几乎没有什么信息来判定是哪个用户发送的请求,也无法记录用户的请求序列,以下有几种方法来增加用户识别机制:

第一、HTTP首部

1.from首部:包含了E-mail地址

2.User-Agent:包含了浏览器相关信息,包括程序的名称和版本,

3.Referer:提供了用户来源页面的URL

第二、客户端的IP地址:

通过TCP链接得到IP地址,存在的问题:

  1. 客户端IP地址描述的所用的机器,而不是用户
  2. 很多用户的地址经过NAT地址转化,所以用户的真实IP是不知道的
  3. HTTP代理和网管通常会打开一些新的到原始服务器的IP地址,这样web服务器看到的是代理服务器的IP地址

第三、用户登录

发起请求

站点不知道用户身份,返回401 loginRequiredHTTP 响应吗

弹出对话框,用户输入用户名、密码

今后的请求要使用用户名时,浏览器在每次请求中都向服务器发送Authorization首部

问题:访问不同的站点时每次都需要登录

第四、胖URL

每个URL后面附加一个用户特有的标识码

缺点:

  • 丑陋的URL
  • 无法共享URL
  • 破坏缓存
  • 额外的服务器负荷
  • 在会话间是非持久的

第五、cookie

cookie是当前识别用户、实现持久化会话的最好方式,前面的各种技术可以综合使用。

1、cookie的类型

cookie可以分为会话cookie和持久cookie,会话cookie是一种临时cookie,用户退出浏览器时,会话cookie就会被删除;持久cookie生存时间比较长一下,用来维护用户周期性访问的站点的配置文件或登录名,他存在硬盘,浏览器退出时,计算机重启时仍然存在。

会话cookie与持久cookie之间的区别:

如果设置了discard参数,或者没有设置Expires或mas-age参数来说明过期事假,这个cookie就是会话cookie

2、cookie是工作流程

用户首次访问服务器时,web服务器对用户一无所知,web服务器希望这个用户会再次回来,所以给这个用户一个独有的cookie,这样以后用户就可以识别这个用户了,cookie中包含了一个由名字==值这样的信息构成的任意列表,并通过set-cookieHTTP响应首部将其返给用户,浏览器会记住从服务器返回的set-cookie首部中的cookie内容,并将cookie存储在浏览器的cookie数据库中,将来用户访问同一站点时,在其首部带上cookie

3、cookie文件格式

不同的浏览器在存cookie时有不同的格式。

cookies版本0:

set-cookie:name=value,[expires=date],[path=path],[domain=domain]

expires:用来定义cookie的生存周期,一旦过了改日期就不在存储该cookie

domain:浏览器只向指定域发送cookie

path:通过这个属性可以为服务器上 指定的文档分配cookie

secure:如果包含了这个属性,就只有在HTTP使用SSL安全链接是才会发送cookie

4.cookie与缓存

如果无法缓存文档就应该标示出来,如果除了set-cookie首部之外文档是可缓存的,就是用cache-control:nocache=“set-cookie”

客户端识别和cookie机制

时间: 2024-08-24 23:34:02

客户端识别和cookie机制的相关文章

HTTP客户端识别与cookie机制

Web服务器可能会同时与数千个不同的客户端进行对话,这些服务器通常要记录下他们在与谁交谈,而不会认为所有的请求都来自匿名用户的客户端. 下面我们将讨论下列用户识别机制: 1 承载用户身份信息的HTTP首部 2 客户端ip地址跟踪,通过用户的IP地址对其进行识别 3 用户登陆,用认证方式来识别用户 4 胖URL,一种在Url 中嵌入识别信息的技术. 5 cookie 一种功能强大且高效的持久身份识别技术 Http首部 客户端ip地址 用户登陆 胖URL COOKIE Cookie 是当前识别用户,

《HTTP权威指南》读书笔记-客户端识别与Cookie机制

一.Cookie的类型 可以笼统地将Cookie分为两大类:会话Cookie和持久Cookie. 会话Cookie是一种临时Cookie,它记录了用户访问站点时的设置和偏好.用户退出浏览器时,会话Cookie就被删除了. 持久Cookie的生存时间更长一些:它们存储在硬盘上,浏览器退出,计算机重启时它们仍然存在.通常会用持久Cookie维护某个用户会周期性访问的站点的配置文件或登录名.两者的唯一区别在于它们的过期时间. Cookie中可以包含任意信息,但它们通过都只包含一个服务器为了进行跟踪而产

[原创]java WEB学习笔记28: 会话与状态管理Cookie 机制

1.会话与状态管理 1)背景 ① HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的 ,浏览器的每一次请求都是完全孤立的: ② 作为 web 服务器,必须能够采用一种机制来唯一地标识一个用户,同时记录该用户的状态: ③ 问题:怎么才能实现网上商店中的购物车呢:某个用户从网站的登录页面登入后,再进入购物页面购物时,负责处理购物请求的服务器程序必须知道处理上一次请求的程序所得到的用户信息. 2)会话和会话状态 ① WEB应用中的会话:指一个客户端浏览器与WEB服务

php session机制与cookie机制以及联系与区别

session与cookie是在做项目中很常用的会话技术,session与cookie也是面试中被问到频率最高的问题,有一次我去面试,面试官就怼着我session与cookie一直问(头都大了),下面总结了一些关于session与cookie的区别与联系. 说到session与cookie,先说一下什么是会话技术: 由于http协议是无状态的协议,也就是说当一个用户在请求一个页面后再请求另一个页面时,http将无法告诉我们这两个请求是否来自于同一个用户,这就意味着我们需要有一种机制来跟踪和记录用

Http客户端识别的方法

Http用户识别的机制方法分为如下几种: 1).承载用户身份的HTTP首部 2).客户端IP地址跟踪,根据客户端IP地址进行识别 3).用户登录,用认证方式设别用户 4).使用胖URL,一种在URL中嵌入识别信息的技术 5).Cookie,一种持久化身份设别技术 关于HTTP首部的相关信息在下列表格中列出. HTTP首部 首部名称 首部类型 描述 From 请求 用户的Email地址 User-Agent 请求 用户的浏览器软件 Referer 请求 用户是从这个页面上依照链接跳转过来的 Aut

因改漏洞而引申了解的Cookie机制!

近期因为修改漏洞:Appscan扫描漏洞:加密会话(SSL)Cookie中缺少Secure属性,而涉及到Cookie有关的知识,现结合该漏洞的修复过程和了解的cookie知识总结一下. 一.加密会话(SSL)Cookie中缺少Secure属性漏洞概述: 任何以明文形式发送到服务器的 cookie.会话令牌或用户凭证之类的信息都可能被窃取,并在稍后用于身份盗窃或用户伪装,此外,若干隐私法规指出,用户凭证之类的敏感信息要始终以加密的方式发送到 Web 站点.(也可以认为,当把传输协议改为Https的

cookie机制 与 session机制

cookie cookie机制 在程序中,会话跟踪是很重要的事情.理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆. 而Web应用程序是使用HTTP协议传输数据的.HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接.这就意味着服务器无法从连接上跟踪会话.要跟踪该会话,必须引入一种机制. Cookie就是这样的一种机制.它可以弥补HTTP协议无状态的不足.在Session出现之前

cookie机制

Cookie通过在客户端记录信息确定用户身份 一个用户的所有请求操作都应该属于同一个会话, HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接.这就意味着服务器无法从连接上跟踪会话. cookie机制: 客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie.客户端浏览器会把Cookie保存起来.当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器.服务器检查该Coo

cookie机制和session机制的区别

一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案.同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择 二.会话cookie和持久cookie的区别 如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了.这种生命期为浏览会