• http请求之get和post的区别


    http请求之get和post的区别
    前言:
    大家现在度娘一下,查得最多的区别,可能就是:

    “Get把参数写在URL中,Post通过请求体来传参的”

    “GET没有POST安全,因为Get参数直接显示在URL上”

    “Get请求在URL中传送的参数是有长度限制的,而POST是没有的”

    但是,真相是这样的吗?!!!真相永远只有一个!!!

    先分析一波:

    GET和POST与数据如何传递没有关系??

      GET和POST是由HTTP协议定义的。那么使用哪个方式与应用层的数据如何传输是没有相互关系的。从而,HTTP就没有要求,POST一定要放到请求体里面,GET就一定要放到URL里面。

      在HTML标准中,是有着类似的定义。但这只是HTML标准对HTTP协议的用法的约定。也就是规范上说,无区别。

      那么,这个说法是从何而来的呢?是因为有各种浏览器等软件的实现,就变成了我们现在熟知的现象,GET要用URL传参,POST用body传参。

    HTTP协议对GET和POST有没有对长度的限制??

      HTTP协议明确地指出了,HTTP请求头和请求体都没有长度的要求。

      而对于URL长度上的限制,有两方面的原因造成:

      1. 浏览器。据说IE对URL长度会限制在2048个字符内。但是就我所知,firefox是支持10W以上的长度。

      2. 服务器。服务器处理超长的URL本身就是一种负担,更何况遭受恶意攻击呢?因此,多数服务器出于安全、稳定等多方面的考虑,会给URL长度加限制。

       但是这个限制是针对所有HTTP请求的,与GET、POST没有关系。

    安全不安全和GET、POST有没有关系??

      这个问题,首先你得确认面向对象。

      举个例子:

      1.你现在要让我爸爸妈妈去看看这个URL,你觉得安全吗?

      2.你现在要让一个刚入门的初级功能测试工程师去测试这个链接,你觉得安全吗?

      3.你现在要让安全测试工程师去看看get请求,你觉得安全吗?

      所以,针对不同的人群,安全的定义就会不一样。

    “如果你愿意一层一层一层的剥开我的心 ,你会发现你会讶异 ,你是我最压抑 ,最深处的秘密 ”

    把Get和Post剥开后,他们的本质上就是TCP链接,并无差别。
    只是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

    那么真相到底是什么呢?

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

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

    转自:https://www.cnblogs.com/zymnstlm/p/9479634.html

  • 相关阅读:
    学习完vue指令 做的一个学生信息录入系统
    vue常用指令总结
    vue介绍以及相关概念理解大全
    class类
    javascript闭包详解
    前端必看网站(一直更新中)
    微信小程序wx.getUserInfo获取用户信息
    微信小程序自定义组件注意事项
    微信小程序自定义选项卡
    uni-app开发注意事项及常用样式
  • 原文地址:https://www.cnblogs.com/jiangmingbai/p/12175711.html
Copyright © 2020-2023  润新知