`
yuzhi2217
  • 浏览: 36613 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HTTP协议 (二) 基本认证

    博客分类:
  • HTTP
 
阅读更多

http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别。 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何身份识别呢?

 

阅读目录

  1. 什么是HTTP基本认证
  2. HTTP基本认证的过程
  3. HTTP基本认证的优点
  4. 每次都要进行认证
  5. HTTP基本认证和HTTPS一起使用就很安全
  6. HTTP OAuth认证
  7. 其他认证
  8. 客户端的使用

 

什么是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认证

OAuth 对于Http来说,就是放在Authorization header中的不是用户名密码, 而是一个token.
微软的Skydrive 就是使用这样的方式, 如下图
 

 

其他认证

除了基本认证(Basic Authentication), 还有摘要认证 digest authentication, WSSE(WS-Security)认证
 
 

客户端的使用

客户端如果要跟“使用基本认证的网站”交互。 非常很简单,把用户名密码 加在Authorization header中就可以了。
 
C#
string url = "https://testsite";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
NetworkCredential nc = new NetworkCredential("username", "password");
req.Credentials = nc;

 

Linux下的curl

分享到:
评论

相关推荐

    一种新的认证邮件协议

    #### 二、认证邮件协议的关键性质 一个有效的认证邮件协议至少需具备以下三个关键性质: 1. **发方的非否认**:接收方必须能够证明邮件确实是发送方发出的,这通常通过数字签名等技术实现,确保发送方不能否认自己...

    TCP简单用户认证协议

    TCP简单用户认证协议是网络通信中一种常见的安全机制,它...但是,TCP简单用户认证协议对于理解基本的网络认证概念和C#网络编程来说是一个很好的起点。通过这个基础,你可以进一步学习和掌握更复杂的安全协议和技术。

    人脸识别一体机HTTP接口协议_v1.34.pdf

    该协议定义了人脸识别一体机设备与外部系统之间的数据交互规则,涵盖了设备的基本信息、身份认证、音频设置、开门条件等多个方面。 人脸识别一体机HTTP接口协议概述 人脸识别一体机HTTP接口协议_v1.34是基于HTTP...

    The security protocols library digest 安全加密认证协议大全

    #### 二、安全加密认证协议基础知识 在深入探讨具体协议之前,我们首先需要了解一些基本概念: - **加密**:通过算法将原始数据转换成密文的过程。 - **认证**:验证用户身份的过程。 - **安全协议**:用于保护...

    毕业设计:python WEB 服务统一身份认证协议设计与实现(源码 + 数据库 + 说明文档)

    毕业设计:python WEB 服务统一身份认证协议设计与实现(源码 + 数据库 + 说明文档) 第2章 系统分析 9 2.1可行性分析 9 2.1.1技术可行性 9 2.1.2操作可行性 9 2.1.3经济可行性 9 2.2设计的基本思想 9 2.3基础功能...

    HTTP协议中文版

    通过这些知识点,读者可以对HTTP协议有一个全面的认识,从基本概念到实际操作,再到标准化流程和协议的特性,都会有详细的了解。这些内容对于网络开发人员、服务器管理人员以及任何需要深入理解互联网传输协议的人员...

    基于HTTP协议的开发接口

    以上就是关于“基于HTTP协议的开发接口”的一些关键知识点,涵盖了HTTP协议的基本原理、接口设计的要素以及安全性等方面。在实际开发中,开发者需要结合具体的业务场景灵活运用这些知识,以创建高效、可靠的接口。

    DAHUA大华摄像头HTTP协议API

    标题中的“DAHUA大华摄像头HTTP协议API”意味着文档提供的是大华品牌摄像头产品通过HTTP协议交互的API(应用程序编程接口)的详细说明。文档属于版本1.0,意味着这是API规范的初始版或者是某个产品的特定版本。由于...

    带basic认证的http get协议,C#

    本文将深入探讨如何在C#编程语言中实现带有基本认证(Basic Authentication)的HTTP GET请求,同时处理返回的JSON数据。 HTTP GET请求是HTTP协议中最简单也最常用的方法之一,它用于从服务器获取资源。然而,在访问...

    HTTP协议详细解析

    HTTP协议详解 HTTP/1.0 (RFC1945) 根据基本的WEB需求,定义了请求/回应格式、媒体类型、用户认证等标准。无连接。 HTTP/1.1 (RFC2616 ) 打开密码aaa

    Git 的 HTTP 协议实现 Grack.zip

    1. **认证管理**:Grack能够集成多种身份验证机制,例如基于HTTP的基本认证、OAuth或者与 LDAP 服务器配合的认证,确保只有授权用户可以访问Git仓库。 2. **权限控制**:通过Grack,可以对用户进行细粒度的权限管理...

    http.rar_HTTP_HTTP协议_http encapsulation

    "带密码"可能表示这个封装库支持HTTP的基本认证或者其他形式的身份验证机制,为网络通信提供了一定的安全保障。 在标签中,我们看到了"HTTP协议"、"http_encapsulation",这些都是与HTTP协议和封装相关的关键词。...

    S/KEY协议的简单模拟(C语言)

    不过,对于学习密码学的学生来说,这个简单的模拟可以帮助理解S/KEY协议的基本概念,并且可以通过修改`rand()`为更安全的随机数生成方法来提高安全性。 总的来说,S/KEY协议提供了一种相对安全的身份验证机制,尤其...

    HTTP协议详解.pdf

    1. **基础**:介绍HTTP协议的基本概念和技术背景。 2. **协议分析的优势**:利用HTTP分析器检测网络攻击。 3. **Content-Length限制漏洞**:可能导致拒绝服务攻击的情况。 4. **利用HTTP特性进行拒绝服务攻击**:...

    基于区块链技术的RFID安全认证协议.pdf

    本文提出的基于区块链技术的RFID安全认证协议,旨在解决传统RFID系统中基于中心化数据库的安全认证协议存在的数据丢失、篡改等问题。接下来,我们将深入分析文章中提出的关键技术和方法。 1. **RFID技术的安全问题*...

    实验名称点到点协议PPP配置实验

    实验中,我们将学习如何配置 PPP 协议的 PAP 认证和 CHAP 单向认证。实验步骤包括路由器基本配置、配置接口封装为 PPP、配置 PAP 认证和 CHAP 认证等。 在实验中,我们首先需要进行路由器基本配置,包括配置设备名...

    HTTP协议.zip

    HTTPS是在HTTP基础上添加了SSL/TLS协议,提供加密通信和身份认证,保障数据传输的安全性。HTTPS是现今网页安全的主流标准。 **七、HTTP缓存机制** HTTP协议支持缓存,通过Cache-Control、ETag、Last-Modified等...

    java实现HTTP 基本认证 (Basic Authentication)

    java实现HTTP 基本认证 (Basic Authentication) 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息。 但是有时候浏览器会弹出一个登录验证的对话框,如下图,这就是使用 HTTP 基本认证。 下面来看看一...

Global site tag (gtag.js) - Google Analytics