Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26314711
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2010-03-23 13:08:01

HTTP请求方法整理

其中请求类型可以是下面的一种:    
 
.   OPTION:返回请求者和相应者之间可以使用的通信选项,主要用来检测服务器处理能力;  
 
.   GET:获得以URL标示的文件内容或者程序执行结果。服务器根据文件名后缀判断服务内容,比如该URL是静态文本还是一个程序;  
 
.   HEAD:除了不返回响应的信息本体以外,得到的是跟GET一样的信息。一般用来测试链接的有效性、可达性和近期修改;  
 
.   POST:把消息本体中的消息发送到一个URL或者其他类似的服务器端定义行为。通常用来提交一个HTML表单或者一些数据操作活动;    
 
.   PUT:把消息本体中的消息发送到一个URL,跟POST类似,但不常用;  
 
.   DELETE:删除URL指定的资源;  
 
.   TRACE:调用一个远程应用层请求消息回路。发出这个消息的用户终端除了收到原来的消息内容以外,还得到消息在Internet上的传送路径。    

 

GETPOST的本质区别是什么?
      
使用GETform中的数据将编码到url中,而使用POSTform中的数据则在http协议的header中传输。在使用上,当且仅当请求幂等 (字面意思是请求任意次返回同样的结果,本质是请求本身不会改变服务器数据和状态)时使用GET,当请求会改变服务器数据或状态时(更新数据,上传文 件),应该使用POST
区别使用GETPOST意义何在?
     
重复访问使用GET方法请求的页面,浏览器会使用缓存处理后续请求。使用POST方法的form提交时,浏览器机遇POST将产生永久改变的假设,将让用户进行提交确认。当编成人员正确的使用GETPOST后,浏览器会给出很好的缓存配合,时响应速度更快。
form提交阶段的差别
        form
提交的第一步是创建数据集,并根据ENCTYPE对数据集进行编码。ENCTYPE有两个值:multipart/form- dataapplication/x-www-form-urlencoded(默认值),前者可同时用于GETPOST,后者只用于POST。然后 进行数据传输--对于GET方法,数据集使用content type application/x-www-form-urlencoded编码并附在url后面,在这种模式下,数据严格限制为ASCII码;对于POST 使用content type编码字符集并将其构造成消息发送。
在服务器处理部分的差别
      
原则上,除理GETPOST请求是没有分别的。但由于数据通过不同的方法编码,需要有不同的解码机制。所以,方法变化将导致处理请求的代码变化。比如对 cgi,处理GET时通过环境变量获得参数,处理POST请求时则通过标准输入(stdin) 获得数据。

从使用经验,我们有如下总结:
1
get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
2
、对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。两种方式的参数都可以用Request来获得。
3
get传送的数据量较小,不能大于2KBpost传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KBIIS5中为100KB
4
get安全性非常低,post安全性较高。

 

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