 /**
     HTTP method definitions.
 
-    See http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
+    See http://tools.ietf.org/html/rfc7231#section-4.3
 */
 public enum Method: String {
     case OPTIONS = "OPTIONS"

                        return join(",", components)
                    }()

                    // User-Agent Header; see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.43
                    let userAgent: String = {
                        let info = NSBundle.mainBundle().infoDictionary
                        let executable: AnyObject = info[kCFBundleExecutableKey] ?? "Unknown"

                var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()

                configuration.HTTPAdditionalHeaders = {
                    // Accept-Encoding HTTP Header; see http://tools.ietf.org/html/rfc7230#section-4.2.3
                    let acceptEncoding: String = "gzip;q=1.0,compress;q=0.5"

                    // Accept-Language HTTP Header; see http://tools.ietf.org/html/rfc7231#section-5.3.5
                    let acceptLanguage: String = {
                        var components: [String] = []
                        for (index, languageCode) in enumerate(NSLocale.preferredLanguages() as [String]) {
