【技术干货】Python之模拟http请求测试

简介: 【技术干货】Python之模拟http请求测试


首先我们用django建一个简单的web应用,然后启动并访问

1.用python模拟get请求

在浏览器中访问该应用http://127.0.0.1:8000,并通过firebug看下网络请求



一个get请求,状态码为200,然后响应了一些html

用python来替代浏览器模拟试试吧



用python模拟的get,获取返回的状态与内容都是与浏览器一致的,只是html没有渲染出界面来

 

2.用python模拟post

在浏览器中输入页面http://127.0.0.1:8000/index/,然后在输入用户与密码,点击提交



看下网络请求,是在使用post向http://127.0.0.1:8000/add/提交数据,参数是user,password




看响应内容




现在我们用python同样模拟下post请求




看起来好好的样子,有没有感觉这个post有问题,看起来很容易被伪造啊,

嗯,存在跨站请求伪造漏洞,在cookies里面加个token看看




有了csrftoken以后,我们再来试试提交,会发现post提交内容中多了个参数,这样是不是安全了一点




再来用python试试吧

用户和密码的值我知道,但是csrfmiddlewaretoken的值我不知道啊,这怎么弄呢?

仔细观察就会发现,csrfmiddlewaretoken的值其实就是cookies里面的csrftoken值

而csrftoken这个值在访问http://127.0.0.1:8000/index就会有了(其实就是服务端返回这个值的)




总结:python能够用request库模拟http协议请求,get,post,加cookies.

假设上面的post接口是一个登录接口,加上csrf真的很安全吗,当然不是,这个例子中python就能简单模拟,用jmeter也能去并发请求(下次分享),但如果加上图片验证码的话,嘿嘿,你看着办吧!

 

PS:想知道上文中演示的web应用是怎么搭建的吗,那就期待下次的分享吧!可恶,又是下次分享啊!

相关文章
|
6月前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
660 130
|
9月前
|
JavaScript 前端开发 API
Node.js中发起HTTP请求的五种方式
以上五种方式,尽管只是冰山一角,但已经足以让编写Node.js HTTP请求的你,在连接世界的舞台上演奏出华丽的乐章。从原生的 `http`到现代的 `fetch`,每种方式都有独特的风格和表现力,让你的代码随着项目的节奏自由地舞动。
829 65
|
7月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
685 2
|
8月前
|
Go 定位技术
Golang中设置HTTP请求代理的策略
在实际应用中,可能还需要处理代理服务器的连接稳定性、响应时间、以及错误处理等。因此,建议在使用代理时增加适当的错误重试机制,以确保网络请求的健壮性。此外,由于网络编程涉及的细节较多,彻底测试以确认代理配置符合预期的行为也是十分重要的。
323 8
|
8月前
|
缓存
|
7月前
|
JSON JavaScript API
Python模拟HTTP请求实现APP自动签到
Python模拟HTTP请求实现APP自动签到
|
7月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
8月前
|
缓存 JavaScript 前端开发
Vue 3 HTTP请求封装导致响应结果无法在浏览器中获取,尽管实际请求已成功。
通过逐项检查和调试,最终可以定位问题所在,修复后便能正常在浏览器中获取响应结果。
318 0
|
8月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
559 0
|
10月前
|
Go
在golang中发起http请求以获取访问域名的ip地址实例(使用net, httptrace库)
这只是追踪我们的行程的简单方法,不过希望你跟着探险家的脚步,即使是在互联网的隧道中,也可以找到你想去的地方。接下来就是你的探险之旅了,祝你好运!
544 26

推荐镜像

更多