iOS网络编程
Young丶
这个作者很懒,什么都没留下…
展开
-
Http协议原理解析
一:http的由来:OSI模型把网络通信分成七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,对于开发网络应用人员来说,一般把网络分成五层,这样比较容易理解。这五层为:物理层、数据链路层、网络层、传输层和应用层(最顶层),下面是一张网络分层的图片(来源于网络):网络中的计算机互相通信就是实现了层与层之间的通信,要实现层与层之间的通信,则各层都要遵守规原创 2015-10-06 15:14:39 · 609 阅读 · 0 评论 -
Apache httpd设置HTTPS双向认证
一、环境httpd: 2.4.4openssl:1.0.1os:ubuntu 12.04 LTS二、场景我准备在httpd上配置一个HTTPS双向认证,既向客户端表明自己的身份,也只允许特定的客户端访问。本文说的主要是作为server的角色的配置,至于作为client的配置,最后也会稍微介绍一下,但是不会详细说明一般来说,互联网站不会去配置双向认原创 2017-02-04 21:40:29 · 10113 阅读 · 0 评论 -
Https单向认证和双向认证
一、HttpHyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。使用TCP端口为:80二、HttpsHyper Text Transfer Protocol over Secure Socke原创 2017-02-04 21:00:37 · 1947 阅读 · 0 评论 -
iOS网络缓存扫盲篇
当我们在谈论缓存的时候,我们在谈论什么?GET网络请求缓存80%的缓存需求:两行代码就可满足控制缓存的有效性文件缓存:借助ETag或Last-Modified判断文件缓存是否有效Last-ModifiedETag总结一般数据类型借助 Last-Modified 与 ETag 进行缓存剩下20%的网络缓存需求--真的有NSURLCache 不能满足的需求?转载 2016-11-30 22:58:31 · 497 阅读 · 0 评论 -
URLCache 总结
URLCache func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization afte原创 2016-11-30 22:49:19 · 2442 阅读 · 0 评论 -
NSCache和NSURLCache网络缓存优化
首先要说一件重要的事:NSCache和NSURLCache一点关系也没有NSCache和NSURLCache一点关系也没有NSCache和NSURLCache一点关系也没有需要注意的一点是:设置NSURLCache的大小时,大多使用下面的代码- (BOOL)application:(UIApplication *)application didF原创 2016-11-30 13:19:22 · 606 阅读 · 0 评论 -
NSURLCache
NSURLCache 为您的应用的 URL 请求提供了内存中以及磁盘上的综合缓存机制。 作为基础类库 URL 加载系统 的一部分,任何通过 NSURLConnection 加载的请求都将被 NSURLCache 处理。网络缓存减少了需要向服务器发送请求的次数,同时也提升了离线或在低速网络中使用应用的体验。当一个请求完成下载来自服务器的回应,一个缓存的回应将在本地保存。下一次同一原创 2016-11-30 09:35:15 · 401 阅读 · 0 评论 -
NSCache
NSCache是一个类似于集合的容器,即缓存。它存储key-value对,这一点类似于NSDictionary类。我们通常用使用缓存来临时存储短时间使用但创建昂贵的对象。重用这些对象可以优化性能,因为它们的值不需要重新计算。另外一方面,这些对象对于程序来说不是紧要的,在内存紧张时会被丢弃。如果对象被丢弃了,则下次使用时需要重新计算。当一个key-value对在缓存中时,缓存维护它的一个强引原创 2016-11-29 14:05:52 · 613 阅读 · 0 评论 -
iOS开发网络——数据缓存
一、关于同一个URL的多次请求有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的。 上面的情况会造成以下问题(1)用户流量的浪费(2)程序响应速度不够快解决上面的问题,一般考虑对数据进行缓存。 二、缓存为了提高程序的响应速度,可以考虑使用缓存(内存缓存\原创 2016-11-28 20:45:30 · 439 阅读 · 0 评论 -
NSURLSession简介与入门
NSURLSession 也不是什么新鲜话题了,但之前一直只是简单的使用却没有总结过其用法及注意事项,现在就整理一下关于NSRULSession的相关知识。基本组成 使用需要配合三个基本的对象类型,分别是:NSURLSessionConfiguationNSURLSessionNSURLSessionTask它们之间的关系,苹果的官方文档有很好的原创 2016-10-18 21:21:56 · 412 阅读 · 0 评论 -
ACK
ACK (Acknowledgement),即确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。中文名ACK外文名Acknowledgement中文译名确认字符分 类传输与接入基本介绍编辑解 释: 在数据通信传输中,接收站发给发送站的一种传输控制字符。它表示确认原创 2016-05-09 09:41:31 · 1765 阅读 · 0 评论 -
tar.gz 是什么
以·tar.gz为扩展名的是一种压缩文件,在Linux和OSX下常见,Linux和OSX都可以直接解压使用这种压缩文件。.tar.gz一般情况下都是源代码的安装包,需要先解压再经过编译、安装.才能执行。总而言之它是一个压缩文件。解压:[*******]$ tar -zxvf FileName.tar.gz压缩:[*******]$ tar -zcvf FileN原创 2016-03-25 15:53:27 · 1167 阅读 · 0 评论 -
tcp粘包分析
这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一 .两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即转载 2016-04-06 20:30:40 · 485 阅读 · 0 评论 -
TCP和UDP 粘包 消息保护边界
在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。对于UDP,不会使用块的原创 2016-04-06 16:40:20 · 862 阅读 · 0 评论 -
UDP收/发广播包原理及步骤
UDP收/发广播包原理及步骤 如果网络中两个主机上的应用程序要相互通信,其一要知道彼此的IP,其二要知道程序可监听的端口。因为同一主机上的程序使用网络是通过端口号来区分的。UDP Socket的使用过程:1. 初始化网络库2. 创建SOCK_DGRAM类型的Socket。3. 绑定套接字。4. 发送、接收数据。5. 销毁套接字。原创 2016-03-31 15:56:02 · 6665 阅读 · 0 评论 -
Socket详解
一、网络各个协议:TCP/IP、SOCKET、HTTP等网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象;传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。 http协议 对应于应用层 tcp协议 对应于传输层原创 2015-12-15 15:39:05 · 518 阅读 · 0 评论 -
socket简介
首先让我们通过一张图知道socket在哪里?Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。tcp和udp的区别在这里就必须讲一下udp和tcp的区别了TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。UDP:面向非连接、传输原创 2015-12-15 14:37:36 · 557 阅读 · 0 评论 -
sharePic
原创 2015-11-25 19:27:31 · 979 阅读 · 0 评论 -
openssl生成https证书
1.首先要生成服务器端的私钥(key文件):openssl genrsa -des3 -out server.key 1024运行时会提示输入密码,此密码用于加密key文件去除key文件口令的命令:openssl rsa -in server.key -out server.key2.openssl req -new -key server.key -out server.原创 2017-02-04 13:28:58 · 1174 阅读 · 0 评论