IT Notes‎ > ‎Networks‎ > ‎

Differences between POST and GET

Differences between POST and GET

Post与Get的真正区别是其作用上的不同,Post是被设计用来向上放东西的(就像其名字所暗示的那样);而Get是被设计用来从服务器取东西的,它所以也能够向服务器传送较少的数据,是以为当你取东西时,你需要指明取什么,而我们有时候利用指明取什么的机制来向服务器放东西。
基于以上原因,Post与Get在http中传送的方式是不同的,Get的参数是在http的头部传送的,而Post的数据则是在http请求的内容里传送的,一般来说,我们没有看到这中间的差别,那是因为编程环境帮(如servlet)我们隐藏了其不同

get是显示地提交,数据参数在url里会显示出来,

GET方法将数据打包放置在环境变量QUERY_STRING中作为URL整体的一部分传递给服务器。 POST做很多类似GET同样的事情, 不同的地方就是它是分离地传递数据给脚本. 你的脚本通过标准输入获取这些数据. QUERY_STRING环境变量将不再设置.因此POST有更好的安全性,尤其如果你的表单中有很多数据的话. 当你用GET, 这个服务器就分配变量QUERY_STRING给所有的表单数据, 但是这个变量可存储量是有限的. 换句话说,如果你有很多数据但是你又用GET,你会丢失很多数据。 如果你用POST, 你可以尽可能多地使用数据, 因为这些数据从来也不分配到一个变量里。此外用post传递数据还有一个好处,它不会象get那样把你传送的数据暴露在浏览器的地址栏中,而且由于 HTTP/GET常见于Web链接,怀有恶意的人可能利用它实施欺骗,使别人在不知不觉中用自己的安全标识调用Web服务,却还以为自己在点击Web链接。比如象下面这种:form.php?name=genius&pwd=123456 ,明白了吧?所以还是用post让人安心一点啦。

http://www.jxcn.cn/so/cnstu/54/26541.htm (deleted)
Comments