zoukankan      html  css  js  c++  java
  • IOS网络编程之http请求响应篇

    从IOS角度看http url是服务器上资源的一个位置,作为这个规则一个单独的资源可能和很多url有关系,但是一个url不能关联很多资源。但是也有例外的情况,例如当hostname关联一个不稳定的host.在IOS中我们用NSUrl来管理url.

    url

    一个URL有5个代表性的组成部分如上图

    Protocol:这个协议规定具体哪个应用层协议和服务器交互。其实除了这个http还有ftp协议。http协议的统治地位因为pre-http协议遭到挑战。另一个经常用的协议是file协议,file协议是IOS的app用来在沙盒检索数据的协议。如果你用NSURL但是没有用到其他的协议,默认用的就是这个协议。

    Credentials:一些http服务器支持用户凭证的URL对基本身份验证是一个挑战。如上图所示这个凭证组成部分包含了用户名密码的身份验证,这种格式索然不是很普遍,考虑比其他方式验证更不安全。HTTP 身份认证一般有几种方式:

    1. HTTP基本身份验证(BASIC):usr/pwd通过Base64编码后加入某个请求首部
    2. HTTP摘要身份验证(DIGEST):(HTTP1.1支持)服务器端验证客户端发来的MD5摘要(包括服务器端发来的含有时间戳、请求资源、服务器标识的nonce)
    3. HTTPS客户身份验证(CLIENT-CERT):要求客户端的SSL
    4. 基于表单的身份验证(FORM):servlet规范独有,由servlet容器自身来实现,明文传输(具体实现依赖<login-config>元素中<form-login-config>的设置)

    NTLM授权

    要使用NTLM授权的Windows服务器,你还需要指定你要进行授权域。


    使用HTTPS验证将使其他三种认证失效:无论是只对服务器进行认证还是对客户端和服务器端都进行认证,连接都是经过加密的。

    在IOS中我们参考ASIHttpRequest他的身份验证方式

    1:

    为URL指定要使用的用户名和密码

    将凭据存储到keychain

    将凭据存储到session中

    NTLM授权等等

    我们会用专门的篇幅来介绍身份认证方面的问题

    Hostname:这个组件包含TCP的hostname和IP地址关于主机包含它想要的资源。如果URL的协议是file那么应该省略这些东西。一个URL针对一个独立的资源被打破这是个例外当相对的和本地的主机名字被使用。例如你的主机名字作为hostname,这个URL关联本地机器然后用同一个URL可以关联不同的资源在不同的机器上。

  • 相关阅读:
    深入剖析ASP.NET的编译原理之二:预编译(Precompilation)
    六个建议防止SQL注入式攻击
    微软IIS的ISAPI筛选器权限法则
    IIS属性没有ASP.NET选项
    让我们的服务器更安全Win03 防木马权限设置,IIS服务器安全配置
    IIS自动停止,iis自动关闭。应用程序池假死、自动重启以及iis权限等解决办法
    深入剖析ASP.NET的编译原理之一:动态编译(Dynamical Compilation)
    c#操作xml
    C# 容易出现insert into语句的语法错误的原因
    兼容ie/火狐的全能日历代码含农历
  • 原文地址:https://www.cnblogs.com/qiqibo/p/3144652.html
Copyright © 2011-2022 走看看