get请求和post请求

一、使用requests发送get请求
requests发送get请求
二、使用urllib发送get请求
urllib3主要使用连接池进行网络的访问,以访问之前我们需要创建一个连接池对象
在这里插入图片描述
备注:这边会有警告,这是因为urllib3时代,官方强制要求验证http安全证书,如果没有通过不能通过请求,这边添加
urllib3.disable_warnings(),可以去除警告信息
在这里插入图片描述
三、状态码
1.参考:http://tool.oschina.net/commons?type=5
2.常见状态码
200:请求成功
301:代表永久性转移
302:代表临时转移
404:请求失败,请求资源未在服务器上发现
500:务器遇到了一个未曾预料的状况
505:服务器不支持,或者拒绝支持在请求中使用的 HTTP 版本
四、请求头
1.一个HTTP请求报文由请求行(request line)、请求头(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。
在这里插入图片描述
2.get请求增加请求头
在这里插入图片描述
3.urllib3中增加请求头
在这里插入图片描述
4.get中增加参数和增加请求头的区别
https://q.cnblogs.com/q/90948/

补充知识参考:https://blog.csdn.net/qq_28483283/article/details/80207674
学习get与post请求
一.get请求和post请求的区别
(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)
(2)post发送的数据更大(get有url长度限制)
(3)post能发送更多的数据类型(get只能发送ASCII字符)
(4)post比get慢
(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据
二、为什么post请求比get请求慢
1.post请求包含更多的请求头
post需要在请求的body部分包含数据post不能进行管道化传输
2.post在真正接收数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据
post请求的过程:
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
(4)服务器返回100 Continue响应
(5)浏览器发送数据
(6)服务器返回200 OK响应
get请求的过程:
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
(4)服务器返回200 OK响应
3.get会将数据缓存起来,而post不会
对于chrome和Firefox浏览器,get请求会有缓存,IE浏览器不会
4.post不能进行管道化传输 (需验证)
三、get请求传参最大长度的误解
(1)http协议并未规定get和post的长度限制
(2)get的最大长度限制是因为浏览器和web服务器限制了URL的长度
(3)不同的浏览器和web服务器,限制的最大长度不一样
(4)要支持IE,则最大长度为2083byte,若支持Chrome,则最大长度8182byte

参考文章:https://www.jb51.net/article/143444.htm
https://www.cnblogs.com/KGoing/p/6146999.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值