HTTP协议是什么?HTTP协议认证介绍

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

curl -u username:password https://testsite/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索密码
, http
, http协议
, 用户名
, 认证
, 客户端认证
, scribe 实现oauth认证
, 认证协议
, Authorization
, 密码认证
, nc文件传输
, 基本
, fiddler_抓取https
OAuth认证
http协议介绍、http协议是什么、http是什么层的协议、协议科威特大使馆认证、华盛顿协议 专业认证,以便于您获取更多的相关知识。

时间: 2025-01-19 19:05:15

HTTP协议是什么?HTTP协议认证介绍的相关文章

五种开源协议(GPL,LGPL,BSD,MIT,Apache)介绍

商业化的软件应该主要选用MIT或者Apache license的开源系统作为插件. 什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供 一定的权限. 不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作 者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题. 而开源许可协议使这些事情变

数据链路层-ppp协议问题,ppp协议问题

问题描述 ppp协议问题,ppp协议问题 书上说ppp协议不需要两个设备之间的mac地址,为什么我在家里跳过路由器拨号抓包发现还是包含了源mac和目的mac?是因为这里都是pppoe吗?也就是把ppp帧再次封装在以太网帧中?是这样吗?还有个问题,如果只是二层转发的话不会涉及帧的改变,比如我电脑发出来的是ppp帧,那么中间二层转发始终是ppp帧,然后到了路由器,把这个帧剥离开来看IP地址,然后再重新封装,这个时候帧的类型才有可能发生改变是这样吗?请知道的告诉下,谢谢了 解决方案 http://we

协议系列之HTTP协议

什么是HTTP\HTTPS HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.HTTP协议用于从WWW服务器传输超文本到本地浏览器的传输协议,它能使浏览器更加高效,使网络传输减少,保证计算机正确快速地传输超文本文档.现在我们普遍使用的版本是HTTP1.1. HTTP是一个应用层协议,它由请求和响应组成,是一个标准的B/S模型:它也是一个无连接的协议,这里无连接指的是每次连接只处理一个请求,服务器处理完客户端请求后便断开连接:同时,它也是一个无状态的协议,

HTTP协议是无状态协议,怎么理解

HTTP协议是无状态协议,怎么理解?   Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息.  自己的理解,在asp.net里:每次提交服务器的页面没有任何关系,每次记录在页面的信息下次提交是记不住的,(除了应用本身可能已经存储在全局对象中的所有信息外)在.net里实际就是ViewState,ViewState是asp.net中保存页面信息的基本单位,应用时就是保存在控

广域网协议中的重点协议

广域网协议是相对于局域网协议而说的,互联网我们就可以认定为是广域网.那么它相关的协议也就很好理解了.跟OSI模型是分不开的.下面我们来说几个典型的协议.给大家作为参考. 广域网协议是在OSI参考模型的最下面三层操作,定义了在不同的广域网介质上的通信.主要用于广域网的通信协议比较多,如:高级数据链路控制协议.点到点协议.数字数据网.综合业务数字网.数字用户线.X.25协议等等. 广域网协议:HDLC高级数据链路控制协议 HDLC是一种基于比特的传输控制协议,具有高效率.高可靠性,适用于广泛的应用领

网络协议X档案文件传输协议篇

网络协议--FTP协议 说明:全称File Transfer Protocol(文件传输协议),这是大家非常熟悉的网络协议之一,也是Internet中使用最多的文件传输协议.主要用于在两台计算机之间实现文件的上传与下载,其中一台计算机作为FTP的客户端,另一台作为FTP的服务器端.通过FTP协议可以上传.下载几乎所 有的文件类型,比如TXT.EXE.DOC.MP3.ZIP.RAR等等.应用:在实际应用中,FTP不仅可以作为网络文件下载的主要格式,还可以作为单独的命令来使用.比如我们在下MP3的时

协议系列之TCP协议

3.TCP协议 从上一节我们了解了什么是IP协议,以及IP协议的一些特性,利用IP协议传输都是单向的,不可靠的,无连接状态的.正是这些特性,于是便产生了TCP协议.TCP协议属于传输层,在IP协议网络层之上,竟然IP协议不可靠,那就必须要在其上多一个TCP协议以实现传输的可靠性.就像我们寄出一封信,如果对方不回信,不通过别的渠道告诉你,你永远都无法保证这封信能准确送到对方手上.同样,TCP协议采取了类似的措施来保证数据包的准确送达,它规定接收端发送一个确认数据包回来. 严格地说,TCP协议提供了

协议系列之UDP协议

上节说的TCP协议虽然提供了可靠的传输,但是也有一个缺点,发送速度慢.那么有没有一种协议能快速发送的呢?这节要讨论的就是UDP协议,它提供了更加快的发送速度,但也牺牲了可靠性,它是一种无连接的传输协议.比起TCP,UDP更像是我们用手机发送短信,只管发送出去,但不能保证对方收到,不会建立连接,也没有确认环节. 图2-2-4-1为UDP协议报文结构.比起TCP,UDP报文的结构相对简单,只有源端口.目的端口.报文长度.校验和四个字段.其中源端口跟校验和是可选的,由于UDP不用接收端回复确认信息,所

数据传输-移动IM采用那种协议能避免xmpp协议的弊端

问题描述 移动IM采用那种协议能避免xmpp协议的弊端 首先转发一位同学的帖子,<XMPP 协议适合用来做移动 IM 么>http://bbs.csdn.net/topics/390876543?page=1 还有另一位同学的帖子<微信.陌陌等著名IM软件设计架构详解>http://blog.csdn.net/justinjing0612/article/details/38322353 我们要开发一款移动IM,同时在线人数会非常多,也涉及到大量的数据传输,请问采用什么协议能避免X