编写一个demo server
#!/user/bin/env python
# -*- coding: utf-8 -*-
from flask import Flask, session, Request, request, make_response
app = Flask(__name__)
request: Request
app.secret_key = "key"
@app.route( "/request", methods=['POST', 'GET'])
def hello( ) :
query = request.args
post = request.form
return f"query: {query}\n"\
f"post: {post}"
-
在terminal中输入:
flask run
进行运行
image.png 在浏览器中输入:127.0.0.1:5000/request?a=1&b=2
-
发送get与post请求
curl -s 'http://127.0.0.1:5000/request?a=1&b=2' -v &>/tmp/get
curl -s 'http://127.0.0.1:5000/request' -d "a=1&b=2" -v &>/tmp/post
-
get和post对比
image.png
image.png
- HTTP的Method字段不一样,URL中get请求一般都带有参数
- Post请求如果有数据,会带上 Content-Length 和 Content-Type ,即请求的内容长度和类型
post也可以发送query请求
- `curl -s 'http://127.0.0.1:5000/request?a=1&b=2' -d "a=3&b=4" -v &> /tmp/post
image.png
get与post的区别总结
- http的method字段不同
- post可以附加body,可以支持form、json、 xml、binary等各种数据格式
- 行业通用的Restful规范
- 无状态变化的建议使用get请求(比如请求多次结果一致,不涉及信息修改)
- 数据的写入与状态修改建议用post
Session、Cookie区别实战解析。