NSHTTPCookie官方文档阅读

NSHTTPCookie

Overview

NSHTTPCookie对象表示HTTP cookie。 它是一个不可变的对象,从包含cookie属性的字典初始化。

NSHTTPCookie类支持两种不同的cookie版本:

1. Version 0;此版本是指由Netscape定义的原始cookie格式的“传统”或“旧式”cookie。 遇到的大多数Cookie都是这种格式。
2. Version 1;此版本是指RFC 2965(HTTP状态管理机制)中定义的Cookie。

Symbols

Create cookie instances

  • + (NSArray *)cookiesWithResponseHeaderFields:(NSDictionary *)headerFields forURL:(NSURL *)URL

    返回与指定的URL的响应头部相对应的NSHTTPCookie对象数组。

    此方法忽略headerField中不相关的头字段,允许字典包含其他数据。

    如果headerFields没有为给定的cookie指定域,则使用theURL的域名创建该cookie。
    如果headerFields未指定给定cookie的路径,则使用默认路径值“/”创建cookie。


  • + (NSHTTPCookie *)cookieWithProperties:(NSDictionary *)properties

    使用提供的属性创建和初始化NSHTTPCookie对象。

    properties:新的Cookie对象的属性的键值对。

    要成功创建一个cookie,你必须提供(至少)NSHTTPCookiePath,NSHTTPCookieName和NSHTTPCookieValue的键以及NSHTTPCookieOriginURL或NSHTTPCookieDomain键的值。


  • - (instancetype)initWithProperties:(NSDictionary *)properties

    同上;

Convert cookies to request headers

  • + (NSDictionary *)requestHeaderFieldsWithCookies:(NSArray *)cookies

    返回与提供的Cookie数组相对应的标题字段的字典。

    要将这些头文件作为URL请求的一部分发送到远程服务器,请创建一个NSMutableURLRequest对象,然后调用allHTTPHeaderFields或setValue:forHTTPHeaderField:方法来为请求设置提供的头文件。 最后,根据该请求对象初始化并启动NSURLSessionTask,NSURLConnection或NSURLDownload对象。

Getting cookie properties

  • @property(readonly, copy) NSString *comment

    cookie的注释字符串;如果cookie没有注释,则为nil。 此字符串适用于向用户展示,说明此Cookie的内容和目的。


  • @property(readonly, copy) NSURL *commentURL

    cookie的注释URL;接收者的注释URL,如果cookie没有,则为nil。 此值适用于向用户呈现URL,以获取有关此Cookie的更多信息。


  • @property(readonly, copy) NSString *domain

    cookie的域名;
    如果域不以点开头,那么cookie只会发送到该域指定的确切主机。 如果域以点开头,那么cookie也会发送到该域中的其他主机,但受到一定的限制。 有关详细信息,请参阅RFC 2965。


  • @property(readonly, copy) NSDate *expiresDate

    cookie的过期时间;
    接收者的到期日期,如果没有特定的到期日期(例如“仅限会话”)的Cookie,则为nil。 到期日是Cookie应删除的日期。


  • @property(readonly, getter=isHTTPOnly) BOOL HTTPOnly

    一个布尔值,指示接收器是否应仅根据RFC 2965发送到HTTP服务器。
    如果此cookie只能通过HTTP头发送,则返回YES,否则NO。

    Cookie可能被服务器(或JavaScript)标记为HTTP only。 被这样标记的Cookie只能通过HTTP请求的头部发送,并且每个URL与相应Cookie的路径和域都必须匹配。

    NOTE:指定为HTTPOnly的Cookie不应传递到任何JavaScript应用程序,以防止跨站点脚本漏洞。


  • @property(readonly, getter=isSecure) BOOL secure

    一个布尔值,表示该cookie是否应该仅通过安全通道发送。


  • @property(readonly, getter=isSessionOnly) BOOL sessionOnly

    一个布尔值,指示接收者是否应在会话结束时被丢弃(不管过期日期如何)。


  • @property(readonly, copy) NSString *name

    cookie的名字;


  • @property(readonly, copy) NSString *path

    cookie的路径;
    该cookie将在cookie的域中发送此路径的请求以及具有此前缀的所有路径。 “/”的路径表示将为域中的所有网址发送cookie。


  • @property(readonly, copy) NSArray *portList

    cookie的端口列表;作为包含整数的NSNumber对象数组返回。 如果cookie没有端口列表,则此方法返回nil,并将cookie发送到任何端口。 否则,cookie只发送到端口列表中指定的端口。


  • @property(readonly, copy) NSDictionary *properties

    cookie的属性;该字典可以作为initWithProperties: 或者是 cookieWithProperties: 方法的参数来创建一个相等的cookie;


  • @property(readonly, copy) NSString *value

    cookie的值;


  • @property(readonly) NSUInteger version

    cookie的版本号;版本0映射到“旧式”Netscape Cookie。 版本1映射到RFC 2965 cookie。

Constants:HTTP Cookie Attribute Keys

  1. const NSHTTPCookiePropertyKey NSHTTPCookieComment

    包含cookie的注释的NSString对象。
    仅适用于version 1 更高版本。此cookie属性是可选的。

  2. const NSHTTPCookiePropertyKey NSHTTPCookieCommentURL

    包含cookie的注释的NSString或NSURL对象。
    仅适用于version 1 更高版本。此cookie属性是可选的。

  3. const NSHTTPCookiePropertyKey NSHTTPCookieDiscard

    一个NSString对象,说明在会话结束时是否应该丢弃该cookie。
    字符串值必须是“TRUE”或“FALSE”。 此cookie属性是可选的。 默认值为“FALSE”,除非该cookie为1或更高版本并且没有指定NSHTTPCookieMaximumAge的值,在这种情况下,它将被假定为“TRUE”。

  4. const NSHTTPCookiePropertyKey NSHTTPCookieDomain

    包含cookie的域的NSString对象。
    如果缺少此cookie属性,则会根据NSHTTPCookieOriginURL的值推断该域。 如果不指定NSHTTPCookieOriginURL的值,则必须为NSHTTPCookieDomain指定一个值。

  5. const NSHTTPCookiePropertyKey NSHTTPCookieExpires

    指定Cookie过期日期的NSDate对象或NSString对象。
    此cookie属性仅用于version 0。此cookie属性是可选的。

  6. const NSHTTPCookiePropertyKey NSHTTPCookieMaximumAge

    一个NSString对象,其中包含一个整数值,表示最多保留cookie应该保持多长时间。
    仅适用于version 1及更高版本。默认值为“0”。此cookie属性是可选的。

  7. const NSHTTPCookiePropertyKey NSHTTPCookieName

    包含cookie名称的NSString对象。此cookie属性是必需的。

  8. const NSHTTPCookiePropertyKey NSHTTPCookieOriginURL

    包含设置此cookie的URL的NSURL或NSString对象。
    如果你不提供NSHTTPCookieOriginURL的值,则必须为NSHTTPCookieDomain提供一个值。

  9. const NSHTTPCookiePropertyKey NSHTTPCookiePath

    包含cookie名路径的NSString对象。此cookie属性是必需的。

  10. const NSHTTPCookiePropertyKey NSHTTPCookiePort

    NSString对象,包含逗号分隔的整数值,指定Cookie的端口。
    仅适用version 1或更高版本。 默认值为空字符串("")。 此cookie属性是可选的。

  11. const NSHTTPCookiePropertyKey NSHTTPCookieSecure

    一个NSString对象,表示该cookie只能通过安全通道发送。
    为此键提供任何值表示cookie应该保持安全。

  12. const NSHTTPCookiePropertyKey NSHTTPCookieValue

    包含cookie值的NSString对象。此cookie属性是必需的。

  13. const NSHTTPCookiePropertyKey NSHTTPCookieVersion

    指定cookie版本的NSString对象。
    必须是“0”或“1”。 默认值为“0”。 此cookie属性是可选的。

参考

理解cookie的path和domain属性
Cookie各属性以及安全测试方法

你可能感兴趣的:(NSHTTPCookie官方文档阅读)