【Requests库】{3} ——HTTP协议及Requests库方法

Requests库的7个主要方法:
方法说明
requests.request()构造一个请求,支撑以下各方法的基础方法
requests.get()获取HTML网页的主要方法,对应于HTTP的GET
requests.head()获取HTML网页头信息的方法,对应于HTTP的HEAD
requests.post()向HTML网页提交POST请求的方法,对应于HTTP的POST
requests.put()向HTML网页提交PUT请求的方法,对应于HTTP的PUT
requests.patch()向HTML网页提交局部修改请求,对应于HTTP的PATCH
requests.delete()向HTML页面提交删除请求,对应于HTTP的DELETE

HTTP协议

HTTP,Hypertext Transfer Protocol,超文本传输协议。

HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。

HTTP协议采用URL作为定位网络资源的标识。

简单说,用户发起请求,服务器做相关响应,这就是请求与响应的模式。
无状态指的是第一次请求跟第二次请求之间并没有相关的关联。
应用层协议指的是该协议工作在TCP协议之上。


URL格式 http://host[:port][path]
host:合法的Internet主机域名或IP地址
port:端口号,缺省端口为80
path:请求资源的路径

port可以省略,默认为80


HTTP URL实例:

http://www.bit.edu.cn
http://220.181.111.188/duty

HTTP URL的理解:

URL是通过HTTP协议存取资源的Internet路径, 一个URL对应一个数据资源。


HTTP协议对资源的操作:

方法说明
GET请求获取URL位置的资源
HEAD请求获取URL位置资源的响应消息报告,即获得该资源的头部信息
POST请求向URL位置的资源后附加新的数据
PUT请求向URL位置存储一个资源,覆盖原URL位置的资源
PATCH请求局部更新URL位置的资源,即改变该处资源的部分内容
DELETE请求删除URL位置存储的资源

事实上,HTTP协议通过 URL 对资源做定位,通过上面六个常用方法对资源进行管理,每一次操作都是独立无状态的,在 HTTP协议的世界里网络通道跟服务器都是黑盒子,它能看到的就是 URL链接以及对 URL链接的相关操作。

URL 统一资源定位器


理解PUT和PATCH的区别:

假设 URL位置有一组数据 UserInfo, 包括 UserID、 UserName等20个字段。

需求:用户修改了 UserName,其他不变。

  • 采用 PATCH,仅向 URL 提交 UserName 的局部更新请求。
  • 采用 PUT,必须将所有20个字段一并提交到URL,未提交字段被删除。

PATCH的最主要好处:节省网络带宽


PUT 是修改了整条记录,不变的字段也重写一点,不过重写的值与原来相同而已;而 PATCH 只是单独修改一个字段 。
意思就是,PATCH 相比于 PUT方法更加的节省计算机与网络资源,但其实不必刻意区分,使用 PUT 即可完成所有需求。

PATCH 与 PUT 属性上的一个重要区别还在于:PUT 是幂等的,而 PATCH 不是幂等的。

幂等是一个数学和计算机学概念,在计算机范畴内表示一个操作执行任意次对系统的影响跟一次是相同。


HTTP协议与Requests库:

HTTP协议方法Requests库方法功能一致性
GETrequests.get()一致
HEADrequests.head()一致
POSTrequests.post()一致
PUTrequests.put()一致
PATCHrequests.patch()一致
DELETErequests.delete()一致

Requests库的head()方法:

用 head方法可以用很少的网络流量获取网络资源的概要信息。

Requests库的post()方法:

说明当我们向 URL 去post了一个字典或者键值对的时候,键值对会默认地被存储到表单的字段下。

post方法根据用户提交内容的不同,在服务器上会做数据的相关整理。

Requests库的put()方法:

和post类似,只不过能将原有数据覆盖掉。


参考资料:Python网络爬虫与信息提取(北京理工大学慕课)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值