首页 > 其他分享 >Get、Post区别

Get、Post区别

时间:2024-04-30 11:23:19浏览次数:28  
标签:Get 浏览器 请求 区别 get 服务器 长度 Post post

参考:https://www.cnblogs.com/coderwcb/p/16090602.html

区别

  • 语义不同,GET是获取数据,POST是提交数据。
  • GET请求会把附加参数带在URL上,而POST请求会把提交数据放在报文内。
  • post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)
  • post发送的数据更大(get有url长度限制)
  • post能发送更多的数据类型(get只能发送ASCII字符)
  • get比post慢,GET 是会被浏览器主动缓存的,如果下一次传输的数据相同,那么就会返回缓存中的内容,以求更快地展示数据。
  • post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据

为什么Get比Post块

post请求包含更多的请求头

  • 因为post需要在请求的body部分包含数据,所以会多了几个数据描述部分的首部字段(如:content-type),这其实是微乎其微的。

post产生两个TCP数据包

  • GET 方法只产生一个 TCP 数据包,浏览器会把请求头和请求数据一并发送出去,服务器响应 200 ok(返回数据)。
  • POST 方法会产生两个 TCP 数据包,浏览器会先将请求头发送给服务器,待服务器响应100 continue,浏览器再发送请求数据,服务器响应200 ok(返回数据)。
    post请求的过程:
    (1)浏览器请求tcp连接(第一次握手)
    (2)服务器答应进行tcp连接(第二次握手)
    (3)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
    (4)服务器返回100 Continue响应
    (5)浏览器发送数据
    (6)服务器返回200 OK响应
    get请求的过程:
    (1)浏览器请求tcp连接(第一次握手)
    (2)服务器答应进行tcp连接(第二次握手)
    (3)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
    (4)服务器返回200 OK响应

get会缓存数据

post不能进行管道化传输

Get传参长度限制

  • http协议并未规定get和post的长度限制
  • get的最大长度限制是因为浏览器和web服务器限制了URL的长度
  • 即使get有长度限制,也是限制的整个URL的长度,而不仅仅是参数值数据长度,http协议从未规定get/post的请求长度限制是多少
  • 不同的浏览器和web服务器,限制的最大长度不一样
  • 要支持IE,则最大长度为2083byte,若支持Chrome,则最大长度8182byte

标签:Get,浏览器,请求,区别,get,服务器,长度,Post,post
From: https://www.cnblogs.com/hasome/p/18167656

相关文章

  • react diff算法和vue的区别
    区别相同点都是两组虚拟dom的对比(react16.8之后是fiber与虚拟dom的对比)只对同级节点进行对比,简化了算法复杂度都用key做为唯一标识,进行查找,只有key和标签类型相同时才会复用老节点遍历前都会根据老的节点构建一个map,方便根据key快速查找不同点react在diff遍历的时候,......
  • MATLAB 和 Octave 之间的区别
    MATLAB和Octave之间的区别MATLAB和Octave有一些区别,但大多数都是相同的。你可以说Octave是MATLAB的免费版本,语法几乎与MATLAB相同。但是MATLAB比Octave具有更多功能,就像具有Simulink一样,后者用于开发和分析控制系统和电源系统。MATLAB运行起来比Octave更......
  • [postgres]序列
    前言序列都是用createsequence命令创建的单行表,常用于为表的行生成唯一的标识符。相关函数函数作用nextval()递增序列并返回新值currval()返回最近一次用nextval()函数获取的指定序列的值lastval()返回最近一次用nextval()函数获取的任何序列的值setval(......
  • 计算机网络中的路由器和家里的路由器有什么区别?
    计算机网络中的路由器和家里的路由器有什么区别?集线器是什么?什么叫一个网段?一个IP地址只能给一台机器用么?一台机器只能有一个IP地址么?“这里需要注意“发送方的IP”地址不是指计算机的IP,而是指网卡对应的IP,因为IP不是分配给计算机的,而是分配给网卡的,当一个计算机有多个网卡......
  • 正则表达式篇 之三(BRE和ERE区别)
    正则表达式篇之三(BRE和ERE区别)POSIX规范常见的正则表达式记法,其实都源于Perl,实际上,正则表达式从Perl衍生出一个显赫的流派,叫做PCRE(PerlCompatibleRegularExpression),\d、\w、\s 之类的记法,就是这个流派的特征。但是在PCRE之外,正则表达式还有其它流派,比如下面要介绍的POSIX......
  • 数据表删除DROP TRUNCATE DELETE区别
    总的来说,DROP用于删除整个数据库对象(表结构和数据全部删除),DELETE用于删除表中的数据,而TRUNCATE也是删除表中的数据,但比DELETE更快,且无法指定条件删除。根据需求,选择适当的命令来删除数据或对象。 DROP:1.DROP用于删除数据库对象,例如表(table)、索引(index)、视图(view)等。2......
  • WPF pass event method to viewmodel via Interaction:CallMethodAction,TargetObject
    <Windowx:Class="WpfApp71.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.......
  • Linux软件包管理器,RPM和YUM的区别
    RPMRPM(RedhatLinuxPacketManger)是RedHat公司随RedhatLinux推出的一个软件包管理器,通过它能够轻松实现Linux软件的安装。但是,需要手动解决软件包的依赖关系。YUMYUM(YellowdogUpdater,Modified)是一个Shell前端软件包管理器。基于RPM包管理器,能够从指定的服务器自动......
  • 容灾与备份区别、灾备技术、容灾体系规划
    1.容灾备份的区别容灾(DisasterTolerance):就是在上述的灾难发生时,在保证生产系统的数据尽量少丢失的情况下,保持生存系统的业务不间断地运行。容错(FaultTolerance):指在计算机系统的软件、硬件发生故障时,保证计算机系统中仍能工作的能力。区别:容错可以通过硬件冗余、错误检查和......
  • PostCss
    PostCss类似于一个编译器,可以将样式源码编译成最终的CSS代码PostCss和LESS、SASS的思路不同,它其实只做一些代码分析之类的事情,将分析的结果交给插件,具体的代码转换操作是插件去完成的。官方的一张图更能说明postcss的处理流程:这一点有点像webpack,webpack本身仅做依赖分析、......