• form元素的method属性用来指定发送form的http方法

    1.   使用get时,form数据集被附加到form元素的action属性所指定的URL后面,仅仅是拼接一个URL,然后直接向服务区请求数据,需要提交给服务器的数据集包含在URL中。Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接。
    2.   使用post时,form数据集被包装在请求的body中并发给服务器,然后向服务器请求数据。Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。

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

  •  get和post的区别

1 安全性
如果用get提交一个验证用户名和密码的form,一般认为是不安全的。因为用户名和密码将出现在URL上,进而出现在浏览器的历史记录中。显然,在对安全性有要求的情况下,应该使用post。

2 编码
HTML 4.01 specification指出,get只能向服务器发送ASCII字符,而post则可以发送整个ISO10646中的字符(如果同时指定enctype="multipart/form-data"的话)。

注意get和post对应的enctype属性有区别。enctype有两个值,默认值为application/x-www-form-urlencoded,而另一个值multipart/form-data只能用于post。

3 提交的数据的长度
HTTP specification并没有对URL长度进行限制,但是IE将请求的URL长度限制为2083个字符,从而限制了get提交的数据长度。测试表明如果URL超出这个限制,提交form时IE不会有任何响应。其它浏览器则没有URL的长度限制,因此其它浏览器能通过get提交的数据长度仅受限于服务器的设置。

而对于post,因为提交的数据不在url中,所以通常可以简单地认为数据长度限制仅受限于服务器的设置。

4 缓存
由于一个get得到的结果直接对应到一个URI,所以get的结果页面有可能被浏览器缓存。而post一般则不能,参考5。

5 引用和SEO
出于和上面相同的原因,我们可以用一个URI引用一个get的结果页面,而post的结果则不能,所以必然不能被搜索引擎搜到。

  •  正确地使用get和post

W3C的官方建议是:当且仅当form是幂等(idempotent)的时候,使用get。幂等是一个数学上的术语,其定义是:对于一个函数f : D -> D,如果D中的所有x满足f (f x) = f x,那么这个函数是幂等的。HTTP specification(比如RFC 2616)中,将幂等解释为:多次相同请求产生的副作用,和一次请求的副作用相同。

打个比方,如果你提交一个form会从Google上查询一个关键词,那么我们可以认为这个form是幂等的,因为1次提交和10次提交的副作用是差不多的(10次查询可能会多消耗一些电能);如果你提交一个form是订购一个终极大黄蜂(Utimate bumblebee),那么这就不是幂等的:要是你不小心多提交了1次form的话,你可能会被老婆乱骂,你不小心又提交了10次的话,你可能就破产了——一次提交和多次提交的副作用明显不同,所以这不是幂等的。

所以,一般来说,如果提交这个请求纯粹只是从服务端获取数据而不进行其他操作,并且多次提交不会有明显的副作用,应该使用get。比如:

搜索引擎的查询:http://www.google.com/search?q=yandixin; 
分页:ArticleList.asp?Page=1。 
如果提交这个请求会产生其它操作和影响,就应该使用post。比如:修改服务器上数据库中的数据; 发送一封邮件;删除一个文件。 

转载于:https://www.cnblogs.com/whytohow/p/4776957.html

form的get与post方式的区别(转)相关推荐

  1. form表单的提交方式(get和post的区别)

    form表单的提交方式 请求方式有:POST.GET.OPTIONS.DELETE.TRACE.PUT.CONNECT 主要请求方式 form表单提交方式有很多,常用的有post和get post和g ...

  2. 表单提交中Get和Post方式的区别及EncType表明提交数据的格式详解

    表单提交中Get和Post方式的区别 1. get是从服务器上获取数据,post是向服务器传送数据. 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对 ...

  3. JSP中get和post请求方式的区别及乱码解决方法

    JSP中get和post请求方式的区别及乱码解决方法 get提交方式:默认method="get" 和 地址栏.超链接请求方式默认都属于get提交方式 form表单的method属 ...

  4. POST—GET—两种提交方式的区别

    主要区别: 安全性 长度限制 数据结构. 总结起来: get方式:以URL字串本身传递数据参数,在服务器端可以从UERY_STRING'这个变量中直接读取,效率较高,但缺乏安全性,也无法来处理复杂的数 ...

  5. post和get请求方式的区别

    post和get请求方式的区别 表单提交中get和post方式的区别有5点: 1.get是从服务器上获取数据,post是向服务器传送数据.2.get是把参数数据队列加到提交表单的ACTION属性所指的 ...

  6. ajax 请求的时候 get 和 post 方式的区别?

    ajax 请求的时候 get 和 post 方式的区别? GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器. GET请求有数据长度限制(大约是2K ...

  7. 表单提交中get和post方式的区别

    表单提交中get和post方式的区别有5点  1.get是从服务器上获取数据,post是向服务器传送数据.  2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段 ...

  8. request.form()和request()和request.data的区别

    Request.Form:获取以POST方式提交的数据(接收Form提交来的数据): Request.QueryString:获取地址栏参数(以GET方式提交的数据) Request:包含以上两种方式 ...

  9. 模型评估指标micro avg、macro avg和weighted avg的计算方式及区别

    模型评估指标micro avg.macro avg和weighted avg的计算方式及区别-技术圈

最新文章

  1. 设置user-agent骗过服务端安全检查
  2. 机器人日行十万步却无需动力源!究竟如何完美的机械结构让你开始怀疑人身...
  3. 详解集合之HashMap——HashMap内部结构,自动扩容机制,为什么需要重写hashcode和equals方法
  4. 里能嵌jquery吗_白芸豆里的淀粉阻断成分,能帮助减肥是真的吗?
  5. Cesium中常用的一些地理数据文件 以及数据相关的东西
  6. 在家办公上课成强需求 钉钉峰值流量暴增百倍
  7. 数据挖掘:数据预处理相关概念
  8. Apple在线商店iphone5, ipad mini到货提醒 - 邮件
  9. 手工配置Service的过程中。
  10. Android混淆和加固详解
  11. 安装NET Framework 错误代码0x800F081F怎么解决
  12. 智能电子后视镜MFC01-LCD通用版 使用说明与简单故障排查
  13. KEPServer EX6的Modbus、MQTT和REST Server一站式配置整理说明
  14. Midjourney之外21款免费的AI Image画图网站集合
  15. Elasticsearch学习笔记(三)安装hanlp中文分词插件及同义词配置
  16. 网络状态码(HTTP状态码 )
  17. c语言画伯努利分布图像,C++ - 随机生成器 伯努利分布(bernoulli distribution) 的 详解 及 代码...
  18. 线性表-链式存储结构
  19. go依赖包下载加速方法及github加速
  20. 前端基础(五)_CSS文本文字属性、背景颜色属性

热门文章

  1. html圆如何找到垂直中心线,一种用于找中心线及圆心的装置的制作方法
  2. android 跑windows软件,Windows 10 Mobile用户现可让设备跑上Android软件
  3. sklearn knn 算法
  4. 安装LoadRunner 11时弹窗提示Micosoft Visual C++ 2005 SP1 可再发行组件包(X86):'命令行选项语法错误。键入命令 / ? 可获得帮助信息'。
  5. Div层悬浮实现HTML5 Canvas背景动画
  6. 自动化设计-框架介绍 TestCase
  7. 为什么要设计好目录结构?
  8. 在阿里云上遇见更好的Oracle(四)
  9. 网站开发笔记【四】css hack技术
  10. [原创]一个shell小案例