URL 和 NSURL 格式解析

动NSURL对URL进行剖析得到各个要素。下面代码显示了NSURL的各国种值的意义:http://www.ctolive.com/space-1023
-do-blog-id-2099.html

URL 和 NSURL 格式解析

[C/C++]代码

字数973阅读46评论0喜欢0

NSURL *url = [NSURL URLWithString:
 @"http://some-site.com:999/dir1/dir2;param?field-1=value-1&field-2=value-2#anchor1"];

NSLog(@"Scheme: %@", [url scheme]);
NSLog(@"Host: %@", [url host]);
NSLog(@"Port: %@", [url port]);     
NSLog(@"Path: %@", [url path]);     
NSLog(@"Relative path: %@", [url relativePath]);
NSLog(@"Path components as array: %@", [url pathComponents]);        
NSLog(@"Parameter string: %@", [url parameterString]);   
NSLog(@"Query: %@", [url query]);       
NSLog(@"Fragment: %@", [url fragment]);
  1. URL 是什么?

1023_13210186197IEo.png

集合资源一定符(Uniform Resource
Locator,缩写为URL),又称作网页地址,是互联网上专业的资源的地点(Address)。互联网及之每个文件还发一个唯一的URL,它蕴含的信指出文件之位置与浏览器应该怎么处理它。

imgs/asCode/09105608_nC7m.png

统一资源一定相符:

原则性资源

确定资源来哪(可以为此什么措施分析)

  1. URL 定义格式

注意,Windows 主机不区分 URL 大小写,但是,Unix/Linux 主机区分轻重缓急写。

url 的核心概念:

// url 编码格式foo://example.com:8042/over/there?name=ferret#nose 
\_/ \______________/
\________/\_________/ \__/|        |             
|        |        |scheme    authority        path    query  fragment

URL由三有些组成:资源类型、存放资源的主机域名、资源文件称

scheme://host.domain:port/path/filenamescheme –
定义因特网服务之类型。最广泛的门类是 httphost – 定义域主机(http
的默认主机是 www)domain – 定义因特网域名,比如 w3school.com.cn:port –
定义主机及之端口号(http 的默认端口号是80)path –
定义服务器上之不二法门(如果简单,则文档必须在网站的根目录中)。filename –
定义文档/资源的名目

常见的 scheme

file      资源是本土电脑及之公文。格式file://ftp        通过
FTP访问资源。格式 FTP://gopher    通过 Gopher 商量看该资源。 http     
通过 HTTP 访问该资源。 格式 HTTP://https      通过平安的 HTTPS
访问该资源。 格式 target=_blank>HTTPS://mailto   
资源为电子邮件地址,通过 SMTP 访问。 格式 mailto:MMS        通过
支持MMS(流媒体)协议的播音该资源。(代表软件:Windows Media
Player)格式 MMS://ed2k      通过
支持ed2k(专用下充斥链接)协议的P2P软件访问该资源。(代表软件:电驴) 格式
ed2k://Flashget  通过
支持Flashget:(专用下充斥链接)协议的P2P软件访问该资源。(代表软件:快车)
格式 Flashget://thunder    通过
支持thunder(专用下充斥链接)协议的P2P软件访问该资源。(代表软件:迅雷)
格式 thunder://news      通过 NNTP 访问该资源。

周边的URL中一贯和标识的劳务或文件:

http:        文件在WEB服务器上.

file:        文件在公自己之局部系统或者匿名服务器上

ftp:        文件于FTP服务器上

gopher:      文件在gopher服务器上

wais:        文件在wais服务器上

news:        文件在Usenet服务器上

telnet:      连接到一个支撑Telnet远程登录的服务器上

  1. NSURL

NSURL 继承自 NSObject, NSURL
就是针对性联合资源定位符的数目封装。包含的吗就算是结合 url 的老三局部信息。

NSURL相关属性

publicvarabsoluteString:String{get}    publicvarrelativeString:String?
{get}// The relative portion of a URL.  If baseURL is nil, or if the
receiver is itself absolute, this is the same as
absoluteString@NSCopyingpublicvarbaseURL:NSURL? {get}// may be
nil.@NSCopyingpublicvarabsoluteURL:NSURL{get}// if the receiver is
itself absolute, this will return self./* Any URL is composed of these
two basic pieces.  The full URL would be the concatenation of [myURL
scheme], ‘:’, [myURL resourceSpecifier]

*/publicvarscheme:String{get}   
publicvarresourceSpecifier:String{get}/* If the URL conforms to rfc
1808 (the most common form of URL), the following accessors will return
the various components; otherwise they return nil.  The litmus test for
conformance is as recommended in RFC 1808 – whether the first two
characters of resourceSpecifier is @”//”.  In all cases, they return the
component’s value after resolving the receiver against its base URL.

*/publicvarhost:String? {get}@NSCopyingpublicvarport:NSNumber? {get}   
publicvaruser:String? {get}    publicvarpassword:String? {get}   
publicvarpath:String? {get}    publicvarfragment:String? {get}   
publicvarparameterString:String? {get}    publicvarquery:String? {get} 
  publicvarrelativePath:String? {get}// The same as path if baseURL is
nil/* Determines if a given URL string’s path represents a directory
(i.e. the path component in the URL string ends with a ‘/’ character).
This does not check the resource the URL refers to.

*/@available(iOS9.0, *)    publicvarhasDirectoryPath:Bool{get}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图