zoukankan      html  css  js  c++  java
  • get 和post的区别

    (1)get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。Post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,用户看不到这个过程。

    (2)对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的变量。两种方式的参数都可以用Request获取。(3)get传送的数据量较小,不能大于2KB。Post传送的数据量较大,一般被默认为不受限制。但理论上,因服务器的不同而异。

    (4)get安全性非常低,post安全性较高。

          另外,get请求有以下特性:它会将数据添加到URL中,通过这种方式传递到服务器,通常利用一个?代表URL地址的结尾与数据参数的开端,后面的参数每一个数据参数以“名称=值”的形式出现,参数与参数之间利用一个连接符&来区分。

    Post请求有以下特性:数据是放在HTTP主体中的,其组织方式不止一种,有&连接方式,也有分隔符方式,可隐藏参数,传递大批数据,比较方便。

    总之,当提交表单的时候通常用post请求,当要传送一个较大的数据文件时用post请求;当传递的值只需用参数方式(不大于2KB)时,用get方式即可。

    • GET在浏览器回退时是无害的,而POST会再次提交请求。

    • GET产生的URL地址可以被Bookmark,而POST不可以。

    • GET请求会被浏览器主动cache,而POST不会,除非手动设置。

    • GET请求只能进行url编码,而POST支持多种编码方式。

    • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

    • GET请求在URL中传送的参数是有长度限制的,而POST么有。

    • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

    • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

    • GET参数通过URL传递,POST放在Request body中。

    GET和POST还有一个重大区别,简单的说:

    GET和POST本质上就是TCP链接。但GET产生一个TCP数据包;POST产生两个TCP数据包。

    对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

    而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

  • 相关阅读:
    day_15补充加总结
    Day_15 内置模块er
    sort 函数 与 sorted 函数区别
    python 代码风格------------PEP8规则
    python 返回值
    函数记忆 : startswith() 与 endswith
    RE模块使用
    正则表达式
    collections
    函数datetime
  • 原文地址:https://www.cnblogs.com/sarah-wen/p/10823417.html
Copyright © 2011-2022 走看看