首页 > 试题广场 >

GET和POST的区别

[问答题]
1.get是从服务器上获取数据,post是向服务器传送数据。
2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5.get安全性非常低,post安全性较高。
6.HTTP 定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST。事实上 GET 适用于多数请求,而保留 POST 仅用于更新站点。根据 HTTP 规范,GET 用于信息获取,而且应该是 安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。 比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。POST 请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。仍然以新闻站点为例,读者对文章的注解应该通过 POST 请求实现,因为在注解提交之后站点已经不同了
7.在FORM提交的时候,如果不指定Method,则默认为GET请求,Form中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原 样发送,但空格转换为“+“号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
编辑于 2015-09-03 09:47:20 回复(0)
更多回答
POST也可以Param和Form同时穿参哦。
发表于 2021-09-18 18:04:25 回复(0)
感觉关于这个问题,大部分的答案都是在误人子弟啊
HTTP方法 是根据意图区分的,HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。
GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
表面区别:

1. 传参方式

1. GET可以通过URL直接传参
2. 两者都可以通过body传参

2. 长度

1. header和body都没有对长度的限制
2. URL的长度受到部分早期浏览器的限制
3. URL的长度还可能受到服务器的限制,由于URL的实际超长或者设定其Content-Length较大值会引起服务器最大并发数下降或者资源空耗
4. 2和3间接限定了URL方式发起GET方法的长度

3. 安全性

1. GET不会修改服务端数据,POST可以修改数据
2. URL方式发起GET请求,参数会明文暴露
3. 使用GET提交数据还可能会造成Cross-site request forgery攻击
4. 本质上安全性无区别

编辑于 2016-04-07 14:41:39 回复(2)
GET    能看到,不安全,容量小,有缓存     作用:分享
POST    看不到,相对安全,容量大(2GB),没缓存

发表于 2015-10-19 23:06:35 回复(0)
从本质上理解,两者都是http发送请求的方式,HTTP请求都是基于TCP/IP协议,所以在传输上并没有区别;
不同的地方:
从幂等性的角度,get是幂等的,而post不是。(幂等表示执行相同的操作,结果也是相同的);
get用于获取资源,是http默认的请求方法;post用来修改服务器上的数据;
get携带的参数在URL上,通过key/value的形式,是可见的;post参数在body中,相对来说是更安全的;但HTTP是明文传输,无论是url还是body传输,都存在安全隐患;
get回退浏览器无害,post会再次提交请求(get方法回退后浏览器在缓存中拿结果,post每次都会创建新资源);
get提交的数据大小有限制,post没有(浏览器对URL的长度有限制,get本身没有限制);
get可以被缓存,post不能;
get只允许ASCII字符,post没有限制;
get会保存在浏览器历史记录中,post不会;
get可收藏为书签,post不可以;
发表于 2022-08-17 17:06:18 回复(0)

GET:GET一般用来获取数据;使用url传参;发送信息数据量有限;不安全,参数会暴露在url中;

POST:POST一般用来更新数据;通过提交表单传参;发送的信息量没有限制;安全,参数对用户不可见;

POST使用场景:需要向服务器传送大量数据时;需要安全性高时;需要更新服务器上的文件或者数据时;

发表于 2019-10-15 17:01:19 回复(0)
GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符 POST:一般用于修改服务器上的资源,对所发送的信息没有限制 GET方式需要使用 Request.QueryString 来取得变量的值 POST方式通过 Request.Form 来获取变量的值 也就是说 Get 是通过地址栏来传值,而 Post 是通过提交表单来传值。 在以下情况中,请使用 POST 请求: 1. 无法使用缓存文件(更新服务器上的文件或数据库) 2. 向服务器发送大量数据(POST 没有数据量限制) 3. 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
发表于 2019-05-03 13:57:15 回复(0)
区别:
GET:一般用于信息的获取,使用url传参,发送信息量有限制
POST:一般用于服务器上的资源的修改,通过提交表单传参,发送的信息量没有限制
    
    使用POST的场景:
    1、向服务器发送大量数据时
    2、需要更安全的传输时(GET的参数会在url中暴露,POST的参数用户不可见)
    3、需要更新服务器上的文件或数据库时
    
发表于 2018-10-16 09:36:49 回复(0)
1、所能携带数据的大小不同(get2000、post无限制); 2、传值方式不同(get地址栏、post报文),post比get安全; 使用post: 提交大量数据,提交特殊字符,提交敏感数据或更新服务器数据
编辑于 2018-05-11 09:25:22 回复(0)
GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符
POST:一般用于修改服务器上的资源,对所发送的信息没有限制

GET方式需要使用 Request.QueryString 来取得变量的值
POST方式通过 Request.Form 来获取变量的值
也就是说 Get 是通过地址栏来传值,而 Post 是通过提交表单来传值。

在以下情况中,请使用 POST 请求:
1. 无法使用缓存文件(更新服务器上的文件或数据库)
2. 向服务器发送大量数据(POST 没有数据量限制)
3. 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
发表于 2015-07-27 15:16:19 回复(0)