简单概括下get请求和post请求的区别

get请求和post请求的区别

1、标准答案

区别一,参数位置:GET请求把参数包含在URL中,POST将参数包含在请求体request body中。

区别二,回退:GET在浏览器回退时是无害的,而POST会再次提交请求。

区别三,是否会被标记:GET请求产生的URL地址可以被Bookmark(标签标记),而POST不可以。

GET 请求所产生的 URL 地址可以被用户收藏为书签(bookmark),也就是在浏览器中创建一个链接,以便用户可以随时访问该链接,并重新发起同样的 GET 请求。但是 POST 请求不像 GET 请求一样将请求参数附加在 URL 中,而是将请求参数放在请求体(request body)中,在使用 POST 请求时无法通过收藏书签的方式保存请求参数,因此 POST 请求不能被直接收藏为书签

区别四,编码方式:GET请求只能进行url编码,而POST请求支持多种编码方式。

区别五,是否保存记录:GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

区别六,参数长度限制:GET请求在URL中传送的参数是有长度限制的,而POST因为将参数放到请求体中,所以长度没有限制。

区别七,参数数据类型:GET请求只接受ASCII字符的数据类型,而POST是没有限制的。

区别八,安全性:GET比POST更不安全,因为参数直接暴露在URL中,所以不能用来传递敏感信息。

2、进一步探索get和post的底层

  • 首先,什么是get和post
    这两者其实都是HTTP协议中的发送请求的方式

  • 其次,HTTP的底层是TCP/IP构成,所以GET和POST的底层也是TCP/IP,这么一来,GET和POST其实能做的事情很相似,也就是说,在技术中,你给GET请求用请求体传参,给POST请求用URL传参也不是不可以。

  • 那为什么会出现一个标准答案?
    与其说是答案,不如说是规则,人们按照规则所规定的方式办事,事情总会有序很多,也可以少很多不必要的麻烦。也就是说规定GET请求就将参数放到URL中,而POST请求就将参数放到请求体中。

  • 关于GET请求中参数大小的限制
    对于GET请求,你可以这么想,一个导航栏才多大?如果我参数很多,导航栏肯定是发不下的,而且也不好查看参数;其实究其本质,是因为大多数浏览器通常会限制url长度在2k个字节,而服务器最多处理64k大小的url,超出的部分就不会处理了。

  • 在GET请求的请求体中藏参数可能有什么后果
    不同服务器的处理方式不同,有的可能会帮你从请求体中读取出数据,但有的可能会直接忽略,所以即便GET可以携带参数到请求体中,但也不一定会被后台服务器读取到

  • 补充GET和POST请求的重大区别
    (1)那就是GET产生一个TCP数据包;POST产生两个TCP数据包
    (2)往细点说,对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
    (3)此外,虽然POST在时间上消耗的更多,但并不能直接用GET请求代替POST请求,原因是,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点,而且并不是所有浏览器都会在POST中发送两次包,FIrefox就只发送一次。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx处理请求的过程可以简单概括为以下几个步骤: 1. 接收请求:当Nginx服务器启动并监听指定的端口时,它会等待客户端的连接请求。一旦有客户端发起连接请求,Nginx就会接受该连接并建立起客户端与服务器之间的通信通道。 2. 解析请求头:一旦建立连接,Nginx会读取客户端发送的请求头信息。请求头包含了客户端的请求方式(GET、POST等)、目标URL、HTTP版本和其他相关信息。 3. 处理请求:Nginx根据配置文件中的规则(如反向代理配置、负载均衡配置等)来决定如何处理该请求。它可能将请求转发给后端服务器、进行缓存、重定向或者处理其他特定的操作。 4. 处理响应:一旦Nginx确定了如何处理请求,它会向后端服务器转发请求,并等待后端服务器返回响应。一旦收到响应,Nginx会对响应进行处理,如修改响应头、重定向或者进行其他的操作。 5. 发送响应:经过处理后的响应将由Nginx发送回客户端。Nginx会将响应内容分成较小的数据包,并使用非阻塞IO方式进行发送,以提高性能和并发能力。 6. 关闭连接:一旦响应发送完毕,Nginx会关闭与客户端的连接,释放相关的资源,并等待下一个连接请求的到来。 需要注意的是,Nginx是一个高性能的服务器软件,它使用事件驱动和异步非阻塞的架构来处理请求。这意味着Nginx可以同时处理多个并发连接,并能够高效地处理大量的请求和响应。通过适当的配置和调优,Nginx可以提供高可靠性、高并发性和高性能的服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值