黑马程序员技术交流社区
标题:
get与post有什么区别?
[打印本页]
作者:
黄珍
时间:
2012-4-11 05:27
标题:
get与post有什么区别?
只知道get提交地址会发生变化,post提交则不会,到底什么情况用Post,什么情况下该用Get呢?
作者:
翁金鹏
时间:
2012-4-11 05:46
get数据大小有限制的 小数据用get
post数据很大基本足够用 大数据用post
post是通过http的协议来传输的
post更安全一点
作者:
谢栋文
时间:
2012-4-11 07:50
post 地址栏不会出现一大串?bjnghfgreygt这样的东西
如果是get,就会出现了
1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后,如http://www.mdm.com/test.asp?name=asd&password=sad,数据都会 直接显示在 url 上,就像用户点击一个链接一样;Post 方法通过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML 表头(header)内一起传送给服务器端交由 action 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理
2、 Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容
3、Get 方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 Post 方法好;而 Post 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击,根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节
建议:除非你肯定你提交的数据可以一次性提交,否则请尽量用 Post 方法
4、Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框
建议:出于安全性考虑,建议最好使用 Post 提交数据
作者:
林其响
时间:
2012-4-12 08:00
特别是在ajax中XMLHTTPREQUEST
xmlhttp.open("POST","GetDate1.ashx?id="+encodeURI("移动"),false)
xmlhttp.open("GET","GetDate1.ashx?id="+encodeURI("移动")+"&ts"+new Date(),false) 当使用get的时候需要添加“&ts"+new Date(), 这样每次请求所带的参数是不一样的 浏览器就不会缓存 一般情况下使用ajax很少要缓存的
作者:
陈志伟
时间:
2012-4-13 18:50
get是从服务器上获取数据,post是向服务器传送数据。
(1) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
(2) 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。例如:get 提交用 Request.QueryString["aa"].ToString();
post 提交用 Request.Form["aa"].ToString();
(3) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
(4) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2