`
恶魔眼睛
  • 浏览: 11148 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

这里来说说get与post的区别与联系

阅读更多
区别与联系:

        1、get是从服务器上获取数据,post则是向服务器传送数据;

        2、get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接。Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL;

        所以从上述也可以得到另外两个结论:

                1、get传送的数据量较小,不能大于2KB,这主要是因为受URL长度限制。post传送的数据量较大,所以在上传文件只能使用Post。一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB;

                2、get安全性非常低(因为用户可以通过URL看到),post安全性较高(其所有操作对用户来说都是不可见的)。但是执行效率却比post方法好;

        3、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集;

        4、Get是Form的默认方法;

        5、Get方式提交来的数据在服务器端用Request.QueryString()来获取,用Post方式提交的数据用Request.Form()来获取(这一点不是很明确);

建议:

        1、如果是包含机密信息的话,建议用post数据提交方式;

        2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
################################################
1、get的2083是ie的限制。其他浏览器没有。
2、上传文件大小限制可以设置,各种webserver都可以。
3、get/post字符集无所谓,get加到url后面会urlencode,post是二进制的body
4、其实还有head、put、delete等等方式。这些都是method,还有enctype:application/x-www-form-urlencoded、multipart/form-data、text/plain等等。
5、parameter里都有。asp.net和jsp的request基本一样。

6、机密数据还是https的好。
7、传几个id、type之类的参数,用get合适,比如列表详细链接等等。一般的表单还是post吧。
####################################################
很简单的一个原则,获取数据用get,改变/添加数据用post。
因为get会被浏览器缓存,post不会。这样可以提高响应速度。
并且用get用户可以从url中看到自己的操作,优化好的情况下可以使get url具备可读性/观赏性。
####################################################
关于安全:
GET requests can be cached
GET requests can remain in the browser history
GET requests can be bookmarked
GET requests can be distributed & shared

所以如果有敏感数据是不应该用get方法的,但是有例外,就是ajax请求时候即使是敏感字段也可以用get。

关于响应速度:
1.get请求是可以被客户端缓存的。比post高效。
2.AJAX环境中get响应快速,post需要先发送header再发送post data。
分享到:
评论

相关推荐

    XUtilsDemo

    再来说说**ViewUtils**。ViewUtils是一个针对Android视图操作的工具类,提供了很多实用的方法,如设置点击事件、动态修改View属性等。例如,你可以用`ViewUtils.setOnClickListener(view, clickListener)`来为任意...

    Smooth Slider插件

    页面中可以设置幻灯片的标题、图片样式以及文章的标题、内容,设置起来都十分的简单,这里就不多加介绍了,下面说说它的使用吧! Smooth Slider使用: 1、如果你想要在主页中显示这些内容,那么,在后台点击...

    易语言-QQ空间留言以及说说批量删除易语言

    在源码层面,由于该项目被标签为“网络相关源码”,我们可以推断其内部实现了网络通信的部分,比如HTTP请求库的使用,可能包括GET和POST方法,用于获取和提交数据。同时,可能还涉及到线程或异步处理,以便在等待...

    Android使用Retrofit2.0技术仿微信发说说

    综上所述,实现一个类似微信发说说的功能,你需要理解并运用Retrofit 2.0进行网络请求,掌握图片选取库如`photopicker`的使用,以及自定义Adapter来处理图片显示。此外,还需要注意权限管理和用户体验设计。通过这些...

    java面试题

    33. BS与CS的联系与区别。 16 34. 启动一个线程是用run()还是start()? 17 35. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 18 36...

    7kbscan-WebPathBrute v1.6.0 最新编译版

    http访问方法 HEAD GET POST 三种方式,head请求扫描速度最快 但是准确率不如以下两种,post请求是为某些情况绕过waf使用的。 延时扫描功能 勾选效果是: 单线程扫描、默认每隔2秒访问一次。适用于某些存在CCwaf的...

    易语言源码易语言QQ空间操作源码.rar

    这包括URL构造、POST/GET请求的实现、处理响应数据等。 3. **JSON解析**:QQ空间API通常返回JSON格式的数据,源码中应包含解析JSON数据的方法,将数据转化为易语言可处理的对象。 4. **QQ空间API接口**:熟悉QQ...

    web路径探测工具 7kbscan-WebPathBrute 1.5.8 (集成三字典)

    使用与更新说明 1.5.8 Beta 2018-01-28 一、增加了几个变量 %DomainNoPoint%为当前扫描目标域名...另外说一句字典有点乱我也没有精力去仔细弄了希望有人能整理一份分享给大家也可以私下联系我我来收集整理多谢大家

    SQL常考笔试题目

    使用`open()`方法初始化一个HTTP请求,指定请求类型(GET或POST)、URL以及是否异步。 3. 发送请求。 4. 监听`readystatechange`事件,当状态发生变化时执行相应的回调函数。 5. 当请求完成并且响应准备好时,...

    易语言-QQ空间扫码登录易语言

    6. **网络通信**:在与QQ空间交互的过程中,程序会通过HTTP/HTTPS协议与服务器进行数据交换,可能使用了易语言的网络库来实现这些网络操作,包括GET和POST请求。 7. **事件驱动编程**:易语言的事件驱动模型使得...

    易语言-QQ空间触屏版协议分享

    【易语言-QQ空间触屏版协议分享】这个主题涉及到的是使用易语言(E语言)来解析和交互QQ空间触屏版的网络协议。易语言是中国本土开发的一种面向对象、简单易学的编程语言,其目标是降低编程的难度,让更多人能够掌握...

    springmvc上传图片代码

    这里,我们需要再创建一个Controller方法来处理图片显示的请求: ```java @GetMapping("/showImage") public ResponseEntity<Resource> displayImage(@RequestParam("filename") String filename) { Resource ...

    java 面试题 总结

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    超级有影响力霸气的Java面试题大全文档

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    Android使用Retrofit仿微信多张图片拍照上传

    当用户选择完图片后,我们可以使用`Intent.getData()`获取图片的Uri,然后转换为File对象,并封装成RequestBody: ```java File imageFile = FileUtils.getFileFromUri(context, imageUri); RequestBody request...

Global site tag (gtag.js) - Google Analytics