http请求与响应格式
http与requests请求
requests是用python处理HTTP的一个包
1)http方法
方法 | 说明 | 支持的HTTP协议版本 |
GET | 获取资源 | 1.0、1.1 |
POST | 传输实体主体 | 1.0、1.1 |
PUT | 传输文件 | 1.0、1.1 |
HEAD | 获得报文首部 | 1.0、1.1 |
DELETE | 删除文件 | 1.0、1.1 |
OPTIONS | 询问支持的方法 | 1.1 |
TRACE | 追踪路径 | 1.1 |
CONNECT | 要求用隧道协议连接代理 | 1.1 |
LINK | 建立和资源之间的联系 | 1.0 |
UNLINE | 断开连接关系 | 1.0 |
2)对应的Requests方法
r = requests.get()
r = requests.post()
r = requests.put()
r = requests.delete()
r = requests.head()
r = requests.options()
3)参数
关键字参数 | params= |
HTTP头部 | headers= |
表单 | data= |
文件 | file= |
cookies | cookies= |
重定向处理 | allow_redirects=False/True |
超时 | timeout= |
证书验证 | verify=False/True |
工作流(延迟下载) | stream=False/True |
事件挂钩 | hooks=dict(response=) |
response | 为从一个请求产生的响应 |
身份验证 | auth= |
代理 | proxies= |
4)方法
url | .url |
text | .text |
编码 | .encoding .encoding= |
响应内容 | .content |
json解码器 | .json |
原始套接字响应 | .raw .raw.read()(需要开启stream=True) |
检测响应状态码 | .status_code |
历史响应代码 | .history |
抛出异常 | .raise_for_status() |
查看服务器响应头 | .headers header.get()/.headers[] |
查看cookie | .cookies .cookies[] |
身份验证 | .auth= |
更新 | .update() |
解析连接字头 | .links[] |
get请求
post请求
get与post的区别
requests.get传递参数
requests.post传递参数
小结:
放在data中,则在body内
放在json中,则在body内
放在headers中,则在headers中
放在param中,则在GET中
request请求https
状态码
HTTP响应我们提到状态码这个概念,状态码一般以1/2/3/4/5 开头,如下所示:
1xx: | 信息响应类,表示接收到请求并且继续处理 |
2xx: | 处理成功响应类,表示动作被成功接收、理解和接受 |
3xx: | 重定向响应类,为了完成指定的动作,必须接受进一步处理 |
4xx: | 客户端错误,客户请求包含语法错误或者是不能正确执行 |
5xx: | 服务端错误,服务器不能正确执行一个正确的请求 |
常见状态码如下所示:
1xx:信息
状态码 | 描述 |
100 Continue | 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。 |
101 Switching Protocols | 服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。 |
2xx:信息
状态码 | 描述 |
200 OK | 请求成功(其后是对GET和POST请求的应答文档。) |
201 Created | 请求被创建完成,同时新的资源被创建。 |
202 Accepted | 供处理的请求已被接受,但是处理未完成。 |
3xx:信息
状态码 | 描述 |
300 Multiple Choices | 多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。 |
301 Moved Permanently | 所请求的页面已经转移至新的url。 |
302 Found | 所请求的页面已经临时转移至新的url。 |
303 See Other | 所请求的页面可在别的url下被找到。 |
304 Not Modified | 未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。 |
4xx:信息
状态码 | 描述 |
400 Bad Request | 服务器未能理解请求。 |
401 Unauthorized | 被请求的页面需要用户名和密码。 |
402 Payment Required | 此代码尚无法使用。 |
403 Forbidden | 对被请求页面的访问被禁止。 |
404 Not Found | 服务器无法找到被请求的页面。 |
5xx:信息
500服务器内部错误 | 服务器遇到错误,无法完成请求。 |
501尚未实施 | 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。 |
502错误网关 | 服务器作为网关或代理,从上游服务器收到无效响应。 |
503服务不可用 | 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。 |
504网关超时 | 服务器作为网关或代理,但是没有及时从上游服务器收到请求。 |
505HTTP 版本不受支持 | 服务器不支持请求中所用的 HTTP 协议版本。 |