从HTTP的角度分析get 与post的区别

很多人都会使用get与post提交表单,在他们看来,这两个的区别就在于怎样传递参数,一个是显示的,直接附加在转向的链接上。一个则是不显示在链接上;

举个例子,比如我们要传递到的文件的相对路径是  /test/myTest  参数是name=Agoni     pwd=54504

如果你使用get方法提交表单,则链接显示的是/test/myTest?name=Agoni&pwd=54504

而如果是使用的是post方法提交表单,链接是:/test/myTest

相同的地方在于他们都将参数传递过去了。

但是链接不同不是get与post的区别的原因,它只是一个表象,是由于get与post区别而产生的结果而已,不是其原因。

真正的原因在于他们提交的HTTP请求格式不一样:

  GET方法的请求是:

    GET /test/myTest?name=Agoni&pwd=54504 HTTP/1.1

  而POST方法的请求是这样的:

    POST /test/myTest HTTP/1.1

    Connection:Keep-Alive

    name=Agoni&pwd=54504

所以才导致了链接显示的不同。

posted @ 2011-08-15 11:14  _Cafebabe  阅读(322)  评论(2编辑  收藏  举报