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

  • 相关阅读:
    Python数据分析与机器学习-Matplot_2
    Python数据分析与机器学习-Matplot_1
    1008. 数组元素循环右移问题 (20)
    Latex小技巧
    执行PowerShell脚本的时候出现"在此系 统上禁止运行脚本"错误
    Linux使用MentoHust联网线上校园网, 回到普通有线网络却连不上?
    Re:uxul
    Linux下nautilus的右键快捷菜单项设置
    从入门到入狱——搭讪技巧
    Latex命令
  • 原文地址:https://www.cnblogs.com/daishuguang/p/3939258.html
Copyright © 2011-2022 走看看