http协议是无状态的, 浏览器和web服务器之间可以通过cookie来身份识别。 桌面应用程序(比如新浪桌面客户端, skydrive客户端)跟Web服务器之间是如何身份识别呢?
阅读目录
什么是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协议 系列教程, (连载中, 敬请期待)
相关推荐
#### 二、认证邮件协议的关键性质 一个有效的认证邮件协议至少需具备以下三个关键性质: 1. **发方的非否认**:接收方必须能够证明邮件确实是发送方发出的,这通常通过数字签名等技术实现,确保发送方不能否认自己...
TCP简单用户认证协议是网络通信中一种常见的安全机制,它...但是,TCP简单用户认证协议对于理解基本的网络认证概念和C#网络编程来说是一个很好的起点。通过这个基础,你可以进一步学习和掌握更复杂的安全协议和技术。
该协议定义了人脸识别一体机设备与外部系统之间的数据交互规则,涵盖了设备的基本信息、身份认证、音频设置、开门条件等多个方面。 人脸识别一体机HTTP接口协议概述 人脸识别一体机HTTP接口协议_v1.34是基于HTTP...
#### 二、安全加密认证协议基础知识 在深入探讨具体协议之前,我们首先需要了解一些基本概念: - **加密**:通过算法将原始数据转换成密文的过程。 - **认证**:验证用户身份的过程。 - **安全协议**:用于保护...
毕业设计: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协议的基本原理、接口设计的要素以及安全性等方面。在实际开发中,开发者需要结合具体的业务场景灵活运用这些知识,以创建高效、可靠的接口。
标题中的“DAHUA大华摄像头HTTP协议API”意味着文档提供的是大华品牌摄像头产品通过HTTP协议交互的API(应用程序编程接口)的详细说明。文档属于版本1.0,意味着这是API规范的初始版或者是某个产品的特定版本。由于...
本文将深入探讨如何在C#编程语言中实现带有基本认证(Basic Authentication)的HTTP GET请求,同时处理返回的JSON数据。 HTTP GET请求是HTTP协议中最简单也最常用的方法之一,它用于从服务器获取资源。然而,在访问...
HTTP协议详解 HTTP/1.0 (RFC1945) 根据基本的WEB需求,定义了请求/回应格式、媒体类型、用户认证等标准。无连接。 HTTP/1.1 (RFC2616 ) 打开密码aaa
1. **认证管理**:Grack能够集成多种身份验证机制,例如基于HTTP的基本认证、OAuth或者与 LDAP 服务器配合的认证,确保只有授权用户可以访问Git仓库。 2. **权限控制**:通过Grack,可以对用户进行细粒度的权限管理...
"带密码"可能表示这个封装库支持HTTP的基本认证或者其他形式的身份验证机制,为网络通信提供了一定的安全保障。 在标签中,我们看到了"HTTP协议"、"http_encapsulation",这些都是与HTTP协议和封装相关的关键词。...
不过,对于学习密码学的学生来说,这个简单的模拟可以帮助理解S/KEY协议的基本概念,并且可以通过修改`rand()`为更安全的随机数生成方法来提高安全性。 总的来说,S/KEY协议提供了一种相对安全的身份验证机制,尤其...
1. **基础**:介绍HTTP协议的基本概念和技术背景。 2. **协议分析的优势**:利用HTTP分析器检测网络攻击。 3. **Content-Length限制漏洞**:可能导致拒绝服务攻击的情况。 4. **利用HTTP特性进行拒绝服务攻击**:...
本文提出的基于区块链技术的RFID安全认证协议,旨在解决传统RFID系统中基于中心化数据库的安全认证协议存在的数据丢失、篡改等问题。接下来,我们将深入分析文章中提出的关键技术和方法。 1. **RFID技术的安全问题*...
实验中,我们将学习如何配置 PPP 协议的 PAP 认证和 CHAP 单向认证。实验步骤包括路由器基本配置、配置接口封装为 PPP、配置 PAP 认证和 CHAP 认证等。 在实验中,我们首先需要进行路由器基本配置,包括配置设备名...
HTTPS是在HTTP基础上添加了SSL/TLS协议,提供加密通信和身份认证,保障数据传输的安全性。HTTPS是现今网页安全的主流标准。 **七、HTTP缓存机制** HTTP协议支持缓存,通过Cache-Control、ETag、Last-Modified等...
java实现HTTP 基本认证 (Basic Authentication) 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息。 但是有时候浏览器会弹出一个登录验证的对话框,如下图,这就是使用 HTTP 基本认证。 下面来看看一...