HTTP协议 (二) 基本认证
HTTP协议 (二) 基本认证
http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别。 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何身份识别呢?
阅读目录
- 什么是HTTP基本认证
- HTTP基本认证的过程
- HTTP基本认证的优点
- 每次都要进行认证
- HTTP基本认证和HTTPS一起使用就很安全
- HTTP OAuth认证
- 其他认证
- 客户端的使用
什么是HTTP基本认证
桌面应用程序也通过HTTP协议跟Web服务器交互, 桌面应用程序一般不会使用cookie, 而是把 "用户名+冒号+密码"用BASE64算法加密后的字符串放在http request 中的header Authorization中发送给服务端, 这种方式叫HTTP基本认证(Basic Authentication)
当浏览器访问使用基本认证的网站的时候, 浏览器会提示你输入用户名和密码,如下图
假如用户名密码错误的话, 服务器会返回401 如下图
HTTP基本认证的过程
第一步: 客户端发送http request 给服务器,
第二步: 因为request中没有包含Authorization header, 服务器会返回一个401 Unauthozied 给客户端,并且在Response 的 header "WWW-Authenticate" 中添加信息。
第三步:客户端把用户名和密码用BASE64加密后,放在Authorization header中发送给服务器, 认证成功。
第四步:服务器将Authorization header中的用户名密码取出,进行验证, 如果验证通过,将根据请求,发送资源给客户端
使用Fiddler Inspectors 下的Auth 选项卡,可以很方便的看到用户名和密码:
HTTP基本认证的优点
HTTP基本认证,简单明了。Rest API 就是经常使用基本认证的
每次都要进行认证
http协议是无状态的, 同一个客户端对 服务器的每个请求都要求认证
HTTP基本认证和HTTPS
把 "用户名+冒号+密码" 用BASE64加密后的string虽然用肉眼看不出来, 但用程序很容易解密,上图可以看到Fiddler就直接给解密了。 所以这样的http request 在网络上,如果用HTTP传输是很不安全的。 一般都是会用HTTPS传输, HTTPS是加密的, 所以比较安全.
HTTP OAuth认证
其他认证
客户端的使用
string url = "https://testsite"; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); NetworkCredential nc = new NetworkCredential("username", "password"); req.Credentials = nc;
Linux下的curl
curl -u username:password https://testsite/
附: HTTP协议 系列教程, (连载中, 敬请期待)
HTTP协议 (一) HTTP协议详解
HTTP协议 (二) 基本认证
HTTP协议 (三) 压缩
HTTP协议 (四) 缓存
HTTP协议 (五) 代理
HTTP协议 (六) 状态码详解
HTTP协议 (七) Cookie
HTTP协议 (二) 基本认证相关推荐
- apache添加ssl协议实现用户认证
apache添加ssl协议实现用户认证 目标 1对服务器的访问由http改为https, 2仅有证书的客户端可以访问服务器, 3.通过服务器端的配置,可以停用某个客户端的证书. 一 Apache服务器 ...
- android http协议添加Authorization认证方式
今天,简单讲讲android里如何使用http请求时在头部添加Authorization认证方式. 其实也很简单,之前需要做一个功能,在android去使用http访问设备,但是每次的访问 ...
- mooc-HTTP协议二
文章目录 一.HTTP状态管理:Cookie与Session Cookie(服务器需要记录该用户状态,就向客户端浏览器颁发一个Cookie) Session 保存SessionID的方式 Sessio ...
- JHipster生成微服务架构的应用栈(二)- 认证微服务示例
本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈. 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业 ...
- Mozilla 宣布引入二步认证
Mozilla承认,攻击者未经授权访问了它的bug跟踪系统Bugzilla,窃取了未披露的Firefox漏洞信息.为了降低未来Bugzilla的攻击风险,Mozilla宣布了新的安全措施:所有访问安全 ...
- 02-gitgitlab二次认证
文章目录 01-git 应用 02-gitlab 使用 1.gitlab 开启二次认证&开启二次认证 (1)下载 FreeOTP 也可以是Goodle 认证 (2).二次认证遇到的坑 01-g ...
- Google Android EDLA协议及AER认证
1.EDLA协议及AER认证介绍 企业设备许可协议(Enterprise Device Licensing Agreeement)EDLA: 随着市场的产品形态多样化,谷歌也根据发展的市场变化,推出了 ...
- 手机二要素认证接口怎么用?手机号姓名验证怎么操作?
手机二要素认证接口起源于数字手机时代,二十一世纪初期,互联网络诞生了网上电商.金融.通讯.网吧等产业,开始实行实名认证制. 手机二要素验证主要用于国内三大通信运营商业务(包括:移动.联通.电信三大运营 ...
- 华翼宽带android客户端,电信推新产品“华翼宽带” 二次认证亮了
[PConline 资讯]昨天刚说了运营商要对路由器下手,今天就有行动的了.有业内人士透露,北京电信将与歌华有线联合,面向家庭宽带用户推出了"华翼宽带"业务,其利用的是北京电信带宽 ...
最新文章
- 4.MATLAB基础编程操作——变量、常量、基础数学运算
- 2、前端环境搭建(19.04.12)
- 数据结构--稀疏矩阵的一种实现
- python基础list_Python基础4(list:列表)
- (1) 自定义分页采用jsp和Java实现
- oracle死锁优化,Oracle性能优化之LockContention(转)
- 论文阅读丨神经清洁: 神经网络中的后门攻击识别与缓解
- skynet 学习笔记-netpack模块(1)
- 求众数leetcode(169)+投票算法
- 共享上网掉线后的排错
- Windows 95 输入法编辑器
- 【JY】反应谱的详解与介绍
- IDEA统计项目代码量
- 日记侠:要赚钱千万别多想立刻开干
- 免费ftp软件下载,5款免费ftp软件下载工具
- 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
- python做视频剪辑_视频自媒体人们,还用什么快剪辑,爱剪辑,几行python搞定一切...
- 印象笔记Markdown的使用方法
- gmail imap_阻止带有Gmail IMAP的Outlook在待办事项栏中显示重复的任务
- nexus私服知识概括
热门文章
- 解决pip无法安装bayes-opt报错:ERROR: Could not find a version that satisfies the requirement bayes-opt
- python中文人名识别(使用hanlp,LTP,LAC)
- 贪心算法求解TSP问题(python)
- 查看服务器是有有默认共享文件,服务器共享文件远程查看
- 服务器找不到硬盘如何解决方案,Linux云服务器磁盘不见了?解决方案在这里
- The history and design philosophy of Spring
- python接口自动化(九)--python中字典和json的区别(详解)
- 云服务器配置(jdk、tomcat、mysql)
- 又一家药企IPO被拒,原因竟然是……
- Appium 解决手势密码 (java篇)