本篇介绍HTTP基本认证,在HTTP请求过程中,有些请求是对外开放的,任何人都可以请求得到数据,有些请求是需要授权才能得到响应的。授权其实就是一个检查用户名和密码的过程,这个在HTTP中有一种基本认证方式,就是需要客户端给服务器端发送用户名和密码,服务器拿到用户名和密码之后去校验,如果校验通过,就给我客户端发送响应内容。如果校验失败,就返回HTTP错误代码401,提示未授权或者授权验证失败。

1.HTTP基本认证画图表示

根据上面的图,很好理解,客户端发送一个受保护资源的请求,服务端收到请求后,需要客户端提供用户名和密码,客户端把用户名和密码发送给服务器。服务器拿到用户名和密码就去验证,只有验证通过才给客户端发送请求响应内容。

2.利用requests来了解认证的实现过程。

import requestsBase_Url = 'https://api.github.com'def build_uri(end_point):return '/'.join([Base_Url, end_point])def basic_auth():response = requests.get(build_uri('user'), auth=('xxxxxxx', 'xxxxx'))print(response.status_code)print(response.text)print(response.request.headers)basic_auth()

运行结果如下:

我们把请求的头部给打印出来了,注意这里是请求头部,不是响应头部。我们可以看到在请求头部,我们的用户名和密码会放在Authorization这个字段里,里面是一个加密过的字段。这个是64编码加密,我们来利用python自带的包,来对这个加密字段进行解码,看看是什么样子。

1. 我们先把这个加密字段拷贝到一个记事本。

2.打开cmd,输入python,进入python交互式编程环境。

3.输入如下内容。

好简单吧,如果你知道一个字段是base64加密,那么你就可以用这样方法去解码,得到加密前的字段内容。看起来,HTTP基本虽然有了一定的加密和安全,但是还是不是很安全,下面一篇我们来介绍Oauth认证,比基本认证要安全很多。

requests库入门-14-HTTP基本认证相关推荐

  1. python中requests库入门及写入文件

    1.python中requests库入门 import requests r = requests.get("https://www.baidu.com") print(r.sta ...

  2. python requests库作用_python Requests库入门

    一.Requests 库的安装 对Requests库 了解更多请移步:http://www.python-requests.org 安装操作: win平台:"以管理员身份运行" c ...

  3. Python爬虫Requests库入门及HTTP协议

    HTTP协议 HTTP,Hypertext Transfer PRotocol,超文本传输协议 HTTP是一个基于"请求于响应"模式的,无状态的应用层协议 HTTP协议采用URL作 ...

  4. Python网络爬虫与信息提取—requests库入门

    requests的学习笔记 requests库自动爬取HTML页面,自动网络请求提交 此博客为中国大学MOOC北京理工大学<Python网络爬虫与信息提取>的学习笔记 requests库的 ...

  5. 第一天 Requests库入门

    Requests库的get()方法 requests.get(url, params=None, **kwargs) ∙ url : 拟获取页面的url链接 ∙ params : url中的额外参数, ...

  6. requests库入门09-OAUTH认证

    实际登陆中,认证用到的token会变的,不过可以在GIthub设置一个私人token. 如图,登录GIthub,然后用户下面选择Settings/Developer settings/Personal ...

  7. requests库入门-13-如何下载一个图片资源

    前面一篇文章介绍了response对象的一些常用API,也已经提到,我们的重点是对response对象的操作.主要的操作就是数据分析和提取,一般来说,数据有很多种,有字段,有图片,有视频,有音频,凡是 ...

  8. 嵩天python爬虫百度云盘_基于MOOC嵩天《Python网络爬虫与信息提取》视频学习记录——第一周:requests库...

    1.requests库入门 requests的get( )方法 在这里插入图片描述 爬取百度网页实例: import requests r = requests.get("http://ww ...

  9. 爬虫笔记(一)——Requests库

    文章目录 写在前面 一.Requests库入门 1.Requests库的安装 (1)安装Requests库 (2)测试Requests库 2.Requests库的get()方法 (1) get()方法 ...

  10. python网络爬虫与信息提取嵩天百度网盘_基于MOOC嵩天《Python网络爬虫与信息提取》视频学习记录——第一周:requests库...

    1.requests库入门 requests的get( )方法 爬取百度网页实例: import requests r = requests.get("http://www.baidu.co ...

最新文章

  1. ASP.NET2.0 ReportingServices使用详解
  2. ARP命令详解--网络命令详解二
  3. 【微信小程序企业级开发教程】订阅消息功能
  4. linux deepin安装virtualbox 6.1命令
  5. 树莓派移植SX1278 LoRa通信--使用wiringPiSPI移植SPI通信接口
  6. 十二个球称三次C语言编程,十二个球,有一个不知轻重,现有一个天平,称三次,找出此球!...
  7. python中cookies怎么用_Cookie在python爬虫中怎么用?Cookielib又是什么?
  8. 实验一 命令解释程序的编写
  9. AndroidStudio_android多线程和异步任务_要学内容介绍_相关知识点---Android原生开发工作笔记241
  10. 便利店小程序需要服务器吗,便利店开发小程序的功能
  11. 【数学之美】豆瓣9.1 颠覆世界的混沌理论
  12. android怎样开启root权限管理,【经验】安卓手机怎么开启Root权限?
  13. 个人作业4 结对开发地铁
  14. 设计模式-抽象工厂模式
  15. Maven之pom.xml配置文件详解
  16. iOS xxx is missing from working copy
  17. 你知道Java程序猿工资有多少吗?
  18. Taro(React)实现具有滚动效果的倒数计时器
  19. SAP Data Service 4.2 下载及安装教程
  20. excel中的FV函数、PMT函数与PV函数的java实现

热门文章

  1. css实现遮罩层动画
  2. Flink链接kafka并解析Json文件(三)
  3. Python日报0507 - PyQt5实现打卡登记系统
  4. 使用计算机配置路由器,电脑设置路由器步骤
  5. 【Numpy】1. n维数组,dtype,切片,索引
  6. 网站如何过服务器的白名单,服务器怎么添加域名白名单
  7. java获取当前时间星期几_Java8 获取当前日期时间及星期几
  8. Laya 实现一个轻量高效好用的Tween库并支持Laya.Ease方法
  9. 从零开始变成一个脚本小子001-初窥密码
  10. 脚本小子_Lua数据类型