浏览器中的cache问题(100分)

  • 主题发起人 主题发起人 铃铛
  • 开始时间 开始时间

铃铛

Unregistered / Unconfirmed
GUEST, unregistred user!
这两天看到一个系统,用UNIX+NESCAPE 做 sever 用c做的 cgi
系统类似本站点,也是要登陆.但没有用 cookie 据说是使用 cache
完成的类似功能. 有那位知道这放面情况么? 给点资料.多谢.
 
我来听答案
 
简单一点 这是好象是一个怎样在web服务器上读客户浏览器中
的cache问题.大家知道方法么?(再刷一遍,好让这个问题提到前边)
:)
 
cache的想法和cookie是差不多的,cache是把要分配的"cookie"分配到事先在服务器端建立的buffer表中,表里面对应客户端的IP和要分配的"cookie"
 
你的意思是不是完全在服务器段实现. 客户登陆上来,在服务器内存中
纪录要分给它的cookie +ip,什么时候删除呢?
有没有例子啊? 谢了.
 
不太懂!
如果是动态IP,它怎么对应呢?
 
to 铃铛:
Cookie的生存时间是由Server端决定的,也就是说用这种方法,你
也要自己决定该IP的cache中的生存时间了.
to zx:
动态的IP一样有IP呀.
 
实现起来很简单的,你用一个Ini文件放这个表不就行了.
CookieTable:=TIniFile.Create('xxxxx.xxx');// 别忘记Free;

procedure SendCookie(IPAddress,CookieName,CookieValue);
begin
CookieTable.WriteString(IPAddress,CookieName,CookieValue);
end;

function CheckCookie(IPAddress,CookieName,Str):Boolean;
begin
if Str<>CookieTable.ReadString(IPAddress,CookieName,'') then
Result:=False
else
Result:=True;
end;
 
动态IP确实有IP,我想错了!
可是我觉得还是有点疑问,比如我先登陆一次,
然后我没有关闭浏览器,又用另一个用户名登
陆一次,那么服务器怎么判断呢?是根据IP来
判断,还是根据Cookie来判断?两次的Cookie
都存在,并提交了吗?还是清除了一个?
 
当然要清除一个,防止使用两个用户名同时登陆进入了.
 

谢谢唐兄的程序,尽管现在我用的是unix,但移植我想挺简单的.
不过我以前用cookie是把cookie时间设为私有+立即过时.并把他写到
客户端.通过每次请求都读"客户端cookie"的方法,来验证用户.这样当
客户一关浏览器,客户机上的cookie即自动消失.下一次再登陆就又要
他输入口令.
但如果仅在服务器端有一个cache.那就要考虑cache的生存期问题.
象在上次同一IP请求n分钟内的请求客看作同一人等.
但如果可读写客户端浏览器的cache那就方便多了.又没有这种方法?



 
如果cookie的生存器很短,那分配cookie似乎没有多少意义了.
如果可读写客户端浏览器的cache,那客户端的cache不就是cookie吗 :)
 
Some body finish it, please!
 
接受答案了.
 
后退
顶部