ASP网页编程之session和cookie的最深入了解
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。cookie|session|cookie|session先说session对SESSION的争辩好象一向没有中断过,不外幺麽能了解SESSION的人应当占90以上。
但仍是讲讲,别嫌老~
有一些人同意用SESSION,有一些人不同意。但这个成绩究竟要怎样说。无妨听听我的意见
假如有毛病请不要朝丢器材,金条和硬币除外。
有些人应当晓得我是做江湖程序的,而江湖程序做看中的就是效力,但这里不谈计划,而
从一些对照实践的角度看SESSION。
起首要先说SESSION是干甚么的,SESSION是能够存储针对与某一个用户的IE和经由过程其当
前窗口翻开的任何窗口具有针对性的用户信息存储机制。为何要如许说。看下边
先研讨SESSION是怎样启动的,当翻开IE今后扫瞄网站后会收回一个指令哀求SESSIONID以
及对各个范例数据的下载允许,如图片,声响和FLASH。
数据实践传输内容:IE到服务器
GET/HTTP/1.1
Accept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/x-shockwave-flash,*/*
Accept-Language0:zh-cn
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE5.01;WindowsNT5.0)
Host:www.jh521.com
Connection:Keep-Alive
服务器会前往一个没有被利用的SESSIONID让IE利用,事先IE就对前往SESSIONID做存储
并同时前往相干页面的下载数据,以下:服务器到IE
HTTP/1.1200OK
Server:Microsoft-IIS/5.0
Date:Sun,30Nov200316:41:51GMT
Content-Length:21174..Content-Type:text/html
Set-Cookie:ASPSESSIONIDCACBBBRT=IBOMFONAOJFEEBHBPIENJFFC;path=/
Cache-control:private
然后就是页面HTML代码
此时这个IE程序(不是客户机)的SESSIONID就为IBOMFONAOJFEEBHBPIENJFFC
而当IE在会见任何这个站点的ASP程序的时分,就会把IBOMFONAOJFEEBHBPIENJFFC发送
给服务器,服务器就会晓得IBOMFONAOJFEEBHBPIENJFFC是暗示你
而在服务器上设置SESSION("name")="name"
完整能够当作是
SESSION("IBOMFONAOJFEEBHBPIENJFFC")("name")="name"
大概
SESSION(SESSIONID)("name")="name"
如许,SESSION就辨别开用户了。
而当服务器反应这个ID的时分会看这个ID有无被利用。假如有在换一个
归正不会让你反复,假如想摹拟或人的SESSION的ID来举行棍骗是能够的。不外要猎取到
对方IE传输旌旗灯号,而且在包管事先这个SESSIONID没有被作废的情形下才大概实行。
不外如果我有当时间间接经由过程POST旌旗灯号找他NAME和PASS了。我可不费这个劲
想必一些人分明了了SESSIONID究竟是怎样事情的
那末就在看看COOKIE,有人说SESSIONID就是COOKIE,依照手艺下去讲他们不属于同类
可是属于一种事情形式,用户和服务器传输公有数据
当我设置COOKIE的时分,服务器会反应给IE一个指令。IE经由过程这个收集指令天生COOKIE并
寄存,在特定的时分会获得这个这个信息如在会见这个站点而且COOKID无效的时分。
那末为何要用COOKIE而不必SESSION呢
看下区分
无效工夫和存储体例传输内容
COOKIE可设置并在当地保存密码信息
SESSION在IE不封闭并服务器不超时只要SESSIONID
当假如想让用户下次登进网站不必要输出用户名大概暗码的时分就只能用COOKIE,
由于他能够保存相称长的工夫(在COOKIE纪录被删除大概生效日期之前)
而SESSION就不成以,他不会保存太长工夫,并且IE在封闭后就主动扫除了SESSIONID纪录
鄙人次登进的时分会哀求新的SESSIONID
而服务器想经由过程用户团体变量校验用户的形态的时分,就不克不及用COOKIE
假如用设置用户权限是USER。而IE会见的时分就把USER的密码传输到服务器。
那末假如我经由过程必定手腕,好比间接修正COOKIE纪录,把USER修正成ADMIN呢~~
就贫苦了。
但存储用户名和暗码大概网站的配色计划如许的信息,用COOKIE是最好的
好,有点累了,在说说这个器材
Request.ServerVariables("HTTP_REFERER")
我想有一些人经由过程这个Request.ServerVariables("HTTP_REFERER")
来举行一些关头性限定,出格是凑合远程提交和不法侵进。
那末我就要提示下服务器获得的HTTP_REFERER信息完整是IE传输给服务器的,能够摹拟
并且难度不年夜,用不到半个小时就能够用VB做出一个针对HTTP_REFERER进侵程序。
(惋惜我本来那他没干正派事变,做WEB游戏挂机程序来的)
</p>国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了 掌握asp的特性而且一定要知道为什么。 用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
页:
[1]