话说GET与POST那点恩怨

看过很多人写GETPOST之间的区别,为什么这么多人关注它们呢?因为它们是最常用的两种HTTP方法,之间有很多相同之处,也存在非常大的不同。首先了解一下HTTP方法:

  什么是HTTP?     超文本传输协议(HTTP)的实际目的是保证客户机与服务器之间的通讯,即请求-应答协议。web浏览器可能是客户端,而计算机上的应用程序也可能是服务端。举例:客户端(浏览器)向服务器提交HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。

  而GETPOST正是此功能最常用的两种方法:1GET- 从指定的资源请求数据;2POST- 向指定的资源提交被处理的数据,其实就是这两个英文的翻译吧!

  看看这两种方法的比较:

GET

POST

后退按钮/刷新

无害

数据会被重新提交(浏览器应该告知用户数据会被重新提交)。

书签

可收藏为书签

不可收藏为书签

缓存

能被缓存

不能缓存

编码类型

application/x-www-form-urlencoded

application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。

历史

参数保留在浏览器历史中。

参数不会保存在浏览器历史中。

对数据长度的限制

是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

无限制。

对数据类型的限制

只允许 ASCII 字符。

没有限制。也允许二进制数据。

安全性

与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。

在发送密码或其他敏感信息时绝不要使用GET !

POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。

可见性

数据在 URL 中对所有人都是可见的。

数据不会显示在 URL 中。

在JQuery中语法

$.get(URL,callback);

$.post(URL,data,callback);

   例子:GET:

<!DOCTYPE html>  
<html>  
    <head>  
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>  
        <script>  
            $(document).ready(function(){  
              $("button").click(function(){  
                $.get("/example/jquery/demo_test.asp",function(data,status){  
                  alert("数据:" + data + "
状态:" + status);  
                });  
              });  
            });  
        </script>  
    </head>  
    <body>  
        <button>向页面发送 HTTP GET 请求,然后获得返回的结果</button>  
    </body>  
</html>  
 

  POST:

 <!DOCTYPE html>  
    <html>  
    <head>  
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">  
        </script>  
        <script>  
            $(document).ready(function(){  
              $("button").click(function(){  
                $.post("/example/jquery/demo_test_post.asp",  
                {  
                  name:"Donald Duck",  
                  city:"Duckburg"  
                },  
                function(data,status){  
                  alert("数据:" + data + "
状态:" + status);  
                });  
              });  
            });  
        </script>  
    </head>  
    <body>  
        <button>向页面发送 HTTP POST 请求,并获得返回的结果</button>  
    </body>  
</html>  
  综上为简单的GETPOST之间的恩怨诉说,很多之间的区别必须等我们实践过,对比过,才能体会的更深,这里只是提前知道一下!更多的还需要我们在项目中时间来体会的更多!
原文地址:https://www.cnblogs.com/huangcongcong/p/4746591.html