读书人

百分求对post get的理解如何样使用p

发布时间: 2012-01-09 21:05:42 作者: rapoo

百分求对post get的理解,怎么样使用post传值(帮顶有分)
小弟简单的理解了post和get方法,也知道里面的一些区别
Response.Redirect 方法其实就是通过get传的值吧?
现在就想知道 怎么用post方法在页面传值?
用 Server.Transfer 跳转
第二个页面 用 Transfer_Default=(Transfer_Default)Context.Handler;
string name=td.Name;
这种方法是通过post方法传的值么?
怎么样更深的理解 post和get方法?
希望大家多谈谈经验和理解,上网搜出来的就麻烦不用发了。分不够我再加

[解决办法]
post get 指的是客户到web server 的请求
redirect Transfer 是服务器端重定向
[解决办法]
post传值应该是通过表单传
[解决办法]
redirect Transfer
重定向事实上是发的HTTP 302的头.

你应该去补些HTTP协议的知识...

还有,你的问题描述讲得人头晕晕的.
有些不知所云的感觉.....
[解决办法]
up
[解决办法]
帮顶
[解决办法]
post 后面也可以用参数
二者传递参数的长度有区别post大,get小
还有传递方法有区别,一个是用ascii,一个是用二进制。
不管那种都是指的从客户端到服务器端的请求,
而redirect,和tranfer 都是服务器端获得客户端的请求后,再服务器端重定向而已,和post get没有关系

[解决办法]
提问的艺术


如果你不知道应该问什么.那么,你就讲出你要达到的需求....

[解决办法]
学习

[解决办法]
POST不一定是ASCII

详细情况可以参阅RFC1867文档对POST ( HTTP_VERB_POST )的描述
[解决办法]
up
[解决办法]
现在就想知道 怎么用post方法在页面传值
------------------------------------------
<form id= "Form1 " method= "post " action= "xxx.aspx?id=yyy "> </form>
[解决办法]
id=yyy 就是传值啊
[解决办法]
// 这个是客户端用来发送xml内容的
private void post(string url, Dictionary <string,string> content)
{
Encoding encoding = Encoding.GetEncoding( "GB2312 ");
StringBuilder sb = new StringBuilder();
foreach (string s in content.Keys)
{
sb.Append(s+ "= "+content[s]+ "& ");
}
if (sb.Length> 0)
{
sb.Remove(sb.Length-1,1);
}

byte[] data = encoding.GetBytes(sb.ToString());

// 准备请求...
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
myRequest.Method = "POST ";
myRequest.ContentType= "application/x-www-form-urlencoded ";
myRequest.ContentLength = data.Length;
Stream newStream=myRequest.GetRequestStream();
// 发送数据
newStream.Write(data,0,data.Length);
newStream.Close();
}

// 服务端接收
Request.Form( "键值 ").ToString()
// 比如发送Name=my name&age=20
// 接收就是Request.Form( "Name ").ToString();
// Request.Form( "age ").ToString();
[解决办法]
来接点分
------解决方案--------------------


GET()
经由 HTTP GET 方法提交至脚本的变量。类似于旧数组 $HTTP_GET_VARS 数组(依然有效,但反对使用)。

POST()
经由 HTTP POST 方法提交至脚本的变量。类似于旧数组 $HTTP_POST_VARS 数组(依然有效,但反对使用)。
post 地址栏不会出现一大串?bjnghfgreygt这样的东西

如果是get,就会出现了

1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后,如[url]http://www.mdm.com/test.asp?name=asd&password=sad[/url],数据都会 直接显示在 url 上,就像用户点击一个链接一样;Post 方法通过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML 表头(header)内一起传送给服务器端交由 action 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理


2、 Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容


3、Get 方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 Post 方法好;而 Post 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击,根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节

建议:除非你肯定你提交的数据可以一次性提交,否则请尽量用 Post 方法


4、Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框

建议:出于安全性考虑,建议最好使用 Post 提交数据



[解决办法]
帮顶~~~~
[解决办法]
GET 和 POST 请求的区别
// --TCP/IP 协议详解卷3
13.3.1 报文类型:请求与响应
HTTP / 1 . 0报文有两种类型:请求和响应。HTTP / 1 . 0请求的格式是:
reqe t - l i n e
headers ( 0或有多个)

body (只对POST请求有效)
request - l i n e的格式是:
request request-URI HTTP版本号
支持以下三种请求:
1) G E T请求,返回re q u e s t - U R I所指出的任意信息。
2) H E A D请求,类似于G E T请求,但服务器程序只返回指定文档的首部信息,而不包含实际的文档内容。该请求通常被用来测试超文本链接的正确性、可访问性和最近的修改。
3) P O S T请求用来发送电子邮件、新闻或发送能由交互用户填写的表格。这是唯一需要在请求中发送b o d y的请求。使用P O S T请求时需要在报文首部C o n t e n t - L e n g t h字段中
指出b o d y的长度。

[解决办法]
Response.Redirect 是强制将客户端重定向到新的 URL,也就是说是由【客户端】再次向【服务器】发送请求,使用的是 GET 方式

Server.Transfer 仅仅是【服务器端的页面重定向】,客户端对此【毫不知情】,原始请求是 GET/POST 就是 GET/POST

读书人网 >C#

热点推荐