表单
表单主要用于向服务器提交数据,标签是form,包含两个属性:action、method。
action=url指定一来处理提交表单的格式.它可以是一个URL地址(提交给程式)或一个电子邮件地址。
method=get或post指明提交表单的HTTP方法。(get和post方法的区别在后面会写)
1、文本框
<input type="text" name="" value="">(input是单标签)
2、密码框
<input type="password" name="" value="">
3、单选框
<input type="radio" name="sex" value="male" id="male">
<input type="radio" name="sex" value="male" id="female">
ps:将多个单选框的name值设成一样的就可以在他们中间只选一个(同名相斥)
4、复选框
<input type="checkbox"name="math"value="f">
5、下拉框
<select>
<option>1888</option>
</select>
6、隐藏域
<input type="hidden" name="hid" value="">
可以用来向服务器提交一些不想被其他人看到的数据。
7、文件上传
<input type="file" name="">>
8、提交按钮
<input type="submit" name="su" value="提交按钮">
9、重置按钮
<input type="reset" name="re" value="重置按钮">
10、普通按钮
<button type="submit"></button>
ps:在实际应用中我们并不推荐使用按钮,包括提交按钮和重置按钮,因为他们都有默认样式(很丑)我们往往推荐使用超链接加css制作按钮。
11、文本域
<textarea name="texts" cols="10" rows="10" value="" id=""></textarea>
post方法与get方法
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。因为对资源的增,删,改,查操作,其实都可以通过GET/POST完成,所以我们只介绍post和get方法。
首先,我们先从表面上来看两者的区别
1、GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,如:%XX中的XX为该符号以16进制表示的ASCII。
POST把提交的数据则放置在是HTTP包的包体中。简单来说就是get是不加密的而post是加密的。
2、GET产生一个TCP数据包;POST产生两个TCP数据包。
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
当然并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
下图是get方法
下图是post方法
是不是get快。
3、当然他还有很多区别,如:GET请求只能进行url编码,而POST支持多种编码方式。 GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。 GET请求在URL中传送的参数是有长度限制的,而POST没有有。 对参数的数据类型,GET只接受ASCII字符,而POST没有限制等等,不做过多解释了。
然后我们在从原理上看
根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。即GET 请求一般不应产生副作用,不会修改,增加数据,不会影响资源的状态。
但根据HTTP规范,POST用于更新资源信息,可能修改变服务器上的资源的请求。