zoukankan      html  css  js  c++  java
  • 浅谈HTTP中get与post的区别

    Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

    1,http中,GET用于信息获取,而且是安全的和幂等的。

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

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

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

    2,http中,POST是用于修改服务器上的资源的请求。

    说完原理性的问题,我们从表面上来看看GET和POST的区别:

    1. get是从服务器上获取数据,post是向服务器传送数据。 
    get 和 post只是一种传递数据的方式,get也可以把数据传到服务器,他们的本质都是发送请求和接收结果。只是组织格式和数据量上面有差别,http协议里面有介绍
      2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 
    因为get设计成传输小数据,而且最好是不修改服务器的数据,所以浏览器一般都在地址栏里面可以看到,但post一般都用来传递大数据,或比较隐私的数据,所以在地址栏看不到,能不能看到不是协议规定,是浏览器规定的。
    3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。 
    没明白,怎么获得变量和你的服务器有关,和get或post无关,服务器都对这些请求做了封装
      4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。 
    post基本没有限制,我想大家都上传过文件,都是用post方式的。只不过要修改form里面的那个type参数
      5. get安全性非常低,post安全性较高。 
    如果没有加密,他们安全级别都是一样的,随便一个监听器都可以把所有的数据监听到。

  • 相关阅读:
    面向对象
    标准库内置模块
    json迭代器生成器装饰器
    基本数据操作
    列表元组字典字符串操作
    深入了解Spring之IoC
    认识OAuth 2.0及实例
    web.xml中context-param和init-param的区别
    虚拟机centos6网卡配置及提示Device does not seem to be present
    JUC之深入理解ReentrantReadWriteLock
  • 原文地址:https://www.cnblogs.com/xxaxx/p/9224965.html
Copyright © 2011-2022 走看看