NSURLSessionTaskTransactionMetrics

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;
一个值,指示是否从本地缓存加载、推送或检索资源。
指示是否从本地缓存加载、推送或检索资源。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,803评论 1 32
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,871评论 6 13
  • Getting Started Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多工具,并为...
    Eva_chenx阅读 29,053评论 0 14
  • 人生若只如初见,何事秋风悲画扇。 等闲变却故人心,却道故人心易变。 纳兰的词,如同他的人,万千味道。时光柔软了男人...
    半城离火阅读 2,860评论 4 4
  • 白天登顶(仙都顶一湖峰) 晚饭后闲来无事,两人手牵手走在乡村道上灬 没有路灯,唯有柔和的月光把道路两旁的树木倒...
    芷苡阅读 2,895评论 0 1