成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

post和get的提交方式有哪些

Q1:简述post方式和get方式提交数据有什么区别?

get方式提交数据弊端:
1、长度,最多255个字符;
2、URL明文显示
3、特殊字符处理麻烦
推荐使用POST方式提交数据。

Q2:表单提交中get和post方式的区别

表单的GET、POST提交方法,在不同角度看来各有区别。
一、表单的编写人看来,GET方式的表单代码是这样的(表单1):



...其它参数

POST方式的表单代码是这样的(表单2):


...其它参数

还可以编写下面的表单,同时提交GET和POST内容,例如(表单3):


...其它参数

二、跟踪浏览器的发现GET和POST表单的网络传输内容有区别,前面“表单1”提交的数据可能如下(省略了与本话题无关的一些内容):
GET /a.cgi?abc=123 HTTP/1.1、User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Host: www.elearning.clic
Connection: Keep-Alive
可以看出,GET提交的表单参数是作为文件名的一部分提交请求。
前面“表单2”提交的数据可能如下(省略了与本话题无关的一些内容):
POST /a.cgi HTTP/1.1、Connection: Keep-Alive
abc=123、可以看出,POST提交的表单参数没有放在文件名的后面,单独作为数据包发送给服务器,在请求头之后空一行再发送POST数据。
前面“表单3”提交的数据可能如下(省略了与本话题无关的一些内容):
POST /a.cgi?job=1 HTTP/1.1、Connection: Keep-Alive
abc=123、可以看出这种方式实际上是同时有GET和POST提交数据内容。
三、浏览器用户在表单提交后,看见的地址栏内容不一样。对于GET方式提交的(表单1)浏览器会显示在地址栏显示提交的参数内容(a.cgi?abc=123),因此一般不用GET方式提交登录表单,否则密码也显示出来了,而且存在浏览器的历史里面。对于POST方式的表单(如表单2),浏览器地址只显示ACTION后面指定的内容(a.cgi),但是如果ACTION里面指定有GET传递参数(例如表单3),浏览器会显示这些参数(a.cgi?job=1)
四、服务器收到GET和POST提交的表单时,处理方式不同。对于GET方式提交的表单(例如表单1),HTTP服务器程序直接运行脚本a.cgi,把?之后的内容“abc=123”存放在环境变量QUERY_STRING中。
对于POST方式提交的表单(例如表单2),HTTP服务器运行脚本a.cgi,把接下来的数据包(abc=123)作为文件管道STDIN打开供a.cgi使用。
对于POST方式提交的表单如果文件名后面有?(例如表单3),HTTP服务器运行脚本a.cgi,把接下来的数据包(abc=123)作为文件管道STDIN打开供a.cgi使用,同时把?之后的内容“job=1”存放在环境变量QUERY_STRING中。
五、网站开发人员处理不同。对于a.cgi程序的编制者,可以不去关心使用GET还是POST提交的,而是分别在环境变量QUERY_STRING和标准输入STDIN里面获得数据,当然也可以区分GET和POST进行不同的处理。
从环境变量中获得GET参数的方法与编写a.cgi的程序语言有关,例如C语言可以getenv系统调用,再如PERL可以访问关联数组$ENV{QUERY_STRING}获得数据,而专门为网页而生的JSP、ASP、PHP这些可以更加抽象的直接访问数据,例如PHP使用$_GET超级数组。
从标准输入获得POST数据的方法与编写a.cgi的程序语言有关,对于C、PERL等语言,可以直接read调用STDIN文件,C语言甚至可以gets等获取。而专门为网页而生的JSP、ASP、PHP这些可以更加抽象的直接访问数据,例如PHP使用$_POST超级数组。
六、综上所述,GET和POST的区别比较多,主要有:
GET提供的东西或显示在浏览器地址上,而且可能存在在浏览器历史中,POST不会;
GET方式无需进行管道操作,传输少量数据的时候效率更高;
GET的内容有限制,文件名总长度有限制,环境变量也有限制,一般不用GET方式处理超过1024字节的参数。而POST提交的内容长度理论上没有限制,只是一般服务器管理员认为POST提交效率比FTP底下而进行了一定的限制(例如8M、2G不等)。
以上内容为本人原创,百度首发,管理员觉得抄袭请提供拷屏证据。

Q3:表单的提交方式POST和GET有什么区别

这里是你需要的答案看看能看明白吗不明白可以问我QQ799729234 http://bbs.u8i9.cn/thread-754-1-1.html 答案补充
注意:虽然两种提交方式可以统一用Request("oStr")来获取提交数据,但是这样对程序效率有影响,不推荐使用。
特别提示
通过IIS运行本例代码(用http://localhost/method.asp这种方式来浏览,有关IIS的安装和配置,请参考第四部分),输入所提交的数据,选择Post方式提交,将看到图1.4.4所示的效果。选择Get方式提交,效果将如图1.4.3所示。
特别说明
一般来说,尽量避免使用Get方式提交表单,因为有可能会导致安全问题。比如说在登陆表单中用Get方式,用户输入的用户名和密码将在地址栏中暴露无遗。但是在分页程序中,用Get方式就比用Post好。本例中用到的表单的属性解释(ASP部分请参考第四部分):
Get把参数添加到action属性指定的地址中,并以锚方式打开。
Post通过HTTP post处理发送数据。

Q4:ajax 中用get方式和post方式提交的区别

注意:POST提交时,要多加一段代码:
xmlHttp.setrequestheader("content-length",post.length);
xmlHttp.setrequestheader("content-type","application/x-www-form-urlencoded");
否则也获取不到参数值
GET,POST提交示例:
var xmlHttp;
function ajaxSubmit(site)
{
createXMLHttpRequest();
//get提交
var keywords = escape(document.getElementById("keywords").value);//escape()解决中文参数
var url = "web.aspx?keywords="+keywords;
xmlHttp.open("get",url,true);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
//post提交
var keywords = escape(document.getElementById("keywords").value);
var url = "web.aspx";
var postdate = "keywords="+keywords;
xmlHttp.open("post",url,true);
xmlHttp.setrequestheader("content-length",postdate.length);//post提交设置项
xmlHttp.setrequestheader("content-type","application/x-www-form-urlencoded");//post提交设置项
xmlHttp.onreadystatechange = callback;
xmlHttp.send(postdate);
}
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function callback()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
var dates = xmlHttp.responseText;
document.getElementById("obj").innerHTML=dates;
}
}else
{
document.getElementById("obj").innerHTML="正在加载数据,请稍等";
}
}wwW.BAZhi☆ShI.COM

Q5:post或get方式提交数据数量及长度有限制吗?

有限制的 不过可以很长 所以不必担心

Q6:表单的提交有两种方式:GET和POST,这两种方式的区别是什么?

GET 将表单数据附加到请求页面的URL地址后面。GET方法用来传送少量数据,URL的长度限制在8192个字符以内。如果发送的数据量太大,数据将被截断,从而导致意外的处理结果。
POST 在HTTP请求中嵌入表单数据。POST方法可用来发送大量数据,而且对于用户名、密码和信用卡等机密信息的发送,POST方法比GET方法更安全。

猜你喜欢

更多