b/s究竟强在哪里?(看着这个题目那么大,自己都怕)[旧作迁移]

阅读更多
今天看到web开发之华山论剑,颇吸引我,于是把以前的blog中的一篇旧作迁到这边来:

两种架构最大的区别是:

1> c/s中c与s是可互达的,怎么解释这句话呢?你可以通过客户端向服务端发送请求,也可以通过服务器向客户端发送应答;

  b/s中只有b可以向s发送请求,而s是无论如何也不可能主动向b发送请求的(试问s怎么把消息通过网关发送到b呢,当网关接收到s的消息,网关是无论如何也分析不出来b的地址的,这又要扯到http,在这个协议中明确了b 和s,使b的永远是b,使s的永远是s。所以b的消息根据http协议传送到服务端的网关的时候,协议知道后者是server,可以解析出地址)

2>c/s是不可能通过网关的,试问内网的机器怎么找到外网的server呢,或者反过来;而b/s则可以解决这个问题,因为http协议的存在,因为http协议生来就是为了根据某个url取得数据的。

3>c/s可以维持一个session,这也就决定了它的server是不可能承载太多client的;但b/s不同,b/s不保证一次会话(当然后面发展了session),这也就决定了它的server可以承载更多的client。既然提到了session就继续说下去吧,session的出现,就是为了解决,或者说达到c/s中的保持一段会话的效果。问题继续存在---“推拉问题”browser可以很方便的从server拉到数据,但server却不可能把数据推出去,当问题接踵而至的时候,Ajax出现了,它就像神功附体,犹如一道神光降临大地(呼呼...);b/s还有一个问题就是server每次应答client的请求的时候,都是发送整个页面过去,费时费力,浪费资源,怎么解决呢?哈哈...Ajax出现了,它就像神功附体,犹如一道神光降临大地(呼呼...);

你可能感兴趣的:(防火墙,Ajax,Comet,C,C++)