浏览器与服务器交互原理

 

 

1.在HTTP的WEB应用中, 应用客户端和服务器之间的状态是通过Session来维持的, 而Session的本质就是Cookie,

简单的讲,当浏览器向服务器发送Http请求的时候, HTTP服务器会产生一个SessionID,这个SessionID就唯一的标识了一个客户端到服务器的请求会话过程。

就如同一次会议开始时,主办方给每位到场的嘉宾一个临时的编号胸牌一样, 可以通过这个编号记录每个嘉宾(客户端)的活动(请求状态)。

为了保持这个状态, 当服务端向客户端回应的时候,会附带Cookie信息,当然,Cookie里面就包含了SessionID

客户端在执行一系列操作时向服务端发送请求时,也会带上这个SessionID, 一般来说,Session也是一个URL QueryParameter ,就是说,session可以以Key-Value的形式通过URL传递

比如,http://www.51etest.com/dede/login.php?PHPSESSIONID=7dg3dsf19SDf73wqc32fdsf

一般而言,浏览器会自动把此Session信息放入Header报文体中进行传递。

如果浏览器不支持Cookie,那么,浏览器会自动把SessionID附加到URL中去。

 

2.在这个例子中,以登陆这个功能点进行讲解.

首先,我们登陆的页面是http://www.51etest.com/dede, 我们第一次访问这个页面后,可以从服务器过来的Http Response报文中的Header中找出服务器与浏览器向关联的数据 — Cookie,

而且Session的值也在Cookie中. 于是,我们可以通过分析Set-Cookie这个Header中的参数的值,找到Seesion的Key-Value段。

然后,我们再向服务器发送请求,请求URL为:post@@http://www.51etest.com/dede/login.php@@userid=admin&pwd=tidus2005&gotopage=/dede/&dopost=login

服务器验证登陆成功了, 并且在此次会话变量中增加了我们登陆成功的标识。

 

3.增加一个广告定义

增加一个广告定义其实就是一个添加数据的过程,无非是我们把我们要添加的数据通过参数的形式告诉指定url页面,页面获取后添加到数据库去而已。

此url地址为:

post@@http://www.51etest.com/dede/ad_add.php@@dopost=save&tagname=test&typeid=0&adname=test&starttime=2008-05-29

因为这个页面会先判断是否登陆

而判断的依据,前面讲了,就是根据请求时的SessionID找到指定的Session数据区中是否存在的登陆信息,

所以当然要把访问登陆页面时获取的SessionID原封不动的再发回去

相当于对服务器说,这是刚刚来时,你发我的临时身份证,我现在可以行使我的权利。

 

这就是整个Java后台登陆网站,然后添加数据的过程。 

posted @ 2020-12-30 21:38  划水De雁小明  阅读(674)  评论(0编辑  收藏  举报