文档章节

HTTP - GET和POST的区别

huangjacky
 huangjacky
发布于 2014/10/12 12:21
字数 611
阅读 18
收藏 0

网上有很多文章介绍这两种HTTP请求的区别,我也不懂,主要还是看了一些文章,在这里写下一些笔记。


  1. 语义不同
    在HTTP协议中,最初规定GET是用来查询或者获取资料,只读,POST用于修改数据,可写。因此可以看到两种方式的使用场景上就有很大的区别,在RESTful中更是强调了这两种HTTP请求方式目的。规定是死的,人是活的,所以很多人为了方便GET也用于修改数据,比如删除某个记录,这样很容易被CSRF,题外话。
  2. 发送数据
    HTTP协议中,GET和POST都可以先服务器发送数据,GET的提交的数据只能在URL中表示,而URL只允许部分可见字符,其他字符都需要转换%xx的形式;POST提交的数据可以在URL中,也可以在BODY里,在BODY里面的数据可以是URLEncoded的普通数据,同样是可以是直接的二进制流数据,这样可以剩下不少流量。一个字节变成%xx,长度就是原来的三倍了。
  3. 长度限制
    在HTTP协议中,GET和POST提交的数据长度是没有限制的。但是一般的浏览器和服务器软件都会限制URL的长度,因为一般服务器会把URL当成字符串来进行使用,一个超长的字符串肯定会影响到服务器的性能。而POST提交数据虽然会比GET的数据大很多,但是一般服务器还是会限制其大小,在nginx中,有一个配置项为client_max_body_size就是来设置POST的body数据大小的,有兴趣的朋友可以试一下。
  4. 安全性
    安全性和这两种方式没有任何关系。数据在HTTP上面走,肯定会被别人嗅探到,关键还是看你对数据的加密程度和算法了。上面说道了GET进行一些写操作容易被csrf,其实只要在GET请求中带上一些防御csrf的措施,那就不会被CSRF攻击了。反之如果使用的是POST方式,但是没有部署anti-CSRF方案的话,同样会被csrf攻击的。

好了,我的笔记写完了,有兴趣的朋友可以拍砖。哈哈,交流学习下。

本文转载自:http://www.cnblogs.com/huangjacky/p/4018139.html

共有 人打赏支持
huangjacky
粉丝 5
博文 19
码字总数 0
作品 0
深圳
技术主管
私信 提问
HTTP Get和Post的区别 - 说点别的

最近面试被问到get和post的区别,因为觉得这个问题太基础了,勉强的回答了一下(面试没过),回去的路上突然觉得压根没弄明白具体的区别是什么。下面开始分析有不对的地方欢迎指正! 常见区别:...

尚小胖
2016/12/06
35
0
转:99%的人理解错 HTTP 中 GET 与 POST 的区别

转:https://www.oschina.net/news/77354/http-get-post-different 作者:王练 侵删 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是...

森林范丶
2018/07/04
0
0
你敢在post和get上刁难我,就别怪我装逼了

> 掘金编辑提醒:本文疑似有误,参考 听说「99% 的人都理解错了 HTTP 中 GET 与 POST 的区别」 之前好几次面试都被问到post和get有什么区别,肯定很多同学和我一样说了一大堆什么post比get安...

再这么说就哭了呦!
2017/11/03
0
0
99%的人都理解错了HTTP中GET与POST的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和...

颓废的幻想者
2016/08/19
109
0
99%的人理解错 HTTP 中 GET 与 POST 的区别

GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和...

王练
2016/09/22
38.2K
87

没有更多内容

加载失败,请刷新页面

加载更多

听说拼多多因漏洞被薅了200亿?- 谈谈软件测试

昨天看到一个大新闻:拼多多在20日凌晨出现漏洞,用户可以领100元无门槛优惠券。一夜之间,被黑产、羊毛党和闻讯而来的吃瓜群众薅了个底朝天,直到第二天上午9点才将优惠券下架。网上传言这一...

crossin
29分钟前
2
0
微服务架构有毒,何时不使用微服务?

在过去的四年中,使用微服务来构建应用程序似乎成了一种标准。大多数我所合作过的团队也对此表现出了不同程度的兴趣。 微服务所承诺的弹性、高可用、低耦合、敏捷,以及能够解决单体架构带来...

架构师springboot
34分钟前
2
0
日志服务Python消费组实战(三):实时跨域监测多日志库数据

摘要: 本文主要介绍如何使用消费组实时监控多个域中的多个日志库中的异常数据,并进行下一步告警动作。具备配置简单、逻辑灵活、支持跨域多Region、实时监测,无需配置索引等特点,并且性能...

阿里云云栖社区
35分钟前
2
0
常用css动效

1.列表浮层变化动效 demo地址 下载地址 2.js动画库 github地址 3.滚动加载 Scrollreveal 4.其他动效 tobiasahlin

chinahufei
36分钟前
3
0
Coding and Paper Letter(四十六)

资源整理。 1 Coding: 1.卫星影像深度学习资源。 satellite image deep learning 2.runoff tools为MOM生成径流文件的一些工具变得轻而易举。 runoff tools 3.NOAA-GFDL海冰模拟器V2.0。 SIS2...

胖胖雕
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部