Get 和 Post 的区别两点:
一、这两者传递参数时所用的编码不一定是一样的。在 Tomcat 中似乎 Get 的编码方式是根
据页面中指定的编码方式,而 Post 则是一直使用同一种编码方式,可在 Tomcat 的
server.xml 中配置。
二、使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。
所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是
中文字符而且包含敏感数据,那么还是使用 post为好。
表单提交中get和post方式的区别归纳如下几点:
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段
一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放
置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服
务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。
在FORM提交的时候,如果不指定Method,则默认为GET请求(.net默认是post),Form
中提交的数据将会附加在url之后,以?分开与url分开。字母数字字符原样发送,但空格转
换为“+“号,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)
值。GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
GET方式提交的数据最多只能有1024字节,而POST则没有此限制 。POST传递的参数在doc
里,也就http协议所传递的文本,接受时再解析参数部分。获得参数。一般用post比较好。
post提交数据是隐式的,get是通过在url里面传递的,用来传递一些不需要保密的数据,
GET是通过在URL里传递参数,POST不是。
二、HTTP消息格式
HTTP规范1.0[RPcl945]和1.1[RFC 2616]定义了HTTP消息的格式。HTTP消息分为
请求消息和响应稍息两类。下面我们分别进行介绍。
HTTP请求消息
下面是一个典型的HTTP请求消息:
GET /somedir/page.html HTTP/1.1 //请求行(request line)
Host:www.yesky.com //头部行(header)
Connection:close
User-agent:Mozilla/4.0
Accept-language:zh-cn
(额外的回车符和换行符)
仔细检查这个简单的请求消息,我们可从中学到不少东西。首先,这个消息是用普通的
ASCII文本书写的。其次,这个消息共有5行(每行以一个回车符和一个换行符结束),最后一
行后面还有额外的一个回车特和换行符。当然,一个请求消息可以不止这么多行,也可以仅仅只
有一行。该请求消息的第一行称为请求行(request line),后续各行都称为头部行(header)。
请求行有3个宁段:方法字段、URL字段、HTTP版本宇段。方法字段有若干个值可供选择,包
括GET、POST和HEAD。HTTP请求消息绝大多数使用GET方法,这是浏览器用来请求对象的
方法,所请求的对象就在URL字段中标识。本例表明浏览器在请求对象/somedir/page.html。
版本字段是不言自明的;本例中浏览器实现的是HTTP/1.1版本。