• post和get的区别


    一、原理上的区别:

    1.根据HTTP规范,GET用于信息获取,(请求指定的页面信息,并返回实体主体),而且应该是安全的和幂等的。

      (1).所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。

      * 注意:这里安全的含义仅仅是指是非修改信息

      (2).幂等的意味着对同一URL的多个请求应该返回同样的结果。

    2.根据HTTP规范,POST表示可能修改变服务器上的资源的请求。(向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中,POST请求可能会导致新的资源建立或已有资源的修改)

    二、表面上的区别:

    1.(1)GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发             送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

     (2)POST把提交的数据则放置在是HTTP包的包体中。

    2."GET方式提交的数据最多只能是1024字节,理论上POST没有限制,POST 的大小默认为 8M,可以在服务器配置中进行修改

    3.POST的安全性要比GET的安全性高,通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site  request forgery攻击。

    三、header上的区别

    GET与POST方法实例:
    GET /books/?sex=man&name=Professional HTTP/1.1
    Host: www.wrox.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
    Gecko/20050225 Firefox/1.0.1
    Connection: Keep-Alive

    POST / HTTP/1.1
    Host: www.wrox.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
    Gecko/20050225 Firefox/1.0.1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 40
    Connection: Keep-Alive
    (----此处空一行----)
    name=Professional%20Ajax&publisher=Wiley

     参考于:http://blog.csdn.net/csj50/article/details/5687850

    如有转载,请注明出处:http://blog.csdn.net/csj50/article/details/5687850

  • 相关阅读:
    保留字段数组,一定要用char
    VirtualBox安装CentOS 7及其相关配置
    istringstream是支持>>一个bool的,但为什么不用?
    用vector实现一个变长数组
    C语言为什么被const声明的变量不是一个常量表达式
    不咬文嚼字的理由
    int变量赋值给char变量的本质
    #include <> 和 #include "" 的区别
    C++中匿名对象应当是一个左值
    js实战之-间断文字滑动
  • 原文地址:https://www.cnblogs.com/chrdai/p/6888863.html
Copyright © 2020-2023  润新知