zoukankan      html  css  js  c++  java
  • Ajax中post与get的区别

    getpost都是向服务器发送一种请求,只是发送机制不同 。

    1. GET可以通过在请求URL上添加请求参数,
    而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。
    2. get方式请求数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号密码等。在某种情况下,get方式会带来严重的安全问题。
    而post方式相对来说就可以避免这些问题。
    3. Post请求必须设置请求头Content-Type值为application/x-form-www-urlencoded,如果没有设置,参数无法正确的传递到服务器(本质上说,如果没有参数,也不一定需要设置,不会影响请求的发送); get不用
    4. 发送请求时,因为Get请求的参数都在url里,没有请求主体,使用xhr.send(null),所以send函数发送的参数为null,而Post请求在使用send方法时,却需赋予其参数,xhr.send(参数);
    5. GET大小限制约4K,POST则没有限制(在http中”GET方式提交的数据最多只能是1024字节”,Post传输的数据量大,可以达到2M。 )
    6. POST可以通过xhr.send('name=itcast&age=10')
    7. 如果有数据 值 get要拼接字符串 post不需要设置
    使用post的概率会大一些

    在服务器端的区别:
    1. 在客户端使用get请求时,服务器端使用Request.QueryString来获取参数,而客户端使用post请求时,服务器端使用Request.Form来获取参数.
    2. HTTP标准包含这两种方法是为了达到不同的目的。POST用于创建资源,资源的内容会被编入HTTP请示的内容中。例如,处理订货表单、在数据库中加入新数据行等。
    3. 当请求无副作用时(如进行搜索),便可使用GET方法;当请求有副作用时(如添加数据行),则用POST方法。一个比较实际的问题是:GET方法可能会产生很长的URL,或许会超过某些浏览器与服务器对URL长度的限制。

    若符合下列任一情况,则用POST方法:
    1. 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
    2. 若使用GET方法,则表单上收集的数据可能让URL过长。
    3. 要传送的数据不是采用7位的ASCII编码。

    若符合下列任一情况,则用GET方法:
    1. 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
    2. 请求结果无持续性的副作用。
    3. 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。

    你是什么样的人,便会遇到什么样的人;你想遇到什么样的人,就得先让自己成为那样的人。
  • 相关阅读:
    今天去一个物流公司參观的一些体会
    Yii学习笔记之四(表单验证 api 翻译)
    IT忍者神龟之Hibernat持久化对象-数据表映射配置回想
    LeetCode:Unique Binary Search Trees
    nodejs版本号更新问题:express不是内部或外部命令
    让Apache 和nginx支持跨域訪问
    聊聊高并发(十六)实现一个简单的可重入锁
    【iOS】自己定义TabBarController
    《互联网医疗大棋局》中美移动医疗领域的现状、机会、限制。五星推荐
    《无穷的开始:世界进步的本源》量子物理学家的哲学思考。三星推荐
  • 原文地址:https://www.cnblogs.com/angel648/p/11059068.html
Copyright © 2011-2022 走看看