您的位置:首页 > 其它

GET和POST的区别

2015-10-25 19:29 232 查看
            根据HTTP规范,POST可能会修改服务器上的资源的请求。比如CSDN的博客,我们发表一篇文章或者看别人的博客提交一条评论是通过POST请求来实现的,为什么呢?因为在提交文章或者评论后资源就不同了,或者说资源被修改了,这些便是“不安全的方法”,所以,POST的请求方式是相对比较安全的方法。刚刚评论完博客,有感而发…… 
            感觉博客中一直少一篇比较get和post的博客,所以,今天,决定好好的巩固一下基础知识…… 


POST和GET的区别

1、原理不同: 

            一般我们在浏览器输入一个网址访问网站都是GET请求;在FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。HTTP定义了与服务器交互的不同方式,其中最基本的四种:GET,POST,PUT,DELETE,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTTP请求不会产生什么动作。不会产生动作意味着GET和HEAD的HTTP请求不会在服务器上产生任何结果。但是安全方法并不是什么动作都不产生,这里的安全方法仅仅指不会修改信息。根据HTTP规范,POST可能会修改服务器上的资源的请求。 

2、数据量 

            GET传送的数据量较小,不能大于2KB。POST传送的数据量较大,一般默认为不受限制。 

3、安全性、效率 

            传统的比较都是觉得GET安全性非常低,POST安全性较高。因为GET请求的数据会暴露在地址栏中,而POST请求则不会。但是GET的执行效率比POST方法好。通过我们自己做的网站也是可以追踪到,GET提交的数据,用户名和密码将会明文出现在URL上,这样就给一些人一个机会,当别人拿到你的账号和密码之后后果不堪设想,听到这里突然毛骨悚然,但是又看到下面这样一则故事,顿时觉得这个世界还好……


最后附上一个小段子

            是谁说的安全不安全和GET、POST没有关系。这个小段子,应该可以体会出这个说法多么的可笑。 
            觉得POST数据比GET数据安全的人会说“防君子不防小人; 
            中国小白多,能防小白用户就行了。” 
            “哼,”我不以为然,“那你怎么不说,URL参数都Encode过了,或是Base64一下,小白也看不懂啊。” 
            那人反驳道,“Encode太简单了,聪明点儿的小白很容易就可以Decode并修改掉。” 
            我笑道,“五十步笑百步耳,再聪明点儿的小白还会截包并重发呢,Opera就有这功能。” 
            那人阴险地祭出神器——最终解释权,说,“这个不算小白。” 
            我日啊。哈哈!

            用一句话总结GET和POST的区别,GET的安全性较POST方式要差些,包含机密信息的话,建议用POST数据提交方式。在做数据查询时,建议用GET方式;而在做数据添加、修改、删除时,建议用POST方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: