网络知识点总结

IP地址

凡是连接了互联网的主机都有一个IP地址;
如果该主机借用了路由器的网络,那么这个主机只有局域网内的IP;

端口号

  • 每个端口号一般对应一个APP

  • 如果使用的是http协议,http服务的默认端口号是80
    端口号是16位的,最大值是65535

URL(统一资源定位符)

  • 组成结构: 协议://主机地址:端口号/路径

组成结构分析

  • 协议:规定了网络中两个主机之间的沟通流程相关语法
  • 主机地址:可以是IP地址,也可以是域名;(如果是域名需要通过DNS转换为ip地址)
  • 1个主机对应1个IP地址
  • 端口号:用来表示进程,一般的APP都是单进程的;
  • 1个进程对应1个APP
  • 路径:是你访问的服务器中的资源代码源文件的地址;

B/S和C/S

  • B/S:浏览器/服务器
  • C/S:客户端/服务器

Unicode和UTF8编码的关系

  • Unicode:是一个字符集(说通俗点就是个表)
  • UTF8:是对Unicode字符集的一种编码方式。

字符集是一种与存储无关的表,只有编码才是真正可传输可存储的格式。

GB2312和Unicode的优缺点

  • GB2312只对中英文编码,所以单个字符的编码长度更短,可以节约流量提高传输速率;
  • Unicode可以兼容更多种语言,兼容性更好,但单个字符的编码长度稍长,需要的流量更多;

TCP/IP网络模型的四层

  • 应用层——对应不同协议的不同端口号
  • 传输层——对应TCP或UDP协议
  • 网络层——对应IP
  • 网络接口层(数据链路层)——对应物理帧

UDP与TCP的优缺点

TCP:

  • 面向链接
  • 速度较慢! 因为在交换数据前,必须先在双方之间建立一个TCP连接;
  • 可靠! 提供数据校验超时重发,丢弃重复数据,流量控制等;

UDP:

  • 不可靠! 只是把应用层(APP)传给网络层(封装IP报头)的数据报发送出去;
  • 速度较快! 没有数据校验,没有超时重发机制,协议规定的报头格式简单,不面向连接;

WebView的使用方法

加载HTML格式的字符串
  • (void)loadHTMLString:(NSString*****)stringbaseURL: (nullableNSURL *****)baseURL;

Socket通信过程

1. 创建socket

参数说明:
  1. 常用AF_INET(ipv4+端口号)(将来苹果要强烈要求使用ipv6)
  2. TCP用SOCK_STREAM(流式),UDP用SOCK_DGRAM(数据报式)
  3. TCP用IPPROTO_TCP,UDP用IPPROTO_UDP。可以直接写0,这样会根据前两个形参自动选择
返回值:

socket描述符。每个进程(一般的程序只有一个进程)中都有一个 socket描述符表,通过socket描述符就可以在操作系统的内核缓存中找到相应的socket。
返回-1为失败

方法名:

socket(int, int, int)

2. 发起connect

参数:
  1. socket描述符
  2. struct sockaddr_in结构体,里面保存了五个变量,其中最重要的有3个
  • (互联网协议) 协议族:sin_family 常用 AF_INET 以后苹果要求是用IPV6;
  • IP地址:sin_addr.s_addr 赋值为 inet_addr("XXX.XXX.XXX.XXX");
  • 端口号:sin_port 赋值为 htons(XXXXX),htons()的作用是把任意数改成大尾顺序;
  1. 结构体的大小,sizeof();
返回值:

返回0为成功,其它为失败

方法名:

connect(int, const struct sockaddr *, socklen_t)

3. send数据:

参数:

  1. socket描述符
  2. char *要发送的字符串
  3. 字符串长度,strlen()
  4. 与阻塞有关,可选项非常的多,一般置0
返回值:

-1失败,大于0是发送的字节数

函数:

send(int, const void *, size_t, int)

4. recv数据

参数:
  1. socket描述符
  2. uint8_t类型的数组
  3. 字符串长度,strlen()
  4. 与阻塞有关,可选项非常的多,一般填写0
返回值:

-1失败,大于0则是接收的字节数

方法名:

recv(int, void *, size_t, int)

5. close连接:

参数:

  1. socket描述符
方法名:

close(int)

请求的格式:(一行二头三体)

请求行:请求方法``空格``路径``协议和版本号``\r\n
请求头:头字段名``:``空格``头字段值``\r\n
结束符:\r\n
请求体:默认的GET请求没有请求头

比较常用几个请求头

  • Host:主机地址;
  • Connection:长连接或短连接。工作中遇到的部分长连接需要使用定时器发送规定内容的字符串,以这种方式发送的请求叫做心跳包

数据解析

序列化和反序列化

  • 序列化

在向服务器发送数据之前,将 NSArray / NSDictionary 转换成二进制的过程

  • 反序列化

从服务器获取数据之后,将二进制数据转化为NSArray / NSDictionary的过程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • OSI,TCP/IP,五层协议的体系结构,以及各层协议 OSI分层(7层):物理层、数据链路层、网络层、传输层、会...
    Pitfalls阅读 424评论 0 2
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,586评论 2 57
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 5,941评论 1 13
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 为了回家开一个稀奇古怪的证明,一路没时间歇息,狂奔南下。奔波了一路终于到家,细细一捋行程,简直比真...
    小韩不止聊健康阅读 456评论 0 0