Get和Post请求
来源:互联网 发布:java技术支持 编辑:程序博客网 时间:2024/05/07 07:00
浏览器向服务器发送数据最常用的就是Get和Post。
表单
表单用来收集用户的数据
1.只有放到form标签内的标签,在点击submit提交按钮之后才会被提交到服务器。通过action属性设定表单被提交给哪个页面。
2.只有input、textarea、select这三种类型的标签中的数据可以被提交。
3.只有value属性的值会被提交(只有value属性才是用户输入的属性)
4.标签必须设定name属性。服务器通过name来获取value。
Post请求
做一个小demo。
用vs创建一个html和一般处理程序。代码如下
//test.html<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <meta charset="utf-8" /></head><body> <form action="test.ashx" method="post"> <input type="text" name="txtName" value="Hello" /> <input type="submit" value="提交" /> </form></body></html>
//test.ashxusing System.Web;namespace UI{ /// <summary> /// test 的摘要说明 /// </summary> public class test : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string name=context.Request.Form["txtName"];//接受post请求传过来的数据 context.Response.Write(name);//在页面中输出name的值 } public bool IsReusable { get { return false; } } }}
浏览html网页显示为
点击提交按钮后,显示的结果为
在这一过程中,请求报文的内容为
响应报文中的内容为
Get请求
把上个例子中form标签的method属性改成get(也可以直接把这属性删掉,因为默认为get请求)。
然后再把test.ashx中的string name=context.Request.Form["txtName"];
改成string name=context.Request.QueryString["txtName"];
浏览html网页显示为
点击提交后网页显示为
这一过程的请求报文为
响应报文为
直接输入地址
除了通过表单中的get或post,点击提交按钮提交。
还可以直接在浏览器中输入地址,敲回车,这也相当于向服务器发送get请求。
比如我直接在地址栏中输入
http://localhost:33102/test.ashx?txtName=World
没有点击提交按钮
显示的结果为
两者的区别
get请求通过url传递表单值,格式为http://localhost:33102/test.ashx?textName=Hello 服务端文件名后跟着“?”,表单元素name属性的值=用户输入的值(value属性的值),如果要提交多个属性值用&分隔开。
在服务端用QueryString来接收数据。
post请求通过url看不到提交的表单的值,登陆都是用post(是相对安全的,但通过报文还是可以看到的),数据全都放在请求报文的请求体中。格式为,表单元素name属性的值=用户输入的值(value属性的值),如果要提交多个属性值用&分隔开。在服务端用Form来接收数据。
另外,无论是get还是post都可以用
‘string name=context.Request[“txtName”];’这种方式来接收,但如果知道是哪种方式的话最好就用对应的那种方式,减少程序内部做的判断。
get传递的数据量是有限的,如果要传递大量数据不能用get,比如上传文件,post则没有这个限制。
搜索的时候用get提交,比如我搜索到了一些东西, 然后我把网址发送给了你,因为地址栏中就有我要搜索的东西,发送给你后,你就能直接打开看到我搜索到的东西。post方式的正确地址很难直接发给别人。
- GET和POST请求
- Get和Post请求
- post和get请求
- Get和Post请求
- post和get请求
- get和post请求
- get和post请求
- post和get请求
- get和post请求
- GET和POST请求
- get和post请求
- get请求和post请求
- get请求和post请求
- GET请求和POST请求
- GET请求和POST请求
- GET请求和POST请求
- GET请求和POST请求
- GET请求和POST请求
- HDU 5875 Function ST + 二分区间
- Hibernate 乐观锁实现之 Version
- linux下 安装 oracle11g 错误 Can't open display: xxx
- 平衡二叉树(AVL)
- leetcode【121+122+123 best time to buy and sell stock】【python】
- Get和Post请求
- openstack安装问题
- Ubuntu+Apache+PHP+Mysql环境搭建(完整版)
- G1 垃圾回收
- hibernate乐观锁
- MongoDB基本使用
- Graph
- 关于java文件扩展名认识
- Opencv之<Vec3b>是什么东东