黑马程序员技术交流社区

标题: 想听听各位对get和post两种请求方式的自己的理解? [打印本页]

作者: ckz0409    时间: 2012-7-5 09:33
标题: 想听听各位对get和post两种请求方式的自己的理解?
想听听各位对get和post两种请求方式的自己的理解?
作者: 许庭洲    时间: 2012-7-5 09:37
1,get和post两种请求方式各有千秋;
2,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗;
3,当用在分页程序中时,用Get方式就比用Post好。
作者: ckz0409    时间: 2012-7-5 10:10
许庭洲 发表于 2012-7-5 09:37
1,get和post两种请求方式各有千秋;
2,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说 ...

多谢热情回答!:handshake
作者: 许庭洲    时间: 2012-7-5 10:15
ckz0409 发表于 2012-7-5 10:10
多谢热情回答!

不客气!
作者: 孙宁宇    时间: 2012-7-5 10:16
简单的说 post更安全 它是把数据和表单一起进行提交
get的数据是放在连接串后面 如果要是类似登录操作的话
密码是显示在浏览器上的 而且数据长度好像是有限制的

作者: 许楠    时间: 2012-7-5 10:20
get是从服务器上获得数据 post是传递数据
get 受URL长度限制,传输量小  post可以传输大量数据
get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 get 方式提交数据时,用户名和密码将出现在 URL 上,所以表单提交建议使用 post 方法
作者: 冯奎智    时间: 2012-7-5 10:56
建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
作者: xiaozehope    时间: 2012-7-5 12:00
1.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。
POST把提交的数据则放置在是HTTP包的包体中。

2."GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据。

3.在ASP.net中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。

4.POST的安全性要比GET的安全性高。

作者: 朱灿    时间: 2012-7-5 12:10
Get是从服务器上获取数据,Post是向服务器传送数据。
Get是把参数数据队列加到提交表单的Action属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到,
而Post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML header内一起传送到Action属性所指向的URL地址。
作者: 程艳伟    时间: 2012-7-5 12:34
get用在不是秘密的传参上,post用在秘密的传参上,例如密码
作者: 黑马杨凯    时间: 2012-7-5 18:31
get安全性较post低,在URL中会有显示,重要数据不适合,而且允许提交的数据有限
post方式提交的数据放在HTTP的请求数据中,可以用来上传较大的数据,安全性相对也更高
作者: 王志波    时间: 2012-7-5 21:12
GET传值的时候地址有有显示比如admin=888什么的,安全又隐患,好像不能传较大的数据吧。
POst应该可以传大数据,安全性相对get要高。
作者: 刘旺    时间: 2012-7-7 11:36
GET是从服务器上获取数据,POST是向服务器传送数据。
GET 是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,例如(url=asp.aspx?id=1)在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。
GET传送的数据量较小,不能大于2KB(这主要是因为受URL长度限制)。POST传送的数据量较大,一般被默认为不受限制。但理论上,限制取决于服务器的处理能力。
GET 安全性较低,POST安全性较高。因为GET在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记 录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一 同显示在用户面前。POST的所有操作对用户来说都是不可见的。

作者: 戴水平    时间: 2012-7-7 13:10
GET和POST只是发送机制不同,并不是一个取一个发!
get 是从服务器上查询数据,如果用到查询的可以用get并且get得传输的数据大小有限制上限1024B,数据在URL栏中可以看到aspx.index?id=1类似的字符串,通过Request.QueryString获取请求的参数,数据的安全性较差一些主要用于查询
post 是向服务器修改数据,用到post 必须要跟表单(form)放在一起使用,提交后在地址栏看不到提交的数据,理论上post 是没有限制传输数据大小的。在另一个页面要获取POST请求参数用Request.Form
作者: 魏振龙    时间: 2012-7-7 22:54
做点补充:
Get请求有如下特性:它会将数据添加到URL中,通过这种方式传递到服务器,通常利用一个问号?代表URL地址的结尾与数据参数的开端,后面的参数每一个数据参数以“名称=值”的形式出现,参数与参数之间利用一个连接符&来区分。
Post请求有如下特性:数据是放在HTTP主体中的,其组织方式不只一种,有&连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。
通过以上的说明,现在我们大致了解了什么时候用get什么时候用post方式了吧,对!当我们在提交表单的时候我们通常用post方式,当我们要传送一个较大的数据文件时,需要用post。当传递的值只需用参数方式(这个值不大于2KB)的时候,用get方式即可。
现在我们再看看通过URL发送请求时,get方式和post方式的区别。用下面的例子可以很容易的看到同样的数据通过GET和POST来发送的区别, 发送的数据是 username=张三 :
GET 方式, 浏览器键入 http://localhost?username=张三


作者: 侯慧杰    时间: 2012-7-8 17:09
get是请求从服务端获取数据,post是请求服务端处理所提交的数据




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2