常用状态码:
1xx(以1开头):服务器成功接收部分请求
2xx:一般表示成功
3xx:一般表示重定向
4xx :一般表示客户端错误
5xx :一般表示服务器错误
200 表示成功
404 服务器无法找到被请求的页面 你访问的资源不存在
403 服务器拒绝访问 权限不够 Forbidden
500 请求未完成,服务器遇到不可预知的情况
常用的请求方法:
GET/POST(最常用) PUT/DELETE/OPTION/HEAD
GET: 一般用于请求网页,获取数据 (对应数据库的查)
POST: 一般用于上传数据,表单提交(登陆/注册/上传头像) (对应增)
DELETE:一般用于删除文件/数据 (对应删)
PUT: 一般用于更新数据 (对应改)
面试题
get和post的区别
1.参数位置
GET:参数一般位于URL后面
POST:参数一般位于请求体中
2.数据长度
GET请求上传数据的话,长度有限制
POST 长度理论上没有限制,实际上取决于服务器上的处理能力
3.安全性
POST相当于GET安全一些,但是两者都不安全
4.应用场景
GET一般用于获取数据
POST一般用于上传数据
5.注:以上全部都是大众说法,但是在我看来,网络协议并没有规定上述特征
举例说明使用requests发送get/post请求
GET参数
URL?参数1=内容1&参数2=内容2....
注意:参数部分不能出现空格或者特殊字符
response = requests.get() 括号里需要可填三个参数,其中后两个参数可不填
参数1: url,填网址
参数2: params,网址后需要添加的参数
参数3: **kwargs,不定长键值对参数,一般key=value
headers={}
cookies={} 或者 CookieJar
timeout=小数或者元组
response = requests.get(
"http://www.baidu.com",
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0"
}
)
print("响应头", response.headers)
print("响应数据", response.content)
print("响应行中的状态码", response.status_code)
print("响应行中的短语", response.reason)
拼接网址,利用params传递参数,将其拼接在url后边
response = requests.get(
"https://www.baidu.com/s",
params={
"wd": "python"
}
)
POST参数
response = requests.post() 括号里需要可填三个参数,其中后两个参数可不填
参数1:url
参数2:data,类似于params
参数3:json
参数4:**kwargs
response = requests.post(
"http://dig.chouti.com/login",
data={
"phone": "8615896901897",
"password": "qweqweqwe1",
"oneMonth": "1"
},
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0",
}
print(response.text)