POST
目录
如题
POST是什么?
POST
是一种HTTP
请求方法, 通过网址中的参数来向服务器请求相应的网络资源.
更详细的HTTP
请求方法介绍, 请见: MDN文档
如何POST?
POST
本质上和GET
都属于给网站提供数据的请求方法. 只不过GET
请求可以通过在网址后面直接构造的方法来使用, 十分的简单便捷.
而POST
不同, POST
是一种有报文的请求方式, 正常用户是无法显式看见POST
请求的详细信息的.
POST
的方法有很多种, 我们只挑两种来讲.
使用Postman
工具
打开Postman
, 界面大致如下:
如上设置好你的数据, 就可以非常方便的向服务器发送请求了.
使用Python
的Requests
库
使用Python
的requests
库是最灵活也是CTF
中最常用的方法.
安装requests
库
确保你的电脑上有Python3
;
$ python3 -m pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
请注意! 不要将requests
错误的写为request
, request
库近期被检出投毒: 链接
如果你使用Linux
, 也可以在对应发行版的软件仓库里找到requests
库的安装包. 例如Arch Linux
:
$ sudo pacman -Syyu python-requests
即可安装requests
库.
尽量使用发行版的包管理器, 这样包管理器更新时会一并检查这些包并自动升级. 如果使用pip
, 可能还需要隔一段时间手动更新以修复一些bug
, 获得新的功能.
使用requests
使用如下脚本即可简单的对一个网站进行请求:
import requests
payload = {"key" : "value"}
url = "https://www.example.com"
response = requests.post(url, data=payload) # 发送请求
print(response.text) # 输出响应主体
print(response.headers) # 输出HTTP响应头
requests
库的用法十分丰富, 还可以使用session
来维持一个会话, 请熟练掌握.
关于更高级的用法本文不再介绍, 请阅读requests官方文档