GET POST 区别详解

上传人:碎****木 文档编号:220863050 上传时间:2021-12-09 格式:DOCX 页数:3 大小:21.48KB
返回 下载 相关 举报
GET POST 区别详解_第1页
第1页 / 共3页
GET POST 区别详解_第2页
第2页 / 共3页
GET POST 区别详解_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《GET POST 区别详解》由会员分享,可在线阅读,更多相关《GET POST 区别详解(3页珍藏版)》请在金锄头文库上搜索。

1、1、Get 是用来从效劳器上获得数据,而Post是用来向效劳器上传递数据。2、Get 将表单中数据的依据variable=valu的e 形式,添加到action所指向的 URL 后面, 并且两者使用“?”连接,而各个变量之间使用“& ”连接;Post 是将表单中的数据放在 form 的数据体中,依据变量和值相对应的方式,传递到action所指向 URL 。3、Get 是担忧全的,由于在传输过程,数据被放在恳求的URL 中,而如今现有的很多效劳器、代理效劳器或者用户代理都会将恳求URL 记录到日志文件中,然后放在某个地方, 这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在扫瞄

2、器上直接看到提交 的数据,一些系统内部消息将会一同显示在用户面前。Post的全部操作对用户来说都是不行 见的。4、Get 传输的数据量小,这主要是由于受 URL 长度限制;而 Post可以传输大量的数据, 所以在上传文件只能使用Post固然还有一个缘由,将在后面的提到。5、Get 限制Form 表单的数据集的值必需为ASCII 字符;而 Post支持整个ISO10646 字符集。默认是用ISO-8859-1编码6、Get 是 Form 的默认方法。以下的比较格外格外使用:做 java的 web 开发有段日子了,有个问题老是困扰着我,就是乱码问题,根本上是网上查找解决方案网上资料真的很多,都是一

3、大堆的介绍如何解决此类的乱码问题,但是没几个把问题的来龙去脉说清楚的,有时候看了些文章后,以为自己懂了,但是在开发中乱 码问题又像鬼魂一样出来吓人,真是头大了!这篇文章是我长时间和乱码做斗争的一些理解的积存,还期望有更多的朋友给出教导和补充。form 有 2 中方法把数据提交给效劳器,get和 post分,一get提交别说下吧。1. 首先说下客户端扫瞄器的 form 表单用get方法是如何将数据编码后提交给效劳 器端的吧。对于 get 方法来说, 都是把数据串联在恳求的 url 后面作为参数, 如: :/localhost:8080/servlet?msg=abc很常见的一个乱码问题就要消灭了

4、,假设url中消灭中文或其它特别字符的话,如: :/localhost:8080/servle杭t?州ms,g=效劳器端简洁得到乱码,url拼接完成后,扫瞄器会对 url进展 URLencode ,然后发送给效劳器,URLencode 的过程就是把局部url做为字符,依据某种编码方式如:utf-8,gb等k 编码成二进制的字节码,然后每个字节用一个包含3个字符的字符串“%xy“ 表示,其中 xy 为该字节的两位十六进制表示形式。我这里说的可能不清楚,具体介绍可以看下.URLEncode类r 的介绍在这里。了解了URLencode 的过程,我们能看到 2 个很重要的问题,第一:需要URLenco

5、de 的字符一般都是非ASCII 的字符笼统的讲,再通俗的讲就是除了英文字母以外的文字如:中文,日文等都要进展 URLencode ,所以对于我们来说,都是英文字母的url不会消灭效劳器得到乱码问题,消灭乱码都是url里面带了中文或特别字符造成的;其次:URLencode 到底依据那种编码方式对字符编码?这里就是扫瞄器的事情了,而且不同的扫瞄器有不同的做法,中文版的扫瞄器一 般会默认的使用 GBK ,通过设置扫瞄器也可以使用 UTF-8 ,可能不同的用户就有不同的扫瞄器设置,也就造成不同的编码方式,所以很多网站的做法都是先把url里面的中文或特别 字符用javascrip做t URLencod

6、e ,然后再拼接 url提交数据,也就是替扫瞄器做了 URLencode ,好处就是网站可以统一 get方法提交数据的编码方式。完成了 URLencode ,那么现在的 url 就成了ASCII 范围内的字符了,然后以 iso-8859-1的编码方式转换成二进制随着恳求头一起发送出去。这里想多说几句的是,对于get方法来说,没有恳求实体,含有数据的url都在恳求头里面,之所以用 URLencode ,我个人觉的缘由是:对于恳求头来说最终都是要用iso-8859-1编码方式编码成二进制的 101010.的.纯数据在互联网上传送,假设直接将含有中文等特别字符做iso-8859-1编码会丧失信息,所

7、以先做 URLencode 是有必要的。2。效劳器端tomcat是如何将数据猎取到进展解码的。第一步是先把数据用 iso-8859-1进展解码,对于 get 方法来说,tomcat 猎取数据的是ASCII 范围内的恳求头字符,其中的恳求url里面带有参数数据,假设参数中有中文等特别字符,那么目前还是URLencode 后的%XY 状态,先停下,我们先说下开发人员一般猎取数据的过程。通常大家都是request.getParameter(“na获me取“)参数数据,我们在request对象或 得的数据都是经过解码过的,而解码过程中程序里是无法指定,这里要说下,有很多新手说 用 request.se

8、tCharacterEncodi字ng符(“集“)可以指定解码方式,其实是不行以的,看 servlet 的官方API说明有对此方法的解释:Overridesthenameofthecharacterencodingusedinthebodyofthisrequest.Thismethodmustbecalledpri ortoreadingrequestparametersorreadinginputusingget可Re以ad看er出()对. 于get方法他是无能为力的。那么到底用什么编码方式解码数据的呢,这是 tomcat 的事情了,默认缺省用的是iso-8859-1这,样我们就能找到为什

9、么 get恳求带中文参数为什么在效劳器端得到乱码了,缘由是在客户端一般都是用 UTF-8 或 GBK 对数据 URLencode ,这里用 iso-8859-1方式URLdecoder 明显不行,在程序里我们可以直接Java代码1. newString(request.getParameter(“name“).getBytes(“iso-8客859户-1“端),“指 定 的URLencode 编码方式“)复原回字节码,然后用正确的方式解码数据,网上的文章通常是在 tomcat里面做个配置Xml 代码1.<Connectorport=“8080“protocol=“ /1.1“maxThr

10、eads=“150“connectionTimeout=“20000 “redirectPort=“8443“URIEncoding=“GBK“/>这样是让tomcat在猎取数据后用指定的方式URLdecoder ,URLdecoder 的介绍在这里一post提交1.客户端扫瞄器的 form 表单用 post方法是如何将数据编码后提交给效劳器端的。在 post方法里所要传送的数据也要URLencode ,那么他是用什么编码方式的呢?在form所在的html文件里如果有段<meta -equiv=“Content-Type“content=“text/html;字ch符ar集setG

11、=BK ,utf-8等“/>,;那么 post就会用此处指定的编码方式编码。一般大家都认为这段代码是为了让扫瞄器知道用什么字符集来对网页解释,所以网站都会把它放在 html代码的最前端,尽量不消灭乱码, 其实它还有个作用就是指定form 表单的 post方法提交数据的 URLencode 编码方式。从这里可以看出对于 get方法来数,扫瞄器对数据的 URLencode 的编码方式是有扫瞄器设置来打算,可以用 js做统一指定,而 post方法,开发人员可以指定。2。效劳器端tomcat是如何将数据猎取到进展解码的。假设用 tomcat默认缺省设置,也没做过滤器等编码设置,那么他也是用 iso-8859-1解码的,但是request.setCharacterEncodi字ng符(“集“)可以派上用场。用 post 很 重 要 的 在 form 所 在 的 html 文 件 里 如 果 有 段<meta -equiv=“Content-Type“content=“text/html;字ch符ar集set=GBK ,utf-8等“/>猛烈建议使用post提交

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号