指引

表单在网页应用中十分重要,基本上任何一个网站都必须使用到表单元素,所以表单的美观和易于交互对于网站设计就变得十分重要。HTML5对目前Web表单进行了全面提升,使得我们使用表单更加智能。它在保持了简单易用的特性的同时,还增加了许多内置的控件或者控件属性来满足用户的需求,提升用户体验,并且同时减少了开发人员的编程。HTML5主要对表单的一下方面进行了改进:更自由的表单结构、多样的输入类型、新增的表单属性。

HTML表单中的get和post方法

超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP的工作方式是客户机与服务器之间的请求-应答协议。在客户机和服务器之间进行请求-相应时,两种最常被用到的方法是:GET和POST。

当用户在HTML表单(HTML Form)中输入信息并提交之后,有两种方法将信息传送到Web服务器(Web Server)。一种方法是通过URL,另一种是在HTTP Request的body中。前一种方法,我们使用HTML Form的method = “get”,后一种方法我们使用HTML Form中的method = “post”。

1  GET方法

GET方法的作用是从指定的资源请求数据。当HTML表单中的method属性的值为“get”时被提交后,URL发生了改变,在URL里显示HTML Form参数的name/value值。通过下面的案例来看看get是如何提交form数据的,代码如下:

将上包含上述代码的html文件在浏览器中打开,并为表单填充数据后提交,我们可以看见地址栏中的URL地址发生了改变。效果如图1所示:

图1  HTML表单的get方法

通过上图,我们可以看到浏览器栏里的URL是:http://www.itxdl.cn/h5book/5/get.php? name=itxdl&age=10。注意get.php后面的字符串?name=itxdl&age=10,这里有两对name/value数据,前面加一个问号,每对name/value数据用&符号隔开。

2  POST方法  

POST方法的作用是向指定的资源提交要被处理的数据。跟“get”方法不一样的是,当HTML表单中的method属性的值为“post”时被提交后,URL不会改变,也就是不在URL里显示HTML Form的数据。

3  HTML表单中get和post的区别

一般在浏览器中输入网址访问资源都是通过GET方式,在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交。让我们看看两种提交方式的区别:

1.请求的数据

(1)GET请求,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分隔URL和传输数据,多个参数用&连接。

(2)POST请求,把提交的数据放置在HTTP包的包体中。

因此,GET提交的数据会在地址栏中显示出来,而POST提交时,地址栏不改变。

2.传输数据的大小

(1)GET请求,特定的浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节。对于其它浏览器,如Netscape、FireFox等,理论上没有限制,其限制取决于操作系统的支持。

(2)POST请求,由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交的数据大小进行限制,Apache、IIS6都有各自的配置。

HTTP协议没有对传输的数据大小进行限制,HTTP规范也没有对URL长度进行限制。

3.安全性

(1)GET请求,可被缓存,会保留在浏览器历史记录中,可被收藏为书签。

(2)POST请求,不会被缓存,也不会保留在浏览器历史记录中,不可被收藏为书签。

POST的安全性比GET的安全性高。通过GET提交数据,若表单数据包含用户名和密码,那么用户名和密码将明文出现在URL上,而且登录页面也可能被浏览器缓存,当其他人查看浏览器的历史记录时就可以轻松拿到你的账号和密码了。除此之外,使用GET提交数据还可能造成Cross-site request forgery攻击。所以GET请求不应该在处理敏感数据时使用。

IT兄弟连 HTML5教程 HTML5表单 HTML表单中的get和post方法的更多相关文章

  1. IT兄弟连 HTML5教程 HTML5表单 H5表单提交综合实例

    这里我们创建一个填写个人基本信息的表单,使用了表单元素有<input>输入框.<datalist>选项列表.<textarea>文本框,通用的表单输入类型有text ...

  2. 第九课 表单及表单控件 html5学习4

    表单有由表单域.提示文本.表单3部分构成 一.表单控件 input 控件 1.<input />单标签2.input属性: 可以通过type属性变换形状 value默认值 name名称 c ...

  3. 8款最新CSS3表单 环形表单很酷

    当我们在网站上注册登录还是提交评论,都需要用到表单,今天我们来分享8款最新CSS3表单,有几个效果很酷很特别,有些也非常实用,一起来看看. 1.CSS3环形特色表单 转圈切换表单焦点 这款CSS3表单 ...

  4. Bootstrap 表单和图片 (内联表单,表单合组,水平排列,复选框和单选框,下拉列表,校验状态,添加额外的图标,控制尺寸,图片)

    一.表单 基本格式 注:只有正确设置了输入框的 type 类型,才能被赋予正确的样式. 支持的输入框控件 包括:text.password.datetime.datetime-local.date.m ...

  5. yii YII小部件 创建登录表单表单 Login表单

    YII框架必须遵循其表单的创建方法 登录模型错做与数据库操作模型是一致的,不同的是不跟数据库交互 ,用的是小部件,在创建表单之前,要在用户控制模块完成以下代码 protected --models - ...

  6. phpcms v9自定义表单提交后返回上一页实现方法

    PHPcms v9中提交自定义表单后默认都是回到首页的,是不是感觉很不爽! 接下来,就说下phpcms v9自定义表单提交后返回上一页实现方法. 1.找到这个文件 phpcms\modules\for ...

  7. JavaScript 客户端JavaScript之Document对象中的表单和表单元素

    Form对象 代表一个HTML表单(document可以有多个表单元素) 表单访问 document.form[document.forms.length-1] 访问表单元素 document.for ...

  8. bootstrap 基础表单 内联表单 横向表单

    bootstrap 基础表单 内联表单 横向表单 <!DOCTYPE html> <html> <head> <title></title> ...

  9. 统一修改表单参数(表单提交的空字符串统一转null)

    统一修改表单参数(表单提交的空字符串统一转null) 1.介绍: 我们业务中有时会遇到提交的表单中某个参数为空字符串,导致后台接受的为空字符串("")而不是我们理想中的null,会 ...

  10. <form> 标签 // HTML 表单 // from 表单转换成json 格式

    <form> 标签   // HTML 表单    // from 表单转换成json 格式 form 表单,对开发人员来说是在熟悉不过的了,它是页面与web服务器交互时的重要信息来源 表 ...

随机推荐

  1. ELK-logstash基本用法

    一:logstash介绍 Logstash在elk系统中为数据存储,报表查询和日志解析创建了一个功能强大的管道链.Logstash提供了多种多样的 input,filters,codecs和outpu ...

  2. Vue项目中实现用户登录及token验证

    学习博客:https://www.cnblogs.com/web-record/p/9876916.html

  3. Oracle用户、角色、权限

    一.Oracle权限 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言) 对象权限:某种权限用户对其它用户的表或视图的存取权限.(是针对表或视图而言的) 1.Oracle系统权限 ​ o ...

  4. mysql #1062 - Duplicate entry '2147483647' for key '*'

    一.当我看到这报错的时候,第一眼是认为存在重复记录,但是找了很久没找到2147483647 二.一条条的插入数据(有一批数据),直到找到报错的数据,发现是长度超了,定义了int插入的值却有11位长,哭 ...

  5. git 知识,适合新手 滤清思路

    1,密钥 (公钥和私钥) @ 公钥放在服务器上(说白了这里的服务器就是远程仓库, 就是谁建立的远程仓库这个公钥就放在他的ssh设置那) @ 私钥 放在本地就行,不用动,就是你生产密钥的.ssh 文件里 ...

  6. 视频剪辑什么鬼?Python 带你高效创作短视频

    ​阅读文本大概需要 10 分钟. 近两年,抖音.快手将短视频推到风口浪尖上,要生产出高质量的视频,离不开视频剪辑这一环节:在全民剪片浪潮中,大众使用最多的剪辑软件如:Pr.FCPX.剪印.Vue 等. ...

  7. Another git process seems to be running in this repository

    今天在推送项目的时候git突然报如题的错误.查了一下是由于git被另外一个程序占用,产生原 原因在于Git在使用过程中遭遇了崩溃,部分被上锁资源没有被释放. 解决方案也很简单,在git中找到对应的in ...

  8. centos安装与配置keepalived+nginx高可用

    一.安装启动keepalived 1.下载keepalived 在centos系统中,用wget下载最新版本: mkdir tool cd tool wget https://www.keepaliv ...

  9. 由于ie浏览器ajax缓存 导致layui table表格重载失败的解决办法

    where: { time:new Date()//增加一个数据接口的额外参数→时间戳 }

  10. 微信小程序—支付宝小程序与微信小程序的不同点对比

    支付宝小程序语法 http://caibaojian.com/aliapp-wxapp.html https://www.cnblogs.com/bgwhite/p/9447639.html http ...