美文网首页网络
NSURLSessionTaskTransactionMetri

NSURLSessionTaskTransactionMetri

作者: JoinPerson | 来源:发表于2019-04-02 11:39 被阅读0次

    NSURLSessionTaskTransactionMetrics 相关

    封装在执行会话任务期间收集的性能指标的对象。

    每个NSURLSessionTaskTransactionMetrics对象由一个请求和响应属性组成,对应于相应任务的请求和响应。

    它还包含时间度量,从fetchStartDate开始,以responseEndDate结束,以及其他特征,如networkProtocolName和resourceFetchType。

    该类定义在任务执行期间为请求/响应事务收集的性能指标。

    typedef NS_ENUM(NSInteger, NSURLSessionTaskMetricsResourceFetchType) {
        NSURLSessionTaskMetricsResourceFetchTypeUnknown, 无法确定获取资源的方式。
        NSURLSessionTaskMetricsResourceFetchTypeNetworkLoad,  资源是通过网络加载的。
        NSURLSessionTaskMetricsResourceFetchTypeServerPush,   资源由服务器推送到客户机。
        NSURLSessionTaskMetricsResourceFetchTypeLocalCache,  从本地存储中检索资源。
    } API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));
    

    NSURLSessionTaskTransactionMetrics 相关属性方法

    @property (copy, readonly) NSURLRequest *request;
    事务请求。
    表示事务请求。
    
    @property (nullable, copy, readonly) NSURLResponse *response;
    事务响应。
    如果发生错误而没有生成响应,则此属性为nil。
    表示事务响应。如果发生错误且没有生成响应,则可以为nil。
    
    @property (nullable, copy, readonly) NSDate *fetchStartDate;
    任务开始从服务器或本地获取资源的时间。
    
    @property (nullable, copy, readonly) NSDate *domainLookupStartDate;
    任务开始查找资源名称之前的时间。
    如果使用持久连接,或者从本地资源检索资源,则此值为nil。
    
    @property (nullable, copy, readonly) NSDate *domainLookupEndDate;
    名称查找完成后的时间。
    如果使用持久连接,或者从本地资源检索资源,则此值为nil。
    
    @property (nullable, copy, readonly) NSDate *connectStartDate;
    任务开始建立到服务器的TCP连接之前的时间。
    如果使用持久连接,或者从本地资源检索资源,则此值为nil。
    connectStartDate是用户代理开始建立到服务器的连接之前的时间。
    例如,这将对应于用户代理开始尝试建立TCP连接之前的时间。
    
    @property (nullable, copy, readonly) NSDate *secureConnectionStartDate;
    任务启动TLS安全握手以保护当前连接之前的时间。
    如果未使用加密连接、使用持久连接或从本地资源检索资源,则此值为nil。
    如果使用加密连接,secureConnectionStartDate是用户代理启动安全握手以保护当前连接之前的时间。
    例如,这将对应于用户代理开始TLS握手之前的时间。
    如果未使用加密连接,则将此属性设置为nil。
    
    @property (nullable, copy, readonly) NSDate *secureConnectionEndDate;
    安全握手完成后立即发生的时间。
    如果未使用加密连接、使用持久连接或从本地资源检索资源,则此值为nil。
    如果使用加密连接,secureConnectionEndDate是安全握手完成后的立即时间。
    如果未使用加密连接,则将此属性设置为nil。
    
    @property (nullable, copy, readonly) NSDate *connectEndDate;
    任务完成后立即建立到服务器的连接的时间。
    此值用于完成与安全性相关的握手和其他握手。如果使用持久连接,或者从本地资源检索资源,则该值为nil。
    connectEndDate是用户代理完成与服务器的连接后的立即时间,包括完成与安全性相关的握手和其他握手。
    
    @property (nullable, copy, readonly) NSDate *requestStartDate;
    任务开始请求资源之前的时间,无论从服务器还是本地资源检索资源。
    例如,这将对应于用户代理发送HTTP GET请求之前的时间。
    
    @property (nullable, copy, readonly) NSDate *requestEndDate;
    任务完成后立即请求资源的时间,无论它是从服务器或本地资源检索到的。
    requestEndDate是用户代理完成对源的请求后立即出现的时间,不管是从服务器检索到的资源还是本地资源。
    例如,这将对应于用户代理完成发送请求的最后一个字节后的立即时间。
    
    @property (nullable, copy, readonly) NSDate *responseStartDate;
    任务从服务器或本地资源接收到响应的第一个字节后的立即时间。
    例如,这将对应于用户代理收到HTTP响应的第一个字节后的立即时间。
    
    @property (nullable, copy, readonly) NSDate *responseEndDate;
    任务接收到资源的最后一个字节后的立即时间。
    responseEndDate是用户代理收到资源的最后一个字节后的立即时间。
    
    @property (nullable, copy, readonly) NSString *networkProtocolName;
    用于获取资源的网络协议。
    当配置代理并建立隧道连接时,该属性返回隧道协议的值,该值由ALPN协议ID标识序列标识,如RFC 7310所示。例如:
    如果没有使用代理,并且协商了HTTP/2,则返回h2。
    如果代理使用HTTP/1.1,并且隧道连接是HTTP/2,则返回h2。
    如果代理使用HTTP/1.1,并且没有通道,则返回HTTP/1.1。
    
    @property (assign, readonly, getter=isProxyConnection) BOOL proxyConnection;
    一个布尔值,指示是否使用代理连接来获取资源。
    如果使用代理连接获取资源,则将此属性设置为YES。
    
    @property (assign, readonly, getter=isReusedConnection) BOOL reusedConnection;
    一个布尔值,指示是否使用持久连接来获取资源。
    如果使用持久连接获取资源,则将此属性设置为YES。
    
    @property (assign, readonly) NSURLSessionTaskMetricsResourceFetchType resourceFetchType;
    一个值,指示是否从本地缓存加载、推送或检索资源。
    指示是否从本地缓存加载、推送或检索资源。
    

    相关文章

      网友评论

        本文标题:NSURLSessionTaskTransactionMetri

        本文链接:https://www.haomeiwen.com/subject/ewywbqtx.html