zoukankan      html  css  js  c++  java
  • 请求类型 GET 和 POST 的区别

    一、GET

    一个简单的 GET 请求:

    xmlhttp.open("GET","demo_get.asp",true);
    xmlhttp.send();

    在上面的例子中,可能得到的是缓存的结果。

    为了避免这种情况,需要向 URL 添加一个唯一的 ID:

    xmlhttp.open("GET","demo_get.asp?t=" + Math.random(),true);
    xmlhttp.send();

    如果通过 GET 方法发送信息,要为 URL 添加信息:

    xmlhttp.open("GET","demo_get2.asp?fname=Bill&lname=Gates",true);
    xmlhttp.send();

    另外,GET 请求具有以下的几个特点: 

    • GET 请求可被缓存
    • GET 请求保留在浏览器历史记录中
    • GET 请求可被收藏为书签
    • GET 请求不应在处理敏感数据时使用
    • GET 请求有长度限制
    • GET 请求只应当用于取回数据

    二、POST

    一个简单 POST 请求:

    xmlhttp.open("POST","demo_post.asp",true);
    xmlhttp.send();

    如果像 HTML 表单那样 POST 数据,要用 setRequestHeader() 来添加 HTTP 头,然后在 send() 方法中规定所要发送的数据

    xmlhttp.open("POST","ajax_test.asp",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("fname=Bill&lname=Gates");

    这里 setRequestHeader() 包含两个参数 header 和 value,前者用来规定头的名称,后者规定头的值。

    另外,POST 请求具有以下的几个特点:  

    • POST 请求不会被缓存 
    • POST 请求不会保留在浏览器历史记录中 
    • POST 请求不能被收藏为书签
    • POST 请求对数据长度没有要求

    为什么 open 方法第三个参数 Async=true ?

      该参数规定请求是否异步处理,如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作

    三、选 GET 还是选 POST?

    与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用,然而,在以下情况中,必须用 POST 请求:

    • 无法使用缓存文件(更新服务器上的文件或数据库)
    • 向服务器发送大量数据(POST 没有数据量限制)
    • 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
     
  • 相关阅读:
    redhat 5.0 python2.4升级到2.7
    bindiff 4.2使用
    patchdiff2 函数比较插件
    OpenGL 获取当前屏幕坐标对应的三维坐标
    CsGL着色的三角形
    glEnable(GL_DEPTH_TEST)作用
    OpenGL之抗锯齿 以及 线宽的设置
    glLoadIdentity
    2.AngularJS-验证
    1.MVC概要与angular概要、模板与数据绑定
  • 原文地址:https://www.cnblogs.com/Leophen/p/11209600.html
Copyright © 2011-2022 走看看