返回顶部
首页 > 资讯 > 后端开发 > Python >HTTP协议(9)Python requ
  • 580
分享到

HTTP协议(9)Python requ

协议HTTPrequ 2023-01-31 02:01:55 580人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

通过python中的requests模块也可以来发送Http请求,接收HTTP响应,从而实现一些更加灵活的操作。requests是第三方库,不过在Kali中已经自带了该模块。python3和Python2的用法稍微有些差别,这里先以Pyth

通过python中的requests模块也可以来发送Http请求,接收HTTP响应,从而实现一些更加灵活的操作。
requests是第三方库,不过在Kali中已经自带了该模块。python3Python2的用法稍微有些差别,这里先以Python2为例。
root@kali:~# python

Python 2.7.15 (default, Jul 28 2018, 11:29:29) 
[GCC 8.1.0] on linux2
Type "help", "copyright", "credits" or "license" for more infORMation.
>>> 
>>> import requests

下面以之前做过的Bugku中的Get和Post方法两道题目为例,来介绍requests模块的用法。

1.Get请求
利用requests模块中的get方法,向目标url发送Get请求,将结果赋值给变量r1,直接查看r1的值,将显示状态码。查看text属性可以获得HTTP响应正文。通过print()函数输出,可以解析其中的换行符。

>>> r1=requests.get(url='http://123.206.87.240:8002/get/')
>>> r1
<Response [200]>
>>> r1.text
u"$what=$_GET['what'];<br>\r\necho $what;<br>\r\nif($what=='flag')<br>\r\necho 'flag{****}';<br>\r\n\r\n\r\n"
>>> print(r1.text)
$what=$_GET['what'];<br>
echo $what;<br>
if($what=='flag')<br>
echo 'flag{****}';<br>

下面发送带参数的Get请求,参数要以字典的形式表示:

>>> r1=requests.get(url='http://123.206.87.240:8002/get/',params={'what':'flag'})
>>> print(r1.text)
$what=$_GET['what'];<br>
echo $what;<br>
if($what=='flag')<br>
echo 'flag{****}';<br>

flagflag{bugku_get_su8kej2en}

2.Post请求
仍是向目标url发送Post请求,并将结果存储在变量r2中:

>>> r2=requests.post(url='http://123.206.87.240:8002/post/')
>>> print(r2.text)
$what=$_POST['what'];<br>
echo $what;<br>
if($what=='flag')<br>
echo 'flag{****}';<br>

发送带参数的Post请求:

>>> r2=requests.post(url='http://123.206.87.240:8002/post/',data={'what':'flag'})
>>> print(r2.text)
$what=$_POST['what'];<br>
echo $what;<br>
if($what=='flag')<br>
echo 'flag{****}';<br>

flagflag{bugku_get_ssseint67se}

3.查看报文头
查看headers属性可以获得响应头,可以看到响应头中的信息是以字典的形式存放:

>>> r1.headers
{'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'Keep-Alive': 'timeout=60', 'Server': 'Nginx', 'Connection': 'keep-alive', 'Date': 'Tue, 04 Dec 2018 23:12:33 GMT', 'Content-Type': 'text/html'}

通过for循环对字典中的键进行遍历:

>>> for key in r1.headers:
...     print(key)
... 
Server
Date
Content-Type
Transfer-Encoding
Connection
Keep-Alive
Content-Encoding

遍历键和值:

>>> for key in r1.headers:
...     print(key,r1.headers[key])
... 
('Server', 'nginx')
('Date', 'Tue, 04 Dec 2018 23:12:33 GMT')
('Content-Type', 'text/html')
('Transfer-Encoding', 'chunked')
('Connection', 'keep-alive')
('Keep-Alive', 'timeout=60')
('Content-Encoding', 'gzip')

查看指定的键值:

>>> r1.headers['Server']
'nginx'

查看request.headers属性可以获得请求头:

>>> r1.request.headers
{'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.18.4'}

--结束END--

本文标题: HTTP协议(9)Python requ

本文链接: https://lsjlt.com/news/186141.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • HTTP协议(9)Python requ
    通过Python中的requests模块也可以来发送HTTP请求,接收HTTP响应,从而实现一些更加灵活的操作。requests是第三方库,不过在Kali中已经自带了该模块。Python3和Python2的用法稍微有些差别,这里先以Pyth...
    99+
    2023-01-31
    协议 HTTP requ
  • http协议
    http协议 一 http协议概述 HTTP(hypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。 HTTP就是一个通信规则,通信规则规定了客户端发送给服...
    99+
    2023-01-30
    协议 http
  • PHP(13)HTTP协议
    PHP(13)HTTP协议 一、HTTP请求1. 请求行2. 请求头3. 请求体 二、HTTP响应1. 响应行2. 响应头 三、设置HTTP响应四、模拟HTTP请求 一、HTTP请...
    99+
    2023-09-13
    php http 服务器
  • http协议之Range
    http协议中可能会遇到:请求取消或数据传输中断,这时客户端已经收到了部分数据,后面再请求时最好能请求剩余部分(断点续传);或者,对于某个较大的文件,能够支持客户端多线程分片下载... 以上在我们平时应用中已经有很多产品支持了,其中原理就和...
    99+
    2023-09-02
    http 网络 服务器
  • HTTP协议详解(一)
    目录 1.什么是HTTP协议 2.HTTP的协议格式 使用fiddler抓包工具 理解代理 查看请求内容 3.HTTP请求(Request) 认识URL URL encode 认识method GET方法 POST方法 经典面试题:POST...
    99+
    2023-08-31
    http 网络协议 网络 java 服务器
  • HTTP HSTS协议和 nginx
    HTTP HSTS协议和 nginxNetcraft 公司最近公布了他们检测SSL/TLS网站的研究,并指出只有仅仅5%的用户正确执行了HTTP严格传输安全HSTS。本文介绍nginx如何配置HSTS。什么是HSTSHTTPS(SSL和TL...
    99+
    2023-06-04
  • WebSocket协议与HTTP协议的差异与联系
    引言:随着互联网的普及,Web应用的需求不断增加,为了实现实时交互和推送功能,新的通信协议WebSocket应运而生。而传统的HTTP协议也在这个过程中逐渐被WebSocket取代。本文将重点探讨WebSocket协议与HTTP协议的差异与...
    99+
    2023-10-21
    Http websocket 差异与联系
  • HTTP协议实例分析
    这篇文章主要讲解了“HTTP协议实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTTP协议实例分析”吧! 在web2.0时代,互联网从传统的C/S...
    99+
    2024-04-02
  • HTTP协议详细介绍
    我们日常生活中经常会使用浏览器访问Web站点这个过程中到底发生了什么吗?为什么我们在浏览器地址栏上面输入要访问的URL后就可以访问到Web页面呢?这几乎是面试过程中的高频问题。 简单...
    99+
    2024-04-02
  • HTTP协议详细解读
    文章目录 1. HTTP概念2. HTTP 特点3. HTTP 协议的工作过程4. 认识URL5. HTTP 请求数据格式6. HTTP 响应数据格式7. 总结📂橙子精品文章学习推荐 1. HTTP概念 HTTP...
    99+
    2023-08-16
    http java 网络
  • 【网络】HTTP协议详解
    😀大家好,我是白晨,一个不是很能熬夜😫,但是也想日更的人✈。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!💪💪...
    99+
    2023-08-23
    网络 http 网络协议 服务器 c++
  • Python网络编程之HTTP协议的python应用
    目录搭建python自带静态web服务器1. 静态Web服务器是什么?2. 如何搭建Python自带的静态Web服务器3. 访问搭建的静态Web服务器4. 查看浏览器和搭建的静态We...
    99+
    2022-11-13
    python http协议 http协议python应用 python网络编程 python使用http协议
  • HTTP 协议的演变史:从 HTTP/1.0 到 HTTP/2.0。
    HTTP 协议是互联网上最重要的应用层协议之一,它负责在客户端和服务器之间传输数据。随着互联网的不断发展,HTTP 协议也在不断演变,从最初的 HTTP/0.9 到现在的 HTTP/2.0,不断地改进和完善。本文将为您介绍 HTTP 协议的...
    99+
    2023-08-31
    bash numy http
  • web框架原理,http 协议
    目录 web框架原理 web框架是什么东西 执行代码用浏览器访问一下 输出结果 http 协议 ...
    99+
    2023-01-31
    框架 原理 协议
  • C++中的HTTP协议问题
    目录1、HTTP2、http请求-响应模型3、主要特点4、工作流程5、http请求的组成6、短连接和长连接7、http中的操作8、GET与POST的区别总结1、HTTP Hyper ...
    99+
    2022-12-28
    C++中HTTP协议 HTTP协议 C++ HTTP协议
  • http协议详解(超详细)
    http1. 基础概念篇1.1 介绍  HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Intern...
    99+
    2023-06-04
  • Java的http协议实例分析
    本篇内容主要讲解“Java的http协议实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的http协议实例分析”吧!http协议的组成 http...
    99+
    2024-04-02
  • 使用 Java 类 实现Http协议
    目录Java实现Http协议一、协议请求的定义二、响应协议的定义三、编码常量定义四、客户端的实现五、服务端的实现六、ProtocolUtils工具类的实现七、ByteUtils类的实...
    99+
    2024-04-02
  • Http协议Content-Length实例分析
    本篇内容主要讲解“Http协议Content-Length实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Http协议Content-Length实例分析...
    99+
    2024-04-02
  • HTTP协议的含义是什么
    这篇文章主要介绍了HTTP协议的含义是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 1. 使用谷歌/火狐浏览器分析 在Web应用中...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作