CS转BS难点,请高手指点

pangdecai 2014-01-08 10:16:04
各位大神,小弟刚刚从CS开发转型BS开发,现在有以下几点疑问,请大神帮帮忙。
第一是URL的疑问:
例一:http://bbs.csdn.net/topics/new?forum_id=CSharp
例二:http://m0.mail.sina.com.cn/classic/index.php#title=%25E4%25BA%25BA%25E5%25A4%25A7%25E5%258E%259F%25E6%258B%259B%25E7%2594%259F%25E5%25A4%2584%25E9%2595%25BF%25E8%25A2%25AB%25E8%25B0%2583%25E6%259F%25A5+%25E6%258F%25AD%25E9%25AB%2598%25E6%25A0%25A1%25E8%2587%25AA%25E4%25B8%25BB%25E6%258B%259B%25E7%2594%259F%25E9%25BB%2591%25E5%25B9%2595&action=reader&is_search=false&fid=new&mid=02CCFF96296AD191457D88DBE3EED9025400000000000001&pageno=1&flag&order=htime&sorttype=desc&pos=0
这两个URL的彩色部分到底是什么意思,怎么理解,紫色的部分有人告诉我是中文的转义,这个基本我懂了,但是类似forum_id=CSharp、fid=new、is_search=false这些应该都是参数,这些应该怎么用?干什么用?
第二是Session的疑问:
Session就是一个会话,我把Session理解成为一个Client应该也可以,在CS中控制Client可以使用Login Form控制MenuItem的Enabled属性,而在Web中我如果把Login.aspx作为首页,但是我可以直接通过URL跳过首页啊,这个我不明白
第三还是URL问题:
如果我设计一个站点,所有的代码均在服务器端处理,或者说我所有的业务逻辑都要靠ClickButton来产生回调,那我的URL里面就不需要参数了啊,就不会出现这些文号、井号、百分号的东西了啊,既然我可以不用,那么人家也可以不用,那为什么人家这些站点都必须得用呢?肯定还是有用处的。大神们能给我讲讲用处吗?
第四是Cookie的问题:
Cookie是啥东西,有什么用,参考什么资料学。

希望各位大神能帮帮我
...全文
559 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2014-01-15
  • 打赏
  • 举报
回复
额,方向错误,你应该先把http协议本身看一遍 另外对于session,你姑且当cs滴心跳包看把(虽然bs没有soket滴,真是因为没有soket,才更应该有个东西保留维持心跳,已表示这客户存在,并且各种体征正常) ps:现有的bs和cs最不同滴地方,就是现有BS没状态,你所纠结滴都是BS为了保持这状态做滴努力
pangdecai 2014-01-15
  • 打赏
  • 举报
回复
感谢大家,现在已经明白多了,也做了几个练习,有点小了解了,谢谢大家
ltcszk 2014-01-09
  • 打赏
  • 举报
回复
从cs转bs请不要从webform开始学,不然很多概念都会理解错误 webform为了模拟winform,假装web是“有状态”的 你可以先补习一下基础知识 http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html
火拼阿三 2014-01-09
  • 打赏
  • 举报
回复
学习学习。。。。
  • 打赏
  • 举报
回复
上面回答的已经很详细了
md5e 2014-01-09
  • 打赏
  • 举报
回复
1、forum_id=CSharp是页面传参,用Request["forum_id"]可以得到CSharp,可以理解为当前页面的全局变量,只是这里的定义和附值都由用户设定也可以是aa=CSharp,相于的,Request["aa"]=CSharp 2、用的浏览器是不兼容中文url的,所以这里需要将中文字符或特殊符号转义字符,但中用Request["xxx"]就可以了,默认将字符转义回来 3、多个参数间用&分划 aspx?aa=123&bb=456&cc=567(注:url不是无限长的,好像http地址的最大长度为255个字符) 4、Session只是一个全局的变量,可以用作登陆凭证 登陆成功时保存凭证Session["userid"]="admin" 管理后台的每个页面都要先验证凭证,通过就继续,不通过就返回登陆页,然后结束 if(Session["userid"]==null||Session["userid"]!="admin"){ throw (new Exception("用户没有登陆或登陆已超时!")); }
Im_Sorry 2014-01-09
  • 打赏
  • 举报
回复
引用 4 楼 liuchaolin 的回复:
1、forum_id=CSharp是页面传参,用Request["forum_id"]可以得到CSharp,可以理解为当前页面的全局变量,只是这里的定义和附值都由用户设定也可以是aa=CSharp,相于的,Request["aa"]=CSharp 2、用的浏览器是不兼容中文url的,所以这里需要将中文字符或特殊符号转义字符,但中用Request["xxx"]就可以了,默认将字符转义回来 3、多个参数间用&分划 aspx?aa=123&bb=456&cc=567(注:url不是无限长的,好像http地址的最大长度为255个字符) 4、Session只是一个全局的变量,可以用作登陆凭证 登陆成功时保存凭证Session["userid"]="admin" 管理后台的每个页面都要先验证凭证,通过就继续,不通过就返回登陆页,然后结束 if(Session["userid"]==null||Session["userid"]!="admin"){ throw (new Exception("用户没有登陆或登陆已超时!")); }
+1
threenewbee 2014-01-08
  • 打赏
  • 举报
回复
这些最基本的问题在任何一本web程序开发的书上都有。 很难和你说清楚,因为你的基本认识都是错的。比如说会话是客户端,这是哪对哪。 要说最基本的,那就是,一个web系统,分为客户端(浏览器)和服务器端,客户端提交访问请求,服务器端处理,并且返回数据。请注意这个过程和桌面程序的本质不同。一个是,服务器不能主动和客户端通讯,一个是,服务器只是通过http协议和浏览器通讯,它不能获知浏览器的状态,每次请求和响应都是独立的。 如果你能理解这些最基本的概念,那么很容易解释如下问题。 为什么我们需要用querystring和postdata提交数据,因为http协议下,这是基本且唯一的客户端提交数据的方式。而所谓的控件、回发不过是asp.net基于如上的一种模拟。 querystring是最基本的,面向浏览器和搜索引擎的方式。很显然,如果全部使用postdata,那么这样的网页是无法被浏览器收录的,也不能直接通过url请求到。 为什么我们需要cookie,因为我们需要跟踪客户端的会话状态。即让服务器将同一个客户端连续发来的多次请求视作一个整体。会话就是这个意思。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧