GET和POST的区别以及传参详细解说

这篇具有很好参考价值的文章主要介绍了GET和POST的区别以及传参详细解说。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

该文章为自己学习及经验总结,里面可能会有不准确的地方,后续会不断的修正
文章内容主要针对软件测试人员需要掌握的范围


一、get和post的区别

1、w3school 标准答案

GET和POST的区别以及传参详细解说

2、GET、POST 请求报文上的区别

GET 和 POST 只是 HTTP 协议中两种请求方式,而 HTTP 协议是基于 TCP/IP 的应用层协议,无论 GET 还是 POST,用的都是同一个传输层协议,所以在传输上,本质没有区别

报文格式上,不带参数时,最大区别就是第一行方法名不同, 仅仅是报文的几个字符不同而已
POST 方法请求报文第一行是这样的 POST /url HTTP/1.1
GET 方法请求报文第一行是这样的 GET /url HTTP/1.1
带参数时报文的区别呢? 在约定中,最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。

例子
如果请求方法为 GET,那么请求数据为空。它主要是在 POST 中进行使用,适用于需要填表单(FORM)的场景。我们通过一个实际的例子来看看 HTTP 的 GET 请求报文是什么样的,我们这里以访问 api.github.com/search/users?q=JakeWharton为例,通过抓包我们得到的请求报文如下所示:
GET和POST的区别以及传参详细解说
我们重点看到请求行:

GET/search/users?q=JakeWharton HTTP/1.1

可以看到请求方法用的是 GET 请求,URL为/search/users?q=zhangsan,协议为 HTTP1.1。
请求行下面部分全都是请求头部,我们可以看到 host为 api.github.com,连接方式为长连接等信息。值得注意的是我们这个例子中是不存在请求数据的。

接下来我们再来看一下 POST请求的报文:
GET和POST的区别以及传参详细解说
可以看到请求行中请求方法为 POST,URL里没有问号后接参数,协议版本也是 HTTP1.1 。它和上面 GET 方法例子不一样的地方在于它的请求参数是位于请求数据中的,可以看到 “biz_id”:“edu”,“room_id”:10001,"platform。。。 就是它的请求数据。并且我们要注意到在请求数据和请求头之间是空出一行的,这是必不可少的。

二、传参

一般情况下,params在get请求中使用,data、json在post请求中使用

1.get传参

见上文GET、POST 请求报文上的区别

2.post传参

传入参数json

传入参数, json=data json关键字参数就是表示 content-type :application/json

import requests

url = 'http://120.78.128.25:8766/futureloan/member/register'
headers = {"X-Lemonban-Media-Type":"lemonban.v2"}
data = {"mobile_phone":"13712341280","pwd":"12345678"}
#一定要添加header关键字参数,不能以位置参数传递
#因为放到了可变长参数里边
#content-type不需要添加,为什么??json关键字参数就是表示content-type,
res = requests.post(url,json=data,headers=headers)
print(res.json())

GET和POST的区别以及传参详细解说

传入参数data

传入参数, data=data关键字参数表示 表单格式application/x-www-form-urlencoded

import requests

url = 'http://120.78.128.25:8766/futureloan/member/register'
headers = {"X-Lemonban-Media-Type":"lemonban.v2"}
data = {"mobile_phone":"13712341280","pwd":"12345678"}
#一定要添加header关键字参数,不能以位置参数传递
#因为放到了可变长参数里边
#data 关键字参数表示   表单格式x-www-form-urlencoded
res = requests.post(url,data=data,headers=headers)
print(res.json())

GET和POST的区别以及传参详细解说

传入参数params

params=data,params 参数就是表示 query string(就是放在url参数里边)

import requests

url = 'http://120.78.128.25:8766/futureloan/member/register'
headers = {"X-Lemonban-Media-Type":"lemonban.v2"}
data = {"mobile_phone":"13712341280","pwd":"12345678"}
#一定要添加header关键字参数,不能以位置参数传递
#因为放到了可变长参数里边
#params 参数就是表示 query string
res = requests.post(url,params=data,headers=headers)
print(res.json())

GET和POST的区别以及传参详细解说

总结

后续继续修正。
最后三个例子摘自https://blog.csdn.net/guiyin1150/article/details/109191783文章来源地址https://www.toymoban.com/news/detail-406033.html

到了这里,关于GET和POST的区别以及传参详细解说的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java http GET POST 请求传参

    HTTP POST请求传参方式 方式一: 方式二 HTTP GET请求传参方式

    2024年02月15日
    浏览(49)
  • uniapp发起post和get请求——this.$http.get 和 this.$http.post传参

    main.js按照内容自行修改

    2024年02月15日
    浏览(53)
  • go api(get post传参,数据库,redis) 测试

    介绍:分别测试get请求,post请求,请求链接数据库,以及redis操作。 1.api代码 2.相关sql 3.测试 3.1 get 3.2 post 这里面包括了测试redis 4.完整代码 项目地址

    2024年01月25日
    浏览(40)
  • requests之post请求data传参和json传参区别

    在一次接口post测试请求传参异常的记录 传输到后台服务器报了异常 显而易见我的请求头的content-type类型有异常了,但我明明传的是application/json为什么给我转成了另外的格式呢? 在解释之前先提一下 httpbin.org 这个网站,这个网站的介绍是 A simple HTTP Request Response Service. ,简

    2024年02月10日
    浏览(49)
  • GET 和 POST 方式区别

    目标: 理解 GET 和 POST 请求方式的区别 分支名: get_post 注意: 后端采用 express 编写 ●npm i 安装依赖 ●npm run start 启动后端接口项目 ●即可在前端发起测试 效果 可以自行查看 network 里, 发现 GET 方式无法携带请求体, 浏览器做的限制 项目运行效果说明:后端会把收到的 GET / POS

    2024年02月21日
    浏览(43)
  • get和post的区别

    1.幂等性 由于get是读,post是写,因此get请求是幂等的,post不是幂等的 由于get是读,post是写,get请求可以被缓存,post请求无法被缓存 由于get是读,post是写,get方式可以收藏为书签,post方式不可以 幂等性是指一个资源无论请求多少次的效果都是一样的 2.请求参数 get方式的请

    2024年01月18日
    浏览(79)
  • 登录时发起的请求是Get还是Post?Get和Post的区别

    为了保证信息的安全性,注册、登录等操作通常都会使用 POST 请求, GET 请求一般用来获取信息 1. 根据HTTP规范,GET用于信息获取。 GET 请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以相连,如: login.action? GET 方式提交的数据最

    2024年02月13日
    浏览(59)
  • Post和Get,Post和Put请求的区别

    最直观的区别就是 Get 请求把参数包含在 url 中,但是 Post 通过 request body 传递参数 1、应用场景 Get 请求是一个幂等的请求,一般 Get 请求用于对服务器资源不会产生影响的场景(如请求一个网页的资源); Post 不是一个幂等的请求,一般用于对服务器资源会产生影响的场景(

    2024年02月02日
    浏览(61)
  • get和post请求的区别

    GET和POST是HTTP请求的两种方法,其区别如下 ① GET请求表示从指定的服务器中获取数据(请求数据),比如查询用户信息;POST请求表示将数据提交到指定的服务器进行处理(发送数据), ② GET请求是一个幂等的请求,一般用于对服务器资源不会产生影响的场景,比如说请求一个网

    2024年02月10日
    浏览(44)
  • 【爬虫】get 和 post 的区别

    get 和 post请求是http协议中的两种请求方式。 get一般用来获取服务器的信息的,post一般是用来更新信息。 1)get请求的参数会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以相连;POST 请求的参数,放在 Request body中。 所以,GET比POST更不安全

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包