首页 > 其他分享 >httpGet和httpPost区别

httpGet和httpPost区别

时间:2023-08-18 21:11:19浏览次数:40  
标签:httpGet 浏览器 请求 get 区别 httpPost 服务器 post GET

简单讲讲:

  • Get一般用于从服务器取数据,而且不改变原来的内容;
  • Post一般用于向服务器传递数据,这需要改变服务器的内容。
  • 从安全性上考虑,Get的安全性要稍微差点,因为它会把信息直接在地址栏显示出来。但如果对信息的安全性要求比较高的话,优先考虑使用Post。
  • 综合,如果没有特殊需要,用Get,方便

下面详细讲讲~

  HTTP最早被用来做浏览器与服务器之间交互HTML和表单的通讯协议;后来又被被广泛的扩充到接口格式的定义上。根据 HTTP 规范,GET 用于信息获取,而且应该是 安全的和 幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。POST 请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。

  HTTP定义了与服务器交互的不同方法,其中最基本的四种:GET,POST,PUT,DELETE ,HEAD,其中GET和HEAD被称为安全方法,因为使用GET和HEAD的HTP请求基本不产生什么动作,就意味着GET和HEAD的HTTP请求不会子啊服务器上产生任何结果。但是安全方法并不是什么动作都不产生,这里的安全方法仅仅指不会修改信息。

最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。

  

为什么get比比post更快

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

⒉post在真正接收数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据
post请求的过程:
(1)浏览器请求tcp连接((第一次握手)()服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)(4)服务器返回100 Continue响应
(5)浏览器发送数据
(6)服务器返回200 OK响应get请求的过程:
(1)浏览器请求tcp连接(第一次握手)(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送get请求头和数据((第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)(4)服务器返回200 Ok响应

3.get会将数据缓存起来,而post不会

面试是一般怎么回答get和post的区别
(1) post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)

(2) post发送的数据更大(get有url长度限制)

(3) post能发送更多的数据类型(get只能发送AsCl字符)

(4) postt比get慢(其实差不了多少)

(5) post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据

 

标签:httpGet,浏览器,请求,get,区别,httpPost,服务器,post,GET
From: https://www.cnblogs.com/ff2223/p/17641609.html

相关文章

  • url函数和path函数的区别??
    在Django中,path()和url()都是用于定义URL路由的函数,但它们有一些区别:path()函数:path()函数是Django2版本中引入的新函数,用于定义URL路由。它使用简单的字符串匹配来匹配URL,不支持正则表达式。在path()中,斜杠/被用作路径分隔符,而不需要使用正则表达式中......
  • await this.$nextTick()和this.$nextTick(callback)有什么区别?记一次bug调试
    背景需要实现一个需求,一个小区业务详情页面,在左侧菜单栏切换了小区后,详情页跟着切换。这个详情页面是根据url上的/:id来确定小区id的,所以切换了小区后,应该切换路由。于是这样实现:watch:{//监听小区号变化neighNo(newVal){if(newVal){//切换路......
  • 总结python 元组和列表的区别
    python的基本类型中有元组和列表这么俩个,但是这哥俩却比较难于区分,今天就来用简单的实例说明两者的不同。列表:1.使用中括号([])包裹,元素值和个数可变实例:aaa=['sitename','www','pythontab','com']元组:1.使用中括号(())包裹,不可以被更改(尽管他们的内容可以)bbb=['sitename','www','py......
  • 数字孪生技术与Scada有什么区别?
    虽然SCADA和数字孪生用于工业领域,但它们有不同的用途。SCADA专注于工业过程的实时监测和控制,而数字孪生用于模拟和分析系统的性能。接下来,让我们详细讨论SCADA和数字孪生(SCADA与数字孪生)之间的区别。SCADA与数字孪生的差异SCADA系统专注于工业过程的实时监测和控制,而数字孪生则......
  • 请解释自动装配模式的区别?
    在Spring框架中,自动装配是一种通过Spring容器在应用程序的不同组件之间自动建立依赖关系的机制。它简化了组件之间的配置工作,减少了手动设置依赖的繁琐步骤。Spring提供了几种自动装配模式,其中最常用的有三种:no、byType和byName。no(默认):这是默认的自动装配模式。它表示不进行自动......
  • call,apply,bind的区别
    1.三者都可用于改变函数中this指向,但又有细微区别2.三者的语法传参大致相同,第一个参数表示跟谁建立链接,从第二个参数开始传入具体参数值,但其中apply需要用数组进行传入3.call和apply都可直接调用函数,但bind是返回一个新函数......
  • 委托和事件的区别
    委托的本质,是一个类,而事件,是一个委托类型的私有变量加上两个公有方法(事件的+=和-=),这是本质区别。打个比方,string也是一个类,而strings="a",这个s是string类型的一个变量(略有不恰当,为了方便直观理解)。publicdelegatevoidmyDel();相当于你创建了一个myDel的类,所以委托可以在任......
  • 笔记整理--C语言--数组指针和指针数组的区别 - hongcha_717 - 博客园——转载
    【转载】:原文http://www.cnblogs.com/hongcha717/archive/2010/10/24/1859780.html数组指针和指针数组的区别数组指针(也称行指针)定义int(*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个......
  • 私有云和公有云有什么区别?
    前言私有云和公有云是云计算领域中的两种不同类型的云服务,今天就来给大家讲讲私有云和公有云是什么?它们有什么区别?一、私有云和公有云是什么?1、私有云是什么?私有云是指企业可以完全控制的云计算方式,是为一个客户单独使用而构建的,因而提供对数据、安全性和服务质量的最有效控制......
  • StringBuilder与StringBuffer的区别
    摘要在Java编程中,字符串的拼接是一项常见的操作。为了有效地处理字符串的拼接需求,Java提供了两个主要的类:StringBuilder和StringBuffer。尽管它们都是可变的字符串容器,但在一些关键方面有所不同。以下主要根据现场安全以及性能方面进行分析:线程安全性StringBuffer是线程安全的,而Str......