zoukankan      html  css  js  c++  java
  • 【HTTP】全面比较HTTP GET与POST方法

    全面比较HTTP GET与POST方法

    1.       基本信息比较

    属性

    GET方法

    POST方法

    历史:

    通常使用GET方法发送的数据作为URL的一部分将会被浏览器保存起来

    使用POST方法提交的数据则不会作为URL的一部分,当然不会浏览器保存。

    书签:

    GET方法可能被浏览器当作书签(bookmark)保存

    POST方法则不会

    回退与重新提交:

    使用GET方法的页面可以被回退并重新执行而不通知用户

    POST方法会通知用户再次提交

    Form编码类型:

    GET提交数据只支持

    application/x-www-form-urlencoded

    POST支持application/x-www-form-urlencoded与multipart/form-data

    参数:

    由于GET的参数一般都跟在URL后面,支持的数据大小一般在2K,有些服务器可以支持到64K。这个就是很多网页超过64K就挂掉的真实原因。因为服务器限制了。

    发送参数,还可以是文件,大小在理论上没有限制。

    被攻击:

    GET方法提交数据很容易被黑客攻击,实施脚本绑架。

    POST方法相对GET方法不是那么容易被黑客攻击

    数据类型限制:

    GET方法提交数据只能是文本数据

    POST方法则不受限制,二进制文件也可以。

    安全性:

    GET方法的安全性比POST方法要低一些,原因是数据做为URL的一部分是可见的。而且被浏览器存在历史访问记录中。

    POST方法的安全性相对GET要高一些。因为参数数据不能被浏览器作为URL的一部分而存入历史访问记录中。

    表单数据长度:

    由于表单数据做为URL的一部分而URL长度通常是有限制的。

    POST方法没有限制。

    可用性:

    GET方法通常不被用来发送密码与敏感信息。但是我发现还是有不少网站用GET来实现login。比如XXXX社区,它把login方法放在一个jquery完成JavaScript脚本中,用GET请求完成。

    POST方法可以用来发送密码与其他敏感信息。

    可见性:

    GET方法对所有人可见

    POST方法的变量是不可见的在URL中

    缓存:

    GET方法默认被缓存,这个就是很多时候用GET方法获取数据后面要跟个时间戳的原因

    POST方法默认不被缓存。

    除非Response头设置了Cache-Control或者Expires属性值。

    最大的变量值:

    GET支持最大为7607个字符

    POST方法支持最大值为8MB

    应用场合:

    GET最常用的场合是获取数据,浏览器获取网页时候绝大多数通过GET方法实现,大多数浏览器下载也是使用GET方法获取文件

    POST主要用来向服务器提交数据。

     个人整理与总结,欢迎大家拍砖

    http://blog.csdn.net/jia20003/article/details/8497108

  • 相关阅读:
    highcharts的表名
    highcharts的引用
    Factory 模式
    PHP中interface与 implements 关键字
    PHP中为位运算符(几乎很少用)
    &,引用复制@,忽略错误提示
    TP中手动加载类库
    TP框架自动加载优先级
    交换机和路由器
    Ucenter,Discuz
  • 原文地址:https://www.cnblogs.com/daishuguang/p/3939258.html
Copyright © 2011-2022 走看看