在计算机网络中常用的协议有哪些?
协议 , 端口 , 基础协议 , 用途
HTTP/HTTPS , 80 , TCP , 国际互联网的支持协议
file, ,TCP,本地文件协议
FTP,21,TCP,文件传输协议
SHH,22,TCP,用于加密和远程登录
SMTP,25,TCP,简单邮件传输协议
talnet,23,TCP,用于交互式远程登录会话
URL
URL用于标识Internet上资源位置,它指定用于访问服务器的协议,服务器名称以及文件在服务器上的位置,如 http://iosseventeenclass.sinaapp.com/myapp/index.php
语法:
protocol://username@hostname:port/path/filename?query#fragment
1.protocol
代表互联网协议,可以是HTTP,FTP,file等协议.
2.username
代表服务器用户名,可选参数
3.hostame
代表服务器名称,可以是名称,也可以是节点节点地址
4.port
代表端口号,可选参数,如果有http,会是默认80端口号,如果是FTP协议默认是21端口号
5.path
/filename
代表文件在服务器的路径
6.query#fragment
代表查询条件,通常用于向服务器提供附加参数,一般只用于http,URL,这里的查询条件是向服务器提供的参数.
note:
在URL中不可出现中文,空格,百分号等一些特殊字符.
在OC中使用NSURL
类来定义URL
//将url字符串转换成NSURL类
NSURL *url = [NSURL URLWithString:@"http://iosseventeenclass.sinaapp.com/index.php?name=vincent&age=25"];
//用NSData接收从服务器端传过来的数据
NSData *data = [NSData dataWithContentsOfURL:url];
NSString *string = [[NSString alloc] initWithData:data encoding:4];
NSLog(@"string = %@",string);
有时候我们传入给服务器的参数出现中文,但是URL不支持中文等一些特殊字符,那么此时需要进行url编码
//将url字符串进行编码
NSString *urlString = @"http://iosseventeenclass.sinaapp.com/index.php?name=颜树新&age=25";
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:4];
//将url字符串转换成NSURL类
NSURL *url = [NSURL URLWithString:urlString];
//用NSData接收从服务器端传过来的数据
NSData *data = [NSData dataWithContentsOfURL:url];
NSString *string = [[NSString alloc] initWithData:data encoding:4];
NSLog(@"string = %@",string);
在OC中将URL字符串转换成NSURL
时,其协议,主机域名,路径文件,查询条件都被封装成NSURL
类中的属性,如下所示:
NSLog(@"url absoluteString = %@",url.absoluteString);
NSLog(@"url relativeString = %@",url.relativeString);
NSLog(@"url baseString = %@",url.baseURL);
NSLog(@"url scheme = %@",url.scheme);
NSLog(@"url resourceSpecifier = %@",url.resourceSpecifier);
NSLog(@"url host = %@",url.host);
NSLog(@"url path = %@",url.path);
NSLog(@"url port = %@",url.port);
NSLog(@"url user = %@",url.user);
NSLog(@"url query = %@",url.query);