post与get区别总结

原创 2007年10月09日 15:24:00

post和get方法的区别总结

简而言之,post就是提交,get方法就是获取。
早期的网页技术并没有区分,两者都是会把数据提交到服务器,但是提交的方式不同。
在IE的地址栏中,我们可以看到这样的
URL:
(1)http://blog.csdn.net/spring21st/archive/2007/10/09/1816488.aspx
(2)http://www.baidu.com/s?wd=ASP.NET+Unleashed&cl=3

首先,我们要明白对于IE的URL是有长度限制的,IE的最大URL长度限制是2083字节,而实际可以使用的最大长度为2048字节。(2)中就采用的是get方式进行提交,这种采用字符串连接的方式就存在长度大于IE的URL长度限制。
这时采用(1)post方法就不会出现这种情况。

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 提交数据

在Form里面,可以使用post也可以使用get。它们都是method的合法取值。但是,post和get方法在使用上至少有两点不同:
1、Get方法通过URL请求来传递用户的输入。Post方法通过另外的形式。
2、Get方式的提交你需要用Request.QueryString来取得变量的值,而Post方式提交时,你必须通过Request.Form来访问提交的内容。

仔细研究下面的代码。你可以运行之来感受一下:

代码
<!--两个Form只有Method属性不同-->
<FORM ACTION=“getpost.asp” METHOD=“get”>
<INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”></INPUT>
<INPUT TYPE=“submit” VALUE=“Method=Get”></INPUT>
</FORM>
<BR>
<FORM ACTION=“getpost.asp” METHOD=“post”>
<INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”></INPUT>
<INPUT TYPE=“submit” VALUE=“Method=Post”></INPUT>
</FORM>

<BR>
<BR>

<% If Request.QueryString(“Text”) <> ““ Then %>
通过get方法传递来的字符串是: “<B><%= Request.QueryString(“Text”) %></B>“<BR>
<% End If %>

<% If Request.Form(“Text”) <> ““ Then %>
通过Post方法传递来的字符串是: “<B><%= Request.Form(“Text”) %></B>“<BR>
<% End If %>

说明
把上面的代码保存为getpost.asp,然后运行,首先测试post方法,这时候,浏览器的url并没有什么变化,返回的结果是:
通过Post方法传递来的字符串是: "Hello World"
然后测试用get方法提交,请注意,浏览器的url变成了:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的结果是:
通过get方法传递来的字符串是: "Hello World"
最后再通过post方法提交,浏览器的url还是:
http://localhost/general/form/getpost.asp?Text=Hello+World
而返回的结果变成:
通过get方法传递来的字符串是: "Hello World"
通过Post方法传递来的字符串是: "Hello World"

提示
通过get方法提交数据,可能会带来安全性的问题。比如一个登陆页面。当通过get方法提交数据时,用户名和密码将出现在URL上。如果:
1、登陆页面可以被浏览器缓存;
2、其他人可以访问客户的这台机器。
那么,别人即可以从浏览器的历史记录中,读取到此客户的账号和密码。所以,在某些情况下,get方法会带来严重的安全性问题。
建议
在Form中,建议使用post方法。

推荐讲解更详细的网站:

http://blog.csdn.net/yaojianyou/archive/2007/08/01/1720913.aspx

 

HTTP 协议中GET和POST到底有哪些区别

HTTP 定义了与服务器交互的不同方法,最常用的有4种,Get、Post、Put、Delete,如果我换一下顺序就好记了,Put(增),Delete(删),Post(改),Get(查),即增删改查,下...
  • wangzhilife
  • wangzhilife
  • 2013年10月08日 16:40
  • 23599

PHP中post与get的区别

关键词: PHP,Post,Get,区别                                            转载文章一: PHP中post与get的区别 Post 方法通过 ...
  • u011130583
  • u011130583
  • 2014年11月17日 21:54
  • 1771

get与post区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 当你在...
  • qq_36030288
  • qq_36030288
  • 2016年10月08日 13:24
  • 1640

深入解析Ajax($.post和$.get的主要区别)——系列(二)

深入解析Ajax
  • laijieyao
  • laijieyao
  • 2014年10月24日 13:59
  • 16872

get和post的区别--面试经常被问到!(一)

原理上的区别: get和post是HTTP与服务器交互的方式, 说到方式,其实总共有四种:put,delete,post,get。 他们的作用分别是对服务器资源的增,删,改,查。 所以,get是...
  • qq_26360877
  • qq_26360877
  • 2017年04月24日 21:45
  • 2234

HTTP请求中POST与GET的区别

一、原理区别 一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。 HTTP定义了与服务器...
  • yipiankongbai
  • yipiankongbai
  • 2014年04月18日 17:15
  • 98938

jquery中之get和post的区别

jQuery - AJAX get() 和 post() 方法 jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。 H...
  • basycia
  • basycia
  • 2015年12月28日 19:44
  • 469

GET和POST面试知识点

导读:大部分APP都依赖于网络通信,对于开发者来说,基于网络通信的开发无疑是必须掌握的。HTTP通信作为目前计算机主要的通信协议,是企业面试当中必问的。对于HTTP通信的概念,本文不作说明,我将在后续...
  • gao1440156051
  • gao1440156051
  • 2016年08月16日 09:23
  • 3351

python 关于post和get的区别

1、URL解析: 基本格式:schema://host[:port#]/path/.../[?query-string][#anchor] scheme               指定低...
  • eba_yuzuki
  • eba_yuzuki
  • 2016年12月05日 15:31
  • 1335

http协议中get和post的区别(转)

HTTP请求格式 GET 和 POST的区别 [] 在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着...
  • hu_jiangan
  • hu_jiangan
  • 2015年10月15日 14:04
  • 1090
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:post与get区别总结
举报原因:
原因补充:

(最多只允许输入30个字)