精华内容
下载资源
问答
  • Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GETPOST,PUT,DELETE。URL全称是资源描述符,我们...到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
  • 下面小编就为大家带来一篇C#模拟http 发送postget请求的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 简述HTML中postget请求区别

    万次阅读 多人点赞 2019-05-23 20:04:22
    简述ajax中postget请求区别,以及请求报文欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个...

    post与get的对比

    1.参数

    GET传递的参数只能带URL后面,文本格式QueryString,各浏览器一般有长度限制,一般认为是2083,如果有中文字符更短。提交到服务器端的数据量小。

    POST可以传递application/x-www-form-urlencoded的类似QueryString、multipart/form-data的二进制报文格式(支持文件信息嵌入报文传输)、纯文本或二进制的body参数。提交到服务器端的数据量大。

    2.用途

    GET用于从服务器端获取数据,包括静态资源(HTML|JS|CSS|Image等等)、动态数据展示(列表数据、详情数据等等)。

    POST用于向服务器提交数据,比如增删改数据,提交一个表单新建一个用户、或修改一个用户等。

    3.缓存

    GET时默认可以复用前面的请求数据作为缓存结果返回,此时以完整的URL作为缓存数据的KEY。所以有时候为了强制每次请求都是新数据,我们可以在URL后面加上一个随机参数Math.random或时间戳new Date().getTime()、或版本号。

    比如abc.com?a=1&rnd=0.123987之类的。这也是目前一些静态资源后面加一个很长的版本号的原因,jquery-min.js?v=13877770表示一个版本,当页面引用jquery-min.js?v=13877771时浏览器必然会重新去服务器请求这个资源。jQuery.ajax方法,如果cache=false,则会在GET请求参数中附加”_={timestamp}”来禁用缓存。

    POST一般则不会被这些缓存因素影响。

    4.安全性

    默认对于nginx的access log,会自动记录get或post的完整URL,包括其中带的参数。

    对于POST来说,请求的报文却不会被记录,这些对于敏感数据来说,POST更安全一些。

    5.自动化性能测试:

    基于上面提到的nginx日志,可以使用grep GET+日期,awk格式化,然后sort -u去重,从而提取到某天的所有GET请求URL,使用程序模拟登陆,然后请求所有URL即可获取简单的性能测试数据,每个请求是否正确,响应时间多少等等。

    但是对于POST请求,因为不知道报文,无法这样简单处理。可以通过nginx-lua获取报文输出到log,这样格式化会麻烦很多,但不失为一个办法。

    6.GET和POST对服务器的状态

    根据http的设计,大家在看到get的时候,都期望这个请求对服务器没有修改,看到post的时候,都认为这对服务器产生了修改。

    7.GET幂等,POST不幂等

    1.按照RFC规范,PUT,DELETE和安全方法都是幂等的。虽说是规范,但服务端实现是否幂等是无法确保的。

    2.引入幂等主要是为了处理同一个请求重复发送的情况,比如在请求响应前失去连接,如果方法是幂等的,就可以放心地重发一次请求。这也是浏览器在后退/刷新时遇到POST会给用户提示的原因:POST语义不是幂等的,重复请求可能会带来意想不到的后果。

    3.比如在微博这个场景里,GET的语义会被用在「看看我的Timeline上最新的20条微博」这样的场景,而POST的语义会被用在「发微博、评论、点赞」这样的场景中。

    请求报文

    1. 请求报文构成

    一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成。
    大致结构是这样的:

         <request-line> //请求行
        
         <headers> //首部行
            
         <blank line> //空行
       
         <request-body> //请求体
    

    一个简单的例子:

        POST /user HTTP/1.1      //请求行
        Host: www.user.com
        Content-Type: application/x-www-form-urlencoded
        Connection: Keep-Alive
        User-agent: Mozilla/5.0.      //以上是首部行
        (此处必须有一空行)  //空行分割header和请求内容 
        name=world   请求体
    

    1.1 请求行

    请求行由三部分组成:请求方法,请求URL(不包括域名),HTTP协议版本
    请求方法比较多:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT
    最常用的是GET和POST。

    1.1.1 请求方法

    1) GET
    传递参数长度受限制,因为传递的参数是直接表示在地址栏中,而特定浏览器和服务器对url的长度是有限制的。
    因此,GET不适合用来传递私密数据,也不适合拿来传递大量数据。

    一般的HTTP请求大多都是GET。
    2)POST

    POST把传递的数据封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据,对数据量没有限制,也不会显示在URL中。
    表单的提交用的是POST。
    3)HEAD

    HEAD跟GET相似,不过服务端接收到HEAD请求时只返回响应头,不发送响应内容。所以,如果只需要查看某个页面的状态时,用HEAD更高效,因为省去了传输页面内容的时间。
    4)DELETE

    删除某一个资源。

    5)OPTIONS

    用于获取当前URL所支持的方法。若请求成功,会在HTTP头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, POST”。

    6)PUT

    把一个资源存放在指定的位置上。
    本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。

    关于POST和PUT的区别以及请求方法的幂等性,请参考文章:http的7种请求方法和幂等性

    7)TRACE

    回显服务器收到的请求,主要用于测试或诊断。

    8)CONNECT

    CONNECT方法是HTTP/1.1协议预留的,能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接与非加密的HTTP代理服务器的通信。

    1.1.2 HTTP协议版本

    1)HTTP/1.0
    HTTP/1.0支持:GET、POST、HEAD三种HTTP请求方法。
    2)HTTP/1.1
    HTTP/1.1是当前正在使用的版本。该版本默认采用持久连接,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。
    HTTP/1.1新增了:OPTIONS、PUT、DELETE、TRACE、CONNECT五种HTTP请求方法。

    1.2 请求头部

    请求头部由关键字/值对组成,每行一对

    User-Agent : 产生请求的浏览器类型
    Accept : 客户端希望接受的数据类型,比如 Accept:text/xml(application/json)表示希望接受到的是xml(json)类型
    Content-Type:发送端发送的实体数据的数据类型。
    比如,Content-Type:text/html(application/json)表示发送的是html类型。
    Host : 请求的主机名,允许多个域名同处一个IP地址,即虚拟主机

    1.2.1 Content-Type

    常见的Content-Type:

    Content-Type解释
    text/htmlhtml格式
    text/plain纯文本格式
    text/cssCSS格式
    text/javascriptjs格式
    image/gifgif图片格式
    image/jpegjpg图片格式
    image/pngpng图片格式
    application/x-www-form-urlencodedPOST专用:普通的表单提交默认是通过这种方式。form表单数据被编码为key/value格式发送到服务器。
    application/jsonPOST专用:用来告诉服务端消息主体是序列化后的 JSON 字符串
    text/xmlPOST专用:发送xml数据
    multipart/form-dataPOST专用:下面讲解

    multipart/form-data
    用以支持向服务器发送二进制数据,以便可以在 POST 请求中实现文件上传等功能
    现在用Postman向百度发送一个请求方式为multipart/form-data的POST包,请求报文是这样的:

        POST / HTTP/1.1
        Host: www.baidu.com
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
        Cache-Control: no-cache
        Postman-Token: 033120fe-2185-15d4-e486-75e86e2baddd
        
        ------WebKitFormBoundary7MA4YWxkTrZu0gW
        Content-Disposition: form-data; name="url"
        
        https://www.baidu.com/
        ------WebKitFormBoundary7MA4YWxkTrZu0gW
        Content-Disposition: form-data; name="name"
        
        waffle
        ------WebKitFormBoundary7MA4YWxkTrZu0gW
        Content-Disposition: form-data; name="desk"; filename="桌子.jpg"
        Content-Type: image/jpeg
        
        ...contents of 桌子.jpg...
        ------WebKitFormBoundary7MA4YWxkTrZu0gW--
    

    其中, boundary这个参数是分界线的意思,这个分界线参数具体是什么你可以随意自定义 ,建议定义复杂一点,因为这样子才不会跟请求体中其它字段重复。
    上面的例子看出分界线=“–”+boundary
    每个参数都由分界线分隔开,参数名(二进制数据还需要指明文件类型)和参数值之间有一行空行,这个空行不能省略:

        ------WebKitFormBoundary7MA4YWxkTrZu0gW
        Content-Disposition: form-data; name="url"
        
        https://www.baidu.com/
    

    消息主体最后以 --boundary-- 标示结束。
    更加详细的解释可以参考:Multipart/form-data

    1.3 空行

    请求头之后是一个空行,通知服务器以下不再有请求头

    1.4 请求体

    GET没有请求数据,POST有。
    与请求数据相关的最常使用的请求头是 Content-Type 和 Content-Length 。

    展开全文
  • 本代码是httpclient发送get请求和post请求demo,具体描述参考博客 HttpClient发送get请求和post请求
  • 这个是关于android的OkHttp3框架的代码实例,里面包括POST和GET请求,请大家多多指教。
  • 主要介绍了ajax请求post和get区别以及get post的选择,需要的朋友可以参考下
  • PostGet请求测试工具

    2019-03-12 08:51:22
    PostGet请求测试工具,文档中有详细的使用说明!
  • 一个简单的易学的 基于HttpClient 4.3发送psot及get请求,返回数据,适合初学者,适合初学者
  • 我们知道通常浏览器支持getpost两种常见的请求方式,那么在python当中如何具体实现呢? GET 首先是get,我们知道get指令比较简单,通常便是在浏览器窗口地址栏中使用?xx=xxxxx 那么在python当中如何实现这个过程呢...
  • 08-01 OKHttp3的post和get请求 08-01 OKHttp3的post和get请求
  • 本文给大家介绍Java如何实现URL带请求参数(get/post)及得到get和post请求url参数列表的方法,涉及到java获取post请求参数的方法,感兴趣的朋友一起看看吧
  • 主要介绍了Python大数据之网络爬虫的post请求、get请求区别,结合具体实例形式分析了Python网页爬虫post请求与get请求相关使用技巧,需要的朋友可以参考下
  • get请求和post请求的详细区别

    万次阅读 多人点赞 2019-06-06 16:29:40
    GET和POST是HTTP请求的...你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。 当你在面试中被问到这个问题,你的内心充满了自信喜悦。 你轻...

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。

     

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

     

    你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。

     

    当你在面试中被问到这个问题,你的内心充满了自信和喜悦。

     

    你轻轻松松的给出了一个“标准答案”:
     

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

       

    • GET产生的URL地址可以被Bookmark,而POST不可以。

       

    • GET请求会被浏览器主动cache,而POST不会,除非手动设置。

       

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

       

    • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

       

    • GET请求在URL中传送的参数是有长度限制的,而POST么有。

       

    • 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

       

    • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

       

    • GET参数通过URL传递,POST放在Request body中。

    (本标准答案参考自w3schools)

     

    “很遗憾,这不是我们要的回答!”

     

    请告诉我真相。。。

     

    如果我告诉你GET和POST本质上没有区别你信吗? 


    让我们扒下GET和POST的外衣,坦诚相见吧!


    GET和POST是什么?HTTP协议中的两种发送请求的方法。

     

    HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。

     

    HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。 

     

    那么,“标准答案”里的那些区别是怎么回事?

     

     

     

    在我大万维网世界中,TCP就像汽车,我们用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象。但是如果路上跑的全是看起来一模一样的汽车,那这个世界看起来是一团混乱,送急件的汽车可能被前面满载货物的汽车拦堵在路上,整个交通系统一定会瘫痪。为了避免这种情况发生,交通规则HTTP诞生了。HTTP给汽车运输设定了好几个服务类别,有GET, POST, PUT, DELETE等等,HTTP规定,当执行GET请求的时候,要给汽车贴上GET的标签(设置method为GET),而且要求把传送的数据放在车顶上(url中)以方便记录。如果是POST请求,就要在车上贴上POST的标签,并把货物放在车厢里。当然,你也可以在GET的时候往车厢内偷偷藏点货物,但是这是很不光彩;也可以在POST的时候在车顶上也放一些数据,让人觉得傻乎乎的。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。

     

    但是,我们只看到HTTP对GET和POST参数的传送渠道(url还是requrest body)提出了要求。“标准答案”里关于参数大小的限制又是从哪来的呢?

     


     

    在我大万维网世界中,还有另一个重要的角色:运输公司。不同的浏览器(发起http请求)和服务器(接受http请求)就是不同的运输公司。 虽然理论上,你可以在车顶上无限的堆货物(url中无限加参数)。但是运输公司可不傻,装货和卸货也是有很大成本的,他们会限制单次运输量来控制风险,数据量太大对浏览器和服务器都是很大负担。业界不成文的规定是,(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url。超过的部分,恕不处理。如果你用GET服务,在request body偷偷藏了数据,不同服务器的处理方式也是不同的,有些服务器会帮你卸货,读出数据,有些服务器直接忽略,所以,虽然GET可以带request body,也不能保证一定能被接收到哦。

     

    好了,现在你知道,GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。 

     

    你以为本文就这么结束了?

     

    我们的大BOSS还等着出场呢。。。

     

    这位BOSS有多神秘?当你试图在网上找“GET和POST的区别”的时候,那些你会看到的搜索结果里,从没有提到他。他究竟是什么呢。。。

     

    GET和POST还有一个重大区别,简单的说:

    GET产生一个TCP数据包;POST产生两个TCP数据包。

     

    长的说:

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

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

     

    也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。

     

    因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效。因此Yahoo团队有推荐用GET替换POST来优化网站性能。但这是一个坑!跳入需谨慎。为什么?

    1. GET与POST都有自己的语义,不能随便混用。

    2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。

    3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

     

    现在,当面试官再问你“GET与POST的区别”的时候,你的内心是不是这样的?

     

    结束!!!

    原文:https://www.cnblogs.com/logsharing/p/8448446.html

    想了解更多java基础知识,关注个人微信公众号:小周只会基础

    (公众号是新申请的,有问题留言就行,后期有时间会完善公众号)

    展开全文
  • GET和POST请求区别(超详细)

    千次阅读 2021-03-25 21:17:42
    相信很多小伙伴在面试的过程中,总会被面试官问道:“请你回答一下GET请求和POST请求的区别?” 大家的回答一般都是如下图: 对于有了2年以上开发经验的小伙伴来说,光回答这几点是不够滴。接下来,我就告诉大家...

    GET和POST请求的区别(超详细)

    相信很多小伙伴在面试的过程中,总会被面试官问道:“请你回答一下GET请求和POST请求的区别?”

    大家的回答一般都是如下图:
    在这里插入图片描述
    对于有了2年以上开发经验的小伙伴来说,光回答这几点是不够滴。接下来,我就告诉大家可以补充以下几点:
    在这里插入图片描述
    1.报文上的区别
    GET 和 POST 只是 HTTP 协议中两种请求方式,所以在传输上,没有区别,因为HTTP 协议是基于 TCP/IP 的应用层协议
    报文格式上,不带参数时,最大区别仅仅是第一行方法名不同,一个是GET,一个是POST
    带参数时报文的区别呢?在约定中,GET 方法的参数应该放在 url 中,POST 方法参数应该放在 body 中
    举个例子,如果参数是 name=qiming.c, age=22。
    GET 方法简约版报文可能是这样的

    GET /index.php?name=qiming.c&age=22 HTTP/1.1
    Host: localhost

    POST 方法简约版报文可能是这样的

    
POST /index.php HTTP/1.1
    
Host: localhost

    
Content-Type: application/x-www-form-urlencoded name=qiming. c&age=22

    2.GET 方法参数写法是固定的吗?
    在约定中,一般我们的参数是写在 ? 后面,用 & 分割。
    我们知道,解析报文的过程是通过获取 TCP 数据,用正则等工具从数据中获取 Header 和 Body,从而提取参数。
    也就是说,我们可以自己约定参数的写法,只要服务端能够解释出来就行,一种比较流行的写法是这样 :
    http://www.example.com/user/name/yourname/age/22

    3、POST 方法比 GET 方法安全?
    按照网上大部分文章的解释,POST 比 GET 安全,因为数据在地址栏上不可见。
    然而从传输的角度来说,他们都是不安全的,因为 HTTP 在网络上是明文传输,只要在网络节点上抓包,就能完整地获取数据报文。
    要想安全传输,就只有加密,也就是 HTTPS

    好啦,各位,先讲解到这里啦,我要去睡个美容觉啦

    展开全文
  • 在线POST-GET请求测试

    2018-04-10 09:47:09
    主要用户调试接口,支持POST/GET两种请求方式,现在网上已经有很多的在线请求工具,但是由于部分电脑的浏览器版本过低打开后就报错,导致不能获取数据,此工具也是为了解决这里用户的需求开发。开发环境为Visual ...
  • 主要介绍了JSP、Servlet中get请求和post请求的区别总结,列举了多条不同点,需要的朋友可以参考下
  • GET请求和POST请求的区别

    千次阅读 2020-04-23 22:41:50
    博客参考w3school做出的总结 先了解什么是HTTP? HTTP,又被称为超文本传输协议,是...两种请求HTTP的方法(GET/POST) GET:GET请求是从指定资源请求数据 POSTPOST请求向指定支援提交要被处理的请求 来自w3s...

    博客参考w3school做出的总结


    先了解什么是HTTP?

    • HTTP,又被称为超文本传输协议,是互联网上应用最为广泛的一种网络协议,HTTP 的工作方式是客户机与服务器之间的请求-应答协议,web浏览器以及计算机网络应用程序都是可以作为服务端的

    两种请求HTTP的方法(GET/POST)

    • GET:GET请求是从指定资源请求数据
    • POST:POST请求向指定支援提交要被处理的请求

    来自w3school的图

     

    展开全文
  • java调用HTTP接口(Get请求和Post请求)
  • C# 使用Get和Post请求获取数据

    热门讨论 2015-07-30 09:56:17
    C# 使用GetPost请求获取数据 并解析获取到的Json数据
  • 异步处理主球,能有效地解决xmlhttp组件卡死问题
  • Get请求和Post请求的区别

    千次阅读 2020-02-21 21:58:39
    1)请求形式 ①Get举例子来说吧: url : “http://www.imooc.com?a=1&b=2&c=3” 这个地址,问号之后的称为参数。我们可以看出:有3个参数,a,b,c.它们的值分别是1,2,3你已经想到了,&就是“”的意思...
  • get post 请求有哪些区别

    万次阅读 2019-07-01 18:15:33
    get post 请求有哪些区别? 1、从主流浏览器的实现角度看 下面的对比表格摘自:w3school --HTTP 方法:GET 对比 POST GET POST 后退按钮/刷新 无害 数据会被重新提交(浏览器应该告知用户数据...
  • Get和Post请求区别和使用场景

    千次阅读 多人点赞 2019-04-12 10:45:28
    Get请求和Post请求区别: (1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中) (2)post发送的数据更大(get有url长度限制) (3)post能发送更多的数据类型(get只...
  • java实现get请求post请求,文件传输 /** * 发送https请求 * @param requestUrl 请求地址 * @param requestMethod 请求方式(GET、POST) * @param outputStr 提交的数据 * @return 返回微信服务器响应的信息 ...
  • 用HTML页面模式get/post请求,psot请求参数的格式为json串
  • 处理GET请求 1.1 接收GET请求 //接收GET请求 func Get(writer http.ResponseWriter , request *http.Request) { query := request.URL.Query() // 第一种方式 // id := query[id][0] // 第二种方式 id := ...
  • post请求和get请求传递参数区别

    千次阅读 2020-01-16 11:46:03
    根据语义,get请求从服务端获取资源或者查询,post请求pull数据或者创建资源。 get请求属于url类型请求,get请求是不能通过body传递数据,服务端拿到的body事空值。因此get请求想要提交数据就得把参数写在url后面,...
  • http协议是互联网上应用最为广泛的一种网络协议,他在接口中扮演着重要的角色,Post/Get请求,想必大家都有所耳闻,我们一起利用Boost::Asio库来实现Post/Get请求的发送。 VS2013 文章地址:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 705,768
精华内容 282,307
关键字:

post和get请求的区别