• HTTP basic 认证


    为了确保资源的非法访问,HTTP采用两种认证方式,一种为basic,另外一种为digest(摘要认证)。
    basic是最基本也是最简单的一种认证方式。认证的过程大概可分为以下几个步骤:
    1. 用户请求受保护的资源,例如:

    GET http://192.168.2.1/ HTTP/1.1 
    Accept: text/html, application/xhtml+xml, */* 
    Accept-Language: zh-CN 
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) 
    Accept-Encoding: gzip, deflate 
    Connection: Keep-Alive 
    Host: 192.168.2.1

    2. 服务端返回401未认证的错误

    HTTP/1.1 401 Unauthorized 
    Content-Type: text/html; charset=GB2312 
    Date: Wed, 28 Aug 2013 19:28:03 GMT 
    Last-Modified: Wed, 28 Aug 2013 19:28:03 GMT 
    Accept-Ranges: bytes 
    Connection: close 
    Cache-Control: no-cache,no-store 
    WWW-Authenticate: Basic realm="abcdalom.com" 
    
    <HTML> 
    <HEAD><TITLE>401 Unauthorized</TITLE></HEAD> 
    <BODY BGCOLOR="#FFFFFF" TEXT="#483D8B" LINK="#2020ff" VLINK="#4040cc"> 
    <H2>401 Unauthorized</H2>

    401错误的HTTP头部中都会带有WWW-Authenticate字段,其中指明了服务端支持的认证方式,一般为Basic(基本认证)和 Digest(摘要认证)两种可选值。在上文的回应中可见,服务端支持的认证方式为基本认证。

    3. 加入用户信息,重新发送请求
    需要在HTTP头部中加入Authorization字段,并显示指明认证方式(认证方式可由第2步获取),紧接着就是一个空格和BASE64编码的“用户名:密码”。例如用户名为admin,密码为12345,则请求头部如下所示,其中YWRtaW46MTIzNDU=为 “admin:12345”的base64编码值。

    GET http://192.168.2.1/ HTTP/1.1 
    Accept: text/html, application/xhtml+xml, */* 
    Accept-Language: zh-CN 
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) 
    Accept-Encoding: gzip, deflate 
    Connection: Keep-Alive 
    Authorization: Basic YWRtaW46MTIzNDU= 
    Host: 192.168.2.1


    4. 服务端验证用户信息是否合法,如果合法请返回用户请求的资源。否则依然回应401的错误。

  • 相关阅读:
    【J2me3D系列学习文章之一】J2me3D开发技术和基础知识
    使用NSOperation实现异步下载
    如何在iphone应用程序中发送短信
    【J2me3D系列学习文章之二】(立即模式)构造我们3D世界中的第一个立方体!
    下拉列表框实现
    Android开发:在EditText中关闭软键盘
    ContentLength为-1导致下载文件字节数为0错误
    前端要给力之:代码可以有多烂?
    NSOperation与performSelectorOnMainThread
    WebService 接口调用指南
  • 原文地址:https://www.cnblogs.com/sprinng/p/6627155.html
Copyright © 2020-2023  润新知