get和post比较

导读:本篇文章讲解 get和post比较,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

method中get和post解析,form表单中get和post的区别

get和post的定义

  • 采用URL请求路径传输参数。参数拼接在URL后面。
    • URL,全称Uniform Resource Locator,中文解释为统一资源定位符
    • 是因特网的万维网服务程序上用于指定信息位置的表示方法,是互联网上标准资源的地址。

URL中不拼接参数信息,参数在传输过程中不可见。

  • 参数传输过程中隐私性较差,直接在URL后面。
  • 路径可以容纳的数据有限,只能传递少量参数。
  • 所有请求默认就是get。
  • Get方式传参,不是非得在form表单里面,可以手动写,在超链接的href里面直接在地址后面加?id=2。
    http://localhost:8080/JavaWeb/student?method=deleteById&id=23
    http://localhost:8080/JavaWeb/student?name=zhangsan&age=12&gender=男

    post

  • 采用实体内容传参数。
  • 参数在传输过程中不可见,隐私性好。
  • 实体内容专门用来传输数据,大小没有限制。
  • 使用:在form上加method=”post

get与post的联系

get和post都是提供信息传输,都能够在浏览器和服务器之间进行信息的传输。

get和post传输的信息都是由浏览器通过request参数进行获取的。

get与post的区别

1、缓存

Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;由于一个get得到的结果直接对应到一个URL,所以get的结果页面有可能被浏览器缓存,而post一般不能。

Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。

2、安全性

Get是不安全的,因为在传输过程,数据被存放在请求的URL地址中,这样就可能会有一些隐私的信息被第三方看到。所以在对安全性有要求的情况下,应该使用post

3、提交数据长度

Get方式传输的数据量非常小,一般限制在 2KB 左右,但是执行效率却比 Post 方法好;而 Post 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击,根据微软方面的说法,微软对用 Request.Form()可接收的最大数据有限制,IIS4中为 80KB 字节,IIS5 中为 100KB 字节。

IE将请求的URL长度限制为2083个字符,从而限制了get提交的数据长度,如果URL超出了这个限制,提交form时IE不会有任何反映。

4、编码

get只能向服务器发送ASCII字符,而post则可以发送整个ISO 10646中的字符。

get和post对应的enctype属性有区别。enctype有两个值,默认值为application/x-www-form-urlencoded(在发送前编码所有字符)

另一个是multipart/form-data(用于文件上传)只能用于post

get和post本质区别

1、Get是用来从服务器上获得数据,而post是用来向服务器上传递数据

如果采用Post方法,浏览器将会按照下面两步来发送数据。

首先浏览器将action属性中指定的表单处理服务器建立联系,一旦建立连接之后,浏览器就会按分段传输的方法将数据发送给服务器。

在服务器端,一旦Post样式的应用程序开始执行时,就应该从一个标志位置读取参数,而一旦读到参数,在应用程序能够使用这些表单值以前,必须对这些参数进行解码,用户特定的服务器会明确指定应用程序应该如何接受这些参数。

采用Get方法:

浏览器会直接与表单处理服务器建立连接,然后直接在一个传输步骤中发送所有的表单数据,然后直接在一个传输步骤中发送所有的表单数据。

2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。

如何正确选择get和post

当且仅当form是幂等的时候,使用get。

幂等:多次相同的请求产生的副作用,和一次请求的副作用相同。

如果提交请求纯粹只是从服务器端获取数据而不是进行其他操作,并且多次提交不会有明显的副作用,应该使用get。

比如:搜索引擎的查询(http://www.google.com/search?q=abc)和分页(user.do?page=1)

如果提交这个请求会产生其他操作和影响,就应该使用post。

比如:修改服务器上数据库中的数据;发送一封邮件;删除一个文件等

另一个要考虑因素是安全性。

若符合下列任一情况,则用post方法:

a.请求的结果有持续性的副作用,例如:数据库内添加新的数据行。

b.若使用get方法,则表单上收集的数据可能让URL过长。

c.要传送的数据不是采用ASCII编码。

若符合下列任一情况,则用get方法:

a.请求是为了查找资源,html表单数据仅用来搜索。

b.请求结果无持续性的副作用。

c.收集的数据及html表单内的输入字段名称的总长不超过1024个字符。

本文整理自其他博主

method中get和post的解析

form表单中method的get和post区别

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/91174.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!