网络编程归纳总结一阶段

来源:互联网 发布:马歇尔勒纳条件 知乎 编辑:程序博客网 时间:2024/05/19 06:15

最近在写一个网络框架 发现自己对网络底层的知识的记忆和了解不足 决定上班不忙时整理回顾网络和多线程的知识结构 尽量每天写吧 = =

网络

网络基础概念

客户端: 应用

服务器: 为客户端提供服务 数据 资源的机器

请求: 客户端向服务器索取数据

响应: 服务器对客户端的请求作出反应

服务器

服务器分为:

内网服务器 外网服务器 本地测试服务器

URL ( universal resource locator ) 统一资源定位符

网络中每一个资源都对应着一个URL

基本格式: 协议//主机地址:端口号/路径

协议: 不同的资源获取方式

HTTP HTTPS FTP mailto File(本地) tel:// 电话 sms://短信

协议

协议:

HTTP 超文本传输协议 (网页上所有的内容都可以视作超文本);

需要浏览器和web服务器通讯时遵守的约定

是互联网中使用最多的协议

请求与响应:

请求: NSURLRequest

拥有一个类方法:

requestWithURL 可以根据URL创建请求

响应后会变为二进制数据 然后转换为字符串

代码

    //设置请求头    [request setValue:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36" forHTTPHeaderField:@"User-Agent"];    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {        //NSHTTPURLResponse        if (!connectionError) {            //判断是否正常接收到服务器返回的数据            NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;            if (httpResponse.statusCode == 200 || httpResponse.statusCode == 304) {                //获取服务器的响应体                NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];                NSLog(@"--%@",str);            }else{                NSLog(@"服务器内部错误");            }        }else{            NSLog(@"error: %@",connectionError);        }    }];

webView

加载网页的view

loadHTMLString 字符串 baseURL: 参数
将从data格式转换的字符串显示到webview上

IP地址
32位的二进制数据 通常分割为8位十进制
本机地址: 127.0.0.1 广播: 255.255.255.255
0.0.0.0.any 计算机中任何可用的IP
内网的IP地址是由路由器分配的

端口号:
标识进程的逻辑地址 不同进程的标识
取值范围: 0~65535
分类为:
公认端口 0~1024
注册端口 1025~49151
动态与私有端口 49152~65535

网络模型:

OSI网络模型:
应用层 >表示层>会话层>传输层>网络层>数据连接层>物理层>

ICP/IP网络模型:
应用层>传输层>网络层>网络链入层

TCP: 传输控制协议 一对一
可靠的 可以通过三次握手来连接传输服务

UDP:用户数据报协议
不保证可靠性(不是不可靠) 无连接的数据传输服务

最近才开始往github上放东西 在公司写的又不能放= = 大家姑且看看吧

github地址: https://github.com/FuThD

2 0
原创粉丝点击