美文网首页
GET和POST的区别

GET和POST的区别

作者: 夜舞暗澜_3ea2 | 来源:发表于2018-04-14 20:14 被阅读0次

    当浏览器地址中输入一个URL,或是客户端发起一个请求时,浏览器内核将会解析这个URL。URL一般包括几大部分:

    • protocol:协议头
    • host:主机域名或IP地址
    • port:端口号
    • path:目录路径
    • query:即查询参数
    • fragment:即#后的hash值,一般用来定位到某个位置

    应用层常见的协议有:

    • http:超文本传输协议资源
    • https:用安全套接字层传送的超文本传输协议
    • ftp:文件传输协议
    • file:当地电脑或网上分享的文件
    • telnet:Telnet协议
    • smtp:电子邮件

    HTTP-超文本传输协议:

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


    从HTTP规范角度讲:

    1. 根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。

    • 1.1 所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。
        * 注意:这里安全的含义仅仅是指是非修改信息。
    • 1.2 幂等的意味着对同一URL的多个请求应该返回同样的结果。

    2. 根据HTTP规范,POST表示可能修改变服务器上的资源的请求。


    从表面看:

    1. GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,而且会进行转码(encodeURI(),encodeURIComponent())。POST把提交的数据则放置在是HTTP包的包体中。
    2. GET方式使用的URL总长会受到特定的浏览器及服务器的限制(IE对URL长度的限制是2083字节(2K+35)),POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。
    !!! HTTP协议规范并没有作出限制。
    3. 后端获取数据的方法不一样,需要看具体语言。
    4. POST的安全性要比GET的安全性高。

    • 通过GET提交数据,用户名和密码将明文出现在URL上,因为
      (1)登录页面有可能被浏览器缓存,
      (2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了
    • 使用GET提交数据还可能会造成Cross-site request forgery(跨站请求伪造)攻击。
    • get请求和post请求的安全等级是一样的,只不过是post的隐私性比get好些。

    参考资料: 浅谈HTTP中Get与Post的区别

    相关文章

      网友评论

          本文标题:GET和POST的区别

          本文链接:https://www.haomeiwen.com/subject/wojlkftx.html