目录
HTTP 请求方法:GET 和 POST
Get/Post表单解析
Get
Get---从指定的资源请求数据。
GET:请求参数放在请求地址的后面,请求参数有大小限制只能传递几k的数据,而参数在地址栏中可以看到所以不能传递敏感信息(密码)
- 浏览器地址栏发出的请求是get
- 超链接发出的请求是get
- form表单默认发出的请求是get
Get消息
请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:
/test/demo_form.asp?name1=value1&name2=value2
有关 GET 请求的其他一些注释:
- GET 请求可被缓存
- GET 请求保留在浏览器历史记录中
- GET 请求可被收藏为书签
- GET 请求不应在处理敏感数据时使用
- GET 请求有长度限制
- GET 请求只应当用于取回数据
Post
Post--- 向指定的资源提交要被处理的数据
Post:请求参数放在请求体里面用户看不到,而且没有大小限制通常.上传文件时或者传递敏感信息时使用POST
只有form表单设置method="post"时发出的才是post请求
Post消息
请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
有关 POST 请求的其他一些注释:
- POST 请求不会被缓存
- POST 请求不会保留在浏览器历史记录中
- POST 不能被收藏为书签
- POST 请求对数据长度没有要求
Form表单
表单在网bai页中主要负责数据采集功能。一个表单有du三个基本组成部分: 表单标zhi签:这里面包含了处理表单数dao据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
表单数据是指通过表单让用户填写内容,然后提交到服务器上;这些数据被称之为表单数据.
From工作原理:
相当于一个控件集合,里面包含很多控件,点“提交”后会把表单中的所有控件的值都传给action到的页面,这里通过post方法传递时会隐藏表单中的所有值,当通过GET方法传递时,可以在URL地址栏看到?号后所跟的值,也就是表单里所有的值.
<form name="表单名" action="a.jsp" method="post">
用户名:<input type=text name="username" >
密码:<input type=text name="password" >
<input type=submit value="提交">
属性
-
action {URL}:一个URL地址,里面写的是url链接,接就是表单提交的地址。
-
method {get/post}:里面写的是数据提交的方式,可以写入get或者post,指定表单以何种方式发送到指定的页面。
指定的值有:get :form表单里所填的值,附加在action指定的URL后面,做为URL链接而传递。
post :form表单里所填的值,附加在HTML Headers上。 -
enctype属性,提交数据的编码格式
文本框:
<input type="text" name="username" value="xxx"
maxLength="5" readonly="readonly" placeholder="xxxx" >
密码框
<input type="password" name="pwd" value="xxx" maxLength="5" readonly=" readon1y" .
placeholder="xxxx" >
单选
<input id="xxx" type="radio" name="xxx" value="xx" checked="checked"
< label for=" xxx">xxx</label>
多选
<input id="xxx" type=" checkbox" name="xxx" value="xx" checked=" checked">
日期
<input type="date" name="xxx*">
文件
<input type="file" name="xxxx">
文本域
<textarea name="xxx" cols="20" rows="5" placeholder="xxxx"></textarea>
下拉选 city=bj
<select name="city">
<option value="bj">北京</option>
<option>xxxx</option>
<option>xxxx< /option>
</select>
案例演示
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- action 提交地址
form表单中所有属性必须要有name属性 不然参数不会传递-->
<form action="http://www.tmooc.cn" method="get">
<!-- 文本框 value 设置默认值 placeholder占位文本
maxlength 最大字符长度 -->
<input type="text" name="username"
value="小明" placeholder="请输入用户名"
maxlength="5" readonly="readonly"/><!-- readonly 只读 -->
<!-- type="password" 密码掩饰 -->
<input type="password" name="pwd"
placeholder="请输入密码"/>
<hr >
<!-- 单选 必须写value 如果不写 提交过去的内容都是on
checked 默认选中 radio 发送-->
性别:<input type="radio" name="gender" value="m" checked="checked"/>男
<input type="radio" name="gender" value="f" id="f"/>
<!-- label 作用扩充点击范围 点击字触发单选 for和上面的id对应 -->
<label for="f">女</label>
<hr >
<!-- 多选 checkbox 复选框多选 hobby 爱好-->
兴趣爱好:<input type="checkbox" name="hobby" value="sy" />抽烟
<input type="checkbox" name="hobby" value="hj" />喝酒
<input type="checkbox" name="hobby" value="tt" checked="checked"/>烫头
<hr >
<!-- type="date" 日期选择器 -->
生日:<input type="date" name="birthday" />
<hr ><!-- type="文件file" 文件选择 后面上传会用到 -->
靓照:<input type="file" name="pic"/>
<hr >
<!-- 文本域 获取多行文本 rows 行 cols 列 -->
自我介绍:<textarea name="intro" rows="4" cols="20"
placeholder="说点什么...."></textarea>
<hr >
<!-- 下拉选 -->
所在城市<select name="city">
<option value="bj">北京</option>
<!-- selected="selected"默认选中 写在哪里 默认选哪 -->
<option value="sh" selected="selected">上海</option>
<option value="hz">深圳</option>
</select>
<input type="submit" value="注册"/>
</form>
</body>
</html>
请求常用的请求方式?区别在哪?
- post 和 get 方式
在from表单中有一个method属性,定义提交表单中的数据给服务器的方式,其中我们常用的有get和post两种方式,二者区别如下:
1、 get方式发送请求是会将表单所有数据拼接成key=value的形式,拼接在URL中向服务器传输信息;post方式发送请求时浏览器URL并不发生变化,但数据会通过浏览器后台传输给服务器,
2、get方式发送请求时的URL为表单数据的拼接,如果输入的是密码,则密码会显示在url上,不安全;post方式发送请求时浏览器URL并不发生变化,安全性更可靠
3、浏览器地址栏的url链接的长度有限制,如果采用get方式;而表单输入信息过多,会导致请求拼装的URL超出长度限制,采用post方式不会有表单数据长度的限制,故post适用于数据的增加和修改故
4、get是用来从服务器上获得数据,而post是用来向服务器上传递数据
如果提交请求纯粹只是从服务器端获取数据而不是进行其他操作,并且多次提交不会有明显的副作用,应该使用get(适用于数据的查询获取)。
如果提交这个请求会产生其他操作和影响,就应该使用post(适用于数据的增删改)。
如:修改服务器上数据库中的数据;发送一封邮件;删除一个文件等
常用的两种请求方式 | 重点 | 传输数据形式 | 传输 | 安全 |
get | 从服务器上获取资源 | 通过URL请求,以filed(字段)=value的形式,置于URL后,并用"?"连接,多个请求数据之间用"&"连接,以地址栏的形式传递给服务端,这个过程用户是可见的 | 传输量小,因为受URL长度限制,效率URL长度限制,效率 | 不安全,因为URL是可见的,可能会泄露私密信息,如密码等 |
post | 向服务器发送数据 | 把提交上来的数据全部被包含在请求的消息正文中,提交上来的 | 可以传输大量数据,当表单含有用户隐私信息或者有上传附件操作时,必须使用post请求。 | 较get安全 |