little_y  

POST:地址栏  http://www.yiis.com/?r=my/act    不显示参数

GET: 地址栏  http://www.yiis.com/?r=my/del&id=32   直接显示传的参数

一:参数

  Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后数据都会 直接显示在 url 上,就像用户点击一个链接一样;

  Post 方法通过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML 表头(header)内一起传送给服务器端交由 action 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理

二:获取传值

   Get 方式需要使用 Request.QueryString 来取得变量的值;

   Post 方式通过 Request.Form 来访问提交的内容

三:传输的数据量

  Get 方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 Post 方法好;

  Post 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击

根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节

  sg:如果可以肯定提交的数据可以一次性提交,否则请尽量用 Post 方法

四:安全方面

  Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;

  Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框

  sg:出于安全性考虑,建议最好使用 Post 提交数据

-----------------对于CGI------------------

一:传值

如果以GET方式传输,所带参数附加在CGI程式的URL后直接传给server,并可从server端的QUERY_STRING这个环境变量中读取;
如果以POST方式传输,则参数会被打包在数据报中传送给server,并可从CONTENT_LENGTH这个环境变量中读取出来。
 
 
posted on 2017-04-19 13:41  little_y  阅读(93)  评论(0)    收藏  举报