超文本传输协议(HTTP)为了实现客户端和服务器之间的通信,规定了一系列的请求方法。HTTP的请求方法总共有七种,提交表单时所能用到的有两种:get和post。顾名思义,get意在获取,请求的目的一般是查询和展示等数据获得;post意在发送,请求的目的一般是修改和新增等数据提交。设置form元素的method属性可以改变表单的提交方式,当form元素不存在属性method时,将默认以get为请求方法。下面我们用两个实例来体现这两种请求的区别:
动手写8.1.4 使用get请求
“动手写8.1.4”的表单提交使用的是get请求,在文本域里输入“hello”关键词并点击搜索按钮之后,请求的条件会被显示在浏览器地址栏的URL里,如图8.1.5所示。这种请求方式的好处是可以方便我们分享,比如关于一个搜索结果或者一个购物链接,我们可以很容易地将URL地址复制并发送给别人。
图8.1.5 get请求的条件被显示在地址栏URL里
动手写8.1.5 使用post请求
“动手写8.1.5”是一个与“动手写8.1.4”极度相似的表单,只不过“动手写8.1.5”中将method属性设置为post,同样输入关键词“hello”后点击搜索按钮,跳转页面后浏览器地址栏里的URL中不会出现请求的参数。这种方式有利于保护一些敏感的信息,比如登录表单的账户和密码不会出现在地址栏,这时显然是应该使用post请求而不是get请求。(www.xing528.com)
除了URL上的体现不同之外,get方式一般不会修改数据,而post方式提交的表单一般被认为是对数据进行了修改或新增。所以,当你试图刷新一个post的表单结果页面时,浏览器会弹出一个提示页面,以避免重复提交。如图8.1.6所示:
图8.1.6 刷新一个post请求结果页弹出提示
动手写8.1.6 不设置请求方法
“动手写8.1.6”中没有设置请求method参数,这时候会使用默认的请求方法get,浏览器地址栏中会出现请求的参数。
提示
有些表单既可以使用get请求,也可以使用post请求,这种情况下如果参数较多、较长,我们往往采用post请求。浏览器和服务器对URL的长度有一个最大的限制,这个最大值在不同浏览器中会有所不同,一般为2000~8000个字符,过长的参数可能导致URL被浏览器截断而请求失败。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。