某些 Web 页面只想让特定的人浏览,或者干脆仅本人可见。为达到这个目标,必不可少的就是认证功能。

一、认证

核对登录者本人才知道的信息:

密码、动态令牌、数字证书、生物认证、IC卡等

  • HTTP 使用的认证方式
  • BASIC 认证(基本认证)
  • DIGEST 认证(摘要认证)
  • SSL 客户端认证
  • FormBase 认证(基于表单认证)
  • Windows统一认证

二、BASIC 认证

认证步骤

步骤 1: 当请求的资源需要 BASIC 认证时,服务器会随状态码 401 Authorization Required,返回带 WWW-Authenticate 首部字段的响应。 该字段内包含认证的方式(BASIC) 及 Request-URI 安全域字符串 (realm)。

步骤 2: 接收到状态码 401 的客户端为了通过 BASIC 认证,需要将 用户 ID 及密码发送给服务器。发送的字符串内容是由用户 ID 和密码构成,两者中间以冒号(:)连接后,再经过 Base64 编码处理。

步骤 3: 接收到包含首部字段 Authorization 请求的服务器,会对认证信息的正确性进行验证。如验证通过,则返回一条包含 Request-URI 资源的响应。

BASIC 认证使用上不够便捷灵活,且达不到多数 Web 网站期望的安 全性等级,因此它并不常用。

三、DIGEST 认证

认证步骤

步骤 1: 请求需认证的资源时,服务器会随着状态码 401 Authorization Required,返回带 WWW-Authenticate 首部字段的响应。 该字段内包含质问响应方式认证所需的临时质询码(随机数, nonce)。

步骤 2: 接收到 401 状态码的客户端,返回的响应中包含 DIGEST 认证必须的首部字段 Authorization 信息。

步骤 3: 接收到包含首部字段 Authorization 请求的服务器,会确认认证信息的正确性。认证通过后则返回包含 Request-URI 资源的响应。

四、SSL 客户端认证

为达到 SSL 客户端认证的目的,需要事先将客户端证书分发给客户端,且客户端必须安装此证书。

步骤 1: 接收到需要认证资源的请求,服务器会发送 Certificate Request 报文,要求客户端提供客户端证书。

步骤 2: 用户选择将发送的客户端证书后,客户端会把客户端证书信息以 Client Certificate 报文方式发送给服务器。

步骤 3: 服务器验证客户端证书验证通过后方可领取证书内客户端的公开密钥,然后开始 HTTPS 加密通信。

五、基于表单认证

客户端会向服务 器上的 Web 应用程序发送登录信息(Credential),按登录信息的验证结果认证。

基于表单认证

Session 管理和 Cookie 状态管理

步骤 1: 客户端把用户 ID 和密码等登录信息放入报文的实体部分, 通常是以 POST 方法把请求发送给服务器。而这时,会使用 HTTPS 通信来进行 HTML 表单画面的显示和用户输入数据的发送。

步骤 2: 服务器会发放用以识别用户的 Session ID。通过验证从客户 端发送过来的登录信息进行身份认证,然后把用户的认证状态与 Session ID 绑定后记录在服务器端。

步骤 3: 客户端接收到从服务器端发来的 Session ID 后,会将其作为 Cookie 保存在本地。下次向服务器发送请求时,浏览器会自动发送 Cookie,所以 Session ID 也随之发送到服务器。服务器端可通过验证 接收到的 Session ID 识别用户和其认证状态。

java 发送带basic认证的http post请求实例代码_图解HTTP学习笔记(八)—确认访问用户身份的认证...相关推荐

  1. 确认访问用户身份的认证

    确认访问用户身份的认证 1.服务器在验证访问者身份时,核对的信息通常包括:密码.动态令牌(仅限本人持有的设备内显示的一次性密码).数字证书.生物认证.IC卡等. 2.HTTP使用的认证方式:BASIC ...

  2. 《图解HTTP》读书笔记--第8章 确认访问用户身份的认证

    写在前面:本文仅供个人学习使用,如有侵权,请联系删除.文章中所用图片绝大多数来源于<图解HTTP>,请读者支持原版. 文章目录 8.1何为认证 8.2 BASIC认证 8.3 DIGEST ...

  3. (chap8 确认访问用户身份的认证) 基于表单认证

    1. 定义 基于表单的认证方法并不是在HTTP协议中定义的.客户端会向服务器上的Web应用程序发送登录信息( Credential ),按登录信息的验证结果认证. 根据Web应用程序的实际安装,提供的 ...

  4. (chap8 确认访问用户身份的认证) SSL客户端认证

    SSL客户端认证是借由HTTPS的客户端证书完成的认证方式.凭借客户端整数认证,服务器可确认访问是否来自自己登陆的客户端. 1. 步骤 step1. 接收到需要认证资源的请求,服务器会发送 Certi ...

  5. (chap8 确认访问用户身份的认证) BASIC认证(基本认证)

    1. BASIC认证是Web服务器与同喜客户端之间进行的认证方式. 2. 步骤 step1. 当请求的资源需要BASIC认证时,服务器会随状态码401Authorization Required,返回 ...

  6. (chap8 确认访问用户身份的认证) DIGES认证(摘要认证)

    1. 定义 为了弥补BASIC不加密的缺点,DIGEST同样适用质询/响应的方式,但不会像BASIC直接发送明文,给对方的只是相应摘要以及知讯码产生的计算结果,所以比起BASIC认证,密码泄露的可能性 ...

  7. python post请求实例_Python使用requests发送POST请求实例代码

    本文研究的主要是Python使用requests发送POST请求的相关内容,具体介绍如下. 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行 请求报头 消息主体 ...

  8. java实现人民币数字转换中文大写的工具实例代码demo分享

    原文:java实现人民币数字转换中文大写的工具实例代码demo分享 http://www.zuidaima.com/share/1816208858221568.htm 刚好在项目里面用到了数字转化为 ...

  9. java发送带格式邮件及带多附件

    最近忙于将日常的质量工作纳入到自动化管理中,其中经常会实现给不同人员发送带特定格式和附件的邮件,并抄送给某些领导,在实现过程中从网上找到的东东基本上是比较单一的某项功能,现我把工作中遇到的这种比较综合 ...

最新文章

  1. CentOS7关闭防火墙方法
  2. Service Mesh是大方向,那Database Mesh呢?
  3. python 柱状图-【python】【数据分析】3D柱状图就是这么好看
  4. php图片生成缩略图_PHP实现生成图片缩略图函数
  5. c# 中Stopwatch 类的运用
  6. 数据结构探险——树篇
  7. Qt界面制作(QSS、获取屏幕分辨率、自定义控件、版权)
  8. java mvp模式_MVP模式入门(结合Rxjava,Retrofit)
  9. 对DataList模板中的绑定数据进行再加工
  10. LeetCode刷题——80. 删除排序数组中的重复项 II
  11. 单片机,嵌入式,PLC三者之间有什么区别,学习方向如何选择
  12. outlook邮件插入HTML格式内容调试
  13. w10打开网络计算机退出,Win10网络发现已关闭怎么办?|Win10启用网络发现方法
  14. 200个句子涵盖了高中英语4500词汇
  15. 彼得林奇+《称雄华尔街》
  16. Urchin.exe使用说明
  17. java版我的世界怎么疾跑,Minecraft疾跑按键设置 我的世界怎么开疾跑
  18. 【数字图像处理】实验五 形态学图像处理
  19. 【计算机毕业设计】心理健康教育系统
  20. 如何解决ChemDraw引起的系统崩溃

热门文章

  1. unity多人游戏_如何使用Unity 2D和镜像构建多人纸牌游戏(更新)
  2. gocd_如何将DangerJS集成到GoCD管道中
  3. 插图 引用 同一行两个插图_数学身份的优雅LED插图
  4. redux引用多个中间件_如何轻松创建您的第一个Redux中间件
  5. macos 安装scala_如何在MacOS上安装Scala和Apache Spark
  6. 阶级斗争的作用_21世纪的阶级斗争
  7. php wula,PHP老师没教过你的那些知识点
  8. php遍历文件夹下文件内容_PHP递归遍历指定文件夹内的文件实现方法
  9. matlab的syntax简记
  10. Python 教你自动发微博,每日一句英语