Post and Get
Post 和 Get 是两种常用的http的方法,这两种方法有什么不一样?
字面上看Get就是获取查询的意思,Post是提交,比如提交表单。
从功能来说二者并无本质区别,都是客户端向服务器发送一个请求并带上请求的一些信息,服务器根据请求进行处理然后返回处理结果。
细节上来讲区别之处
对于提交的数据而言,get方法会把提交的数据接在url后面。这样有两个问题一 url长度有一个限制,好像是1024字节,二url直接在浏览器上是可见的,别人一下子就看到了,所以稍微敏感的信息肯定不行。
比如 baidu的搜索
GET http://www.baidu.com/s?ie=utf-8&csq=1&pstg=20&mod=2&isbd=1&cqid=86ac81b00001ce98&istc=1090&ver=0N5eTwkC_OPaje7a5P4N6O9X2bN-XiyVCI_&chk=54f952cb&isid=ba5a6e8f00004536&ie=utf-8&f=8&rsv_bp=1&tn=SE_hldp01010_6r0gix1f&wd=123&rsv_pq=ba5a6e8f00004536&rsv_t=5fbbCc9ezrwd%2FwsrSP7QL8UmzZiv8OQ%2FuGCyJAfo3xMWChReQQ1SM2RBkVfxeSEtuQMCd%2B%2B9R5xDa4%2BY&rsv_enter=0&inputT=846381&oq=cookie%E5%92%8C&rsv_sug3=135&rsv_sug1=12&rsv_sug4=846381&bs=http%E7%BB%93%E6%9E%84%E5%8C%96%E7%9A%84%E5%85%AB%E5%85%83%E7%BB%84%E5%BA%8F%E5%88%97&f4s=1&_ck=898.0.-1.-1.-1.-1.-1&rsv_stat=-2 HTTP/1.1
问号后面接的就是提交的数据,是啥数据一目了然
而post有一些不一样,post提交的数据会放在http请求的data中,这样至少浏览器的url看不见了,而且也没有了长度的限制
对于说二者对服务器的数据有没有改变,个人觉得不是判断的标准,get操作同样可以改变服务器的东西,只是看你服务器是怎么设计的