IT兄弟连 HTML5教程 HTML5表单 HTML表单中的get和post方法

指引
表单在网页应用中十分重要,基本上任何一个网站都必须使用到表单元素,所以表单的美观和易于交互对于网站设计就变得十分重要。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方法的更多相关文章
- IT兄弟连 HTML5教程 HTML5表单 H5表单提交综合实例
这里我们创建一个填写个人基本信息的表单,使用了表单元素有<input>输入框.<datalist>选项列表.<textarea>文本框,通用的表单输入类型有text ...
- 第九课 表单及表单控件 html5学习4
表单有由表单域.提示文本.表单3部分构成 一.表单控件 input 控件 1.<input />单标签2.input属性: 可以通过type属性变换形状 value默认值 name名称 c ...
- 8款最新CSS3表单 环形表单很酷
当我们在网站上注册登录还是提交评论,都需要用到表单,今天我们来分享8款最新CSS3表单,有几个效果很酷很特别,有些也非常实用,一起来看看. 1.CSS3环形特色表单 转圈切换表单焦点 这款CSS3表单 ...
- Bootstrap 表单和图片 (内联表单,表单合组,水平排列,复选框和单选框,下拉列表,校验状态,添加额外的图标,控制尺寸,图片)
一.表单 基本格式 注:只有正确设置了输入框的 type 类型,才能被赋予正确的样式. 支持的输入框控件 包括:text.password.datetime.datetime-local.date.m ...
- yii YII小部件 创建登录表单表单 Login表单
YII框架必须遵循其表单的创建方法 登录模型错做与数据库操作模型是一致的,不同的是不跟数据库交互 ,用的是小部件,在创建表单之前,要在用户控制模块完成以下代码 protected --models - ...
- phpcms v9自定义表单提交后返回上一页实现方法
PHPcms v9中提交自定义表单后默认都是回到首页的,是不是感觉很不爽! 接下来,就说下phpcms v9自定义表单提交后返回上一页实现方法. 1.找到这个文件 phpcms\modules\for ...
- JavaScript 客户端JavaScript之Document对象中的表单和表单元素
Form对象 代表一个HTML表单(document可以有多个表单元素) 表单访问 document.form[document.forms.length-1] 访问表单元素 document.for ...
- bootstrap 基础表单 内联表单 横向表单
bootstrap 基础表单 内联表单 横向表单 <!DOCTYPE html> <html> <head> <title></title> ...
- 统一修改表单参数(表单提交的空字符串统一转null)
统一修改表单参数(表单提交的空字符串统一转null) 1.介绍: 我们业务中有时会遇到提交的表单中某个参数为空字符串,导致后台接受的为空字符串("")而不是我们理想中的null,会 ...
- <form> 标签 // HTML 表单 // from 表单转换成json 格式
<form> 标签 // HTML 表单 // from 表单转换成json 格式 form 表单,对开发人员来说是在熟悉不过的了,它是页面与web服务器交互时的重要信息来源 表 ...
随机推荐
- kubernetes-集群备份和恢复
一.备份 思路: ①集群运行中etcd数据备份到磁盘上 ②kubeasz项目创建的集群,需要备份CA证书文件,以及ansible的hosts文件 [deploy节点操作] 1:创建存放备份文件 ...
- springboot 使用阿里云短信服务发送验证码
一.申请阿里云短信服务 1.申请签名 2.申请模板 3.创建accesskey(鼠标悬停在右上角头像) 二.代码实现 1.springboot引入maven依赖 <dependency> ...
- Web基础了解版04-XML-Tomcat-Http
XML 什么是XML - Tomcat - Http XML:eXtensible Markup Language (可扩展标记语言). XML 是一种标记语言,很类似 HTML. XML 的设计宗旨 ...
- 基于Vue的前后端分离项目实践
一.为什么需要前后端分离 1.1什么是前后端分离 前后端分离这个词刚在毕业(15年)那会就听说过,但是直到17年前都没有接触过前后端分离的项目.怎么理解前后端分离?直观的感觉就是前后端分开去做,即功 ...
- Navicat Premium从远程Mysql数据库复制到本地数据库的方法
之前做在本地测试总是先去现在下一份数据库的sql,然后再在本地建一个相同的,导入sql.然后觉得有点麻烦,现在发现了一个直接远程直接复制一份到本地的方法 工具:Navicat Premium 1.先连 ...
- CentOS 服务器版安装教程(超级详细图解)
使用安装说明:http://www.jb51.net/os/85895.html
- ESLint + Prettier + husky + lint-staged 规范统一前端代码风格
写在前面: ESLint: Find and fix problems in your JavaScript code. Prettier: Prettier is an opinionated co ...
- Shell—详解$( )、$(( ))、``与${ }的区别
https://www.jianshu.com/p/2237f029c385 https://www.cnblogs.com/chenpython123/p/11052276.html https:/ ...
- Castle DynamicProxy基本用法(AOP)
本文介绍AOP编程的基本概念.Castle DynamicProxy(DP)的基本用法,使用第三方扩展实现对异步(async)的支持,结合Autofac演示如何实现AOP编程. AOP 百科中关于AO ...
- 一个故事搞懂Java并发编程
最近在给别人讲解Java并发编程面试考点时,为了解释锁对象这个概念,想了一个形象的故事.后来慢慢发现这个故事似乎能讲解Java并发编程中好多核心概念,于是完善起来形成了了这篇文章.大家先忘记并发编程, ...