`
ballanfeng
  • 浏览: 17938 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
最近访客 更多访客>>
社区版块
存档分类
最新评论

B/S模式浅析

阅读更多

今天我们部门的技术总监给我讲了一下http协议,我在这里做下整理,可能有些地方理解的有些出入。

B/S模式(browser/servlet),B端是浏览器,S端是web容器。

一、客户端请求服务器

用户通过浏览器发送一个http请求,一般是通过uri更进一步是url来发送http请求,S端收到请求后处理用户的请求,然后通过response返回给用户,页面对返回的数据进行渲染,最终形成用户看到的页面。

HTTP 1.1支持七种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TRACE等,常用的为请求方法是GET和POST。

对于get方法,请求参数会拼接到url上传递给服务器,post方法传递参数则是把参数存放到http的报头中,然后服务器经过解析来获得请求参数。

二、客户端、服务器端的会话

http协议是无状态的,无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。既然无状态服务器端是怎么确定客户端每次请求是不是同一个会话呢。对于服务器端可以通过session来存储会话信息,但是怎么和客户端进行对应呢,客户端是通过cookie来存储会话信息的。其实客户端每次请求在http的请求头里边都会自动的存储了cookie信息(如果浏览器支持cookie),服务器通过解析cookie信息来和session存储的会话信息进行对应来确定是不是同一个会话。你可以通过ff浏览器看下,每个http请求的请求头里边都有cookie信息。如果浏览器不支持cookie或者禁用了cookie,那么只能通过程序手动的生成一个标示通过url提交到服务器,同时客户端保存这个标示。

三、web容器

服务器端的web容器,我就说tomcat和apache吧,tomcat是servlet容器,所有jsp页面被编译为servlet然后out.print为html代码,再加上js、css、图片等渲染整个页面。

通过ff浏览器我们发现js和css、图片等都会单独的进行http请求,其实确实是这样。这样对于高并发的系统,显然都交给tomcat会出问题,我们可以通过tomcat+apache,让一些静态的东西,比如完全静态的页面、图片、js、css等有apache管理,在apache下配置虚拟路径即可,这样静态的东西都有apache处理,tomcat只处理html代码可以优化系统的速度。

上边都是我自己总结的,觉得有点乱,谁理解的更深入可以给我回复。

 

 

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics