Chinaunix首页 | 论坛 | 博客
  • 博客访问: 547638
  • 博文数量: 136
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1343
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 23:18
文章分类

全部博文(136)

文章存档

2011年(28)

2009年(60)

2008年(48)

我的朋友

分类: Java

2008-08-23 00:27:01

   HTTP以及许多以HTTP位基础的扩展协议,都建立在一种非常简单的通信模型的基础之上,他的工作原理如下:一个客户端(通常是一个WEB浏览器)为得到服务器上的一种资源(resource)面向服务器发出一个请求(rquest),服务器则返回一个与所请求的资源相对应的应答(response)(或者,如果服务器由于某种原因不能提供该资源的话,就返回一个带有错误消息的应答)。资源可以是若干内容,比方说一字不差地返回给浏览器的简单的HTML文件,或者一个产生动态应答的程序。
    应该注意:
 HTTP是一种无状态协议。这就是说,服务器在发送应答后,不会保留关于客户端的任何信息,因此也无法因此也无法分辨来自于同一客户端的多个请求是相关的。
 WEB应用程序无法很容易地提供即时反馈,这种即时反馈通常在字处理软件这样的图形用户界面(GUI)应用程序或传统的客户端/服务器端应用程序中才会发生。客户端和服务器之间的每一次交互都需要一次请求/应答的交换过程。如果每当用户在列表框中选择了一项或填写了某个表单元素时就执行一次请求/应答交换的话,那么对于绝大多数互联网用户所拥有的带宽来说是很繁重的任务。
  在这种协议中,没有任何信息来告诉服务器一个请求是如何产生的,因此服务器也就无法辨别在客户端上产生各种请求所采用的方法。例如,HTTP协议不允许WEB服务器区分单击一个连接或提交一个表单所产生的显示请求和由重设浏览器大小或使用浏览器的“后退”按钮所产生的隐式请求。另外,HTTP中不包含任何服务器端调用客户端特有函数的方法,例如在浏览器历史记录列表中回退,或把应答发送到某个特定的框架中去。同样,浏览器也无法检测到用户何时关闭浏览器。

阅读(1704) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~