网络相关
文章平均质量分 91
想名真难
这个作者很懒,什么都没留下…
展开
-
AFNetworking之于https认证
是服务器传过来的,里面包含了服务器的证书信息,是用来我们本地客户端去验证该证书是否合法用的,后面会更详细的去讲这个参数)然后如果有证书,则用证书认证方式,否则还是用默认的验证方式。再讲简单点,其实就是一个容器,装了服务器端需要验证的证书的基本信息、公钥等等,不仅如此,它还可以装一些评估策略,还有客户端的锚点证书,这个客户端的证书,可以用来和服务端的证书去匹配验证的。唯一需要注意的是,这个获取的证书排序,是从证书链的叶节点,到根节点的。客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容。转载 2023-01-07 14:15:07 · 790 阅读 · 0 评论 -
iOS MD5基础知识
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。原创 2022-12-01 14:37:16 · 967 阅读 · 0 评论 -
iOS端URL编码和解码过程
URL 是Uniform Resource Locator 的缩写,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名、参数,如“协议://授权/路径查询?参数”。URL 与 URI很多人会混淆这两个名词。转载 2022-11-13 20:19:09 · 3015 阅读 · 0 评论 -
唱吧KTVHTTPCache 主体框架
最近看到各大V转发关于 唱吧音视频框架 KTVHTTPCache 的开源消息,首先我非常感谢唱吧 iOS 团队能够无私地把自己的成果开源。我本人对于缓存的设计也比较感兴趣,也喜欢写一些东西,希望能把自己一些小技巧分享给需要的同学,这也是我们 #iOS知识小集# 一直做的事情。抱着好奇的心,想了解一下唱吧是如何设计 KTVHTTPCache 的,没想到越看越难,最后竟然花了将近2天的时间看完了。安装时解读在进行安装的时候,发现 KTVHTTPCache 主要依赖了 CocoaHTTPServer 这个转载 2021-09-18 15:31:36 · 1611 阅读 · 0 评论 -
iOS中的HTTP缓存机制应用和体现
一、 什么是缓存Web 缓存是可以保存文档副本的HTTP设备。HTTP缓存一般为两种,本地缓存和代理缓存。本地缓存就是客户端设备中的缓存,代理缓存就是缓存代理服务器,常见的就是 CDN。二、缓存机制1. 缓存机制缓存的机制是针对客户端-缓存设备-源站的交互而言的,缓存的处理机制如下:如上图所示,一般而言,缓存是否新鲜采用 Cache-Control/Expires 进行判断,也叫做强制缓存。服务器的再验证一般采用 If-None-Match + ETag 或者 If-Modified-转载 2021-06-30 15:18:38 · 756 阅读 · 1 评论 -
iOS GET请求缓存,不使用缓存
GET 缓存导致的问题在iOS 客户端通过AFNetworking 发起 GET 方式的HTTP请求时,导致数据始终不是最新的,即使断开网络连接,依旧能获取到response,原因就是其对GET 方式进行了缓存。HTTP缓存HTTP缓存的基本目的就是使应用执行的更快,更易扩展,但是HTTP缓存通常只适用于idempotent request(可以理解为查询请求,也就是不更新服务端数据的请求),这也就导致了在HTTP的世界里,一般都是对GET请求做缓存,POST请求很少有缓存。GET多用来直接转载 2021-06-24 14:45:31 · 1937 阅读 · 0 评论 -
iOS网络请求缓存-URLCache
浅谈iOS网络请求缓存在读过一些开源项目(比如:SDWebImage)之后了解到,大多都是采用的本地存文件的方式进行缓存。当然如何去造这个轮子不是今天想讲的重点。那么今天的想说的重点是什么呢?URLCache类没错URLCache类才是今天要谈的重点。URLCache是Apple为开发者已经准备好了的网络请求缓存类,并且提供的是内存以及磁盘的综合缓存机制。实践是检验真理的唯一标准 func application(_ application: UIApplication, .转载 2021-06-23 14:40:10 · 1376 阅读 · 0 评论 -
NSURLProtocol对WKWebView的处理
之前写过一篇文章是关于基于NSURLProtocol做的DNS解析,其中对NSURLProtocol也有了简单的介绍,我们都知道他可以拦截所有基于URL Loading System 中的请求,但是对于WKWebview里面所发出的请求即使他是http/https 也无能为力,先来简单的了解下WKWebView.WKWebviewiOS8以后,苹果推出了新框架Webkit,提供了替换UIWebView的组件WKWebView。各种UIWebView的问题没有了,速度更快了,占用内存少了,一句话,WK转载 2020-12-21 11:59:00 · 821 阅读 · 0 评论 -
可能是最全的iOS端HttpDns集成方案
1、DNS劫持的危害不知道大家有没有发现这样一个现象,在打开一些网页的时候会弹出一些与所浏览网页不相关的内容比如这样奇(se)怪(qing)的东西图一或者这样图二,其实造成这样的原因就是DNS劫持,在我们正常浏览的网页链接里面被恶意插入一些奇怪的东西。不止是这些,DNS劫持还会对我们的个人信息安全造成很大的伤害,钓鱼网站之类的,也许我们所访问的网站根本不是我们需要的网站,或者根本打不开网页,有时还会消耗我们过多的流量。2、什么是DNS解析现在假如我们访问一个网站www.b转载 2020-12-21 11:56:58 · 945 阅读 · 0 评论 -
HTTPS验证自签名证书及推荐代码
在开发阶段后台经常使用自签名的证书来部署。但是在iOS中调用的时候就会因为证书不被信任而调用api不成功。这时候我们就需要通过实现某些网络回调函数来自定义证书的验证逻辑。(在iOS中一般通过UrlSession(OC中是NSUrlSession)来进行网络通信,这里以UrlSession为例)。首先我们需要了解几个概念。Challenge Challenge是计算机安全中的专业术语。字面意思质询。就是为了验证用户身份,向访问者发送一个质询,然后访问者需要提供一个正确的回答以示身份。最简单的就转载 2020-12-17 10:24:03 · 829 阅读 · 0 评论 -
一个 TCP 连接可以发多少个 HTTP 请求?
一道经典的面试题是从 URL 在浏览器被被输入到页面展现的过程中发生了什么,大多数回答都是说请求响应之后 DOM 怎么被构建,被绘制出来。但是你有没有想过,收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式、什么顺序、建立了多少连接、使用什么协议被下载下来的呢?要搞懂这个问题,我们需要先解决下面五个问题: 现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开? 一个 TCP 连接可以对应几个 HTTP 请求? 一个转载 2020-11-23 18:58:08 · 153 阅读 · 0 评论 -
什么是粘包?
TCP/IP 协议簇建立了互联网中通信协议的概念模型,该协议簇中的两个主要协议就是 TCP 和 IP 协议。TCP/ IP 协议簇中的 TCP 协议能够保证数据段(Segment)的可靠性和顺序,有了可靠的传输层协议之后,应用层协议就可以直接使用 TCP 协议传输数据,不在需要关心数据段的丢失和重复问题。图 1 - TCP 协议与应用层协议IP 协议解决了数据包(Packet)的路由和传输,上层的 TCP 协议不再关注路由和寻址,那么 TCP 协议解决的是传输的可靠性和顺序问题,上层不需要.转载 2020-08-25 16:19:51 · 18891 阅读 · 3 评论 -
NSURLProtocol拦截 HTTP 请求
NSURLProtocol是苹果为我们提供的URL Loading System的一部分,在每一个 HTTP 请求开始时,URL 加载系统会创建一个合适的NSURLProtocol对象处理对应的 URL 请求,正常情况下的网络请求是使用的系统默认实现, 而我们需要做的就是写一个继承自NSURLProtocol的类,并通过- registerClass:方法注册我们的协议类,然后 URL 加载系统就会在请求发出时使用我们创建的协议对象对该请求进行处理。NSURLProtocol是...转载 2020-08-24 11:21:04 · 2064 阅读 · 0 评论 -
Cookie,session和token的机制详解及区别
额, 说实话, 这个问题不应该问一个前端/移动端的人.Cookie是网页浏览器用来保存用户信息的文件,可以保存比如用户是谁,购物车有哪些商品等。Session是一次会话,会话是指我们访问网站的一个周期。比如用户打开一个浏览器访问某个位的站点。在这个站点点击多个超链接查看各个网页,然后关闭浏览器,整个过程称之为一个会话。token是服务器返回的一个临时签名数据, 可以使用这个签名数据表面用户身份.为什么会有这三个东西呢? 都是一个目的, 服务器需要知道和自己通话的人是谁, ...原创 2020-08-05 10:46:32 · 6504 阅读 · 0 评论 -
HTTP报文的结构
HTTP请求方法对照表HTTP状态码对照表HTTP请求报文解剖HTTP Request :HTTP请求Request Line:请求行Header:请求头Request Body:请求体HTTP请求报文由3部分组成(请求行+请求头+请求体):下面是一个实际的请求报文:①是请求方法,HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE,最常的两种GET和POST。②为请求对应的URL地址,它和报文头的转载 2020-08-04 16:53:40 · 1565 阅读 · 0 评论 -
公钥/私钥与数字证书原理
1、基础知识 这部分内容主要解释一些概念和术语,最好是先理解这部分内容。1.1、公钥密码体制(public-key cryptography) 公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下: 加密:通过加密算法和公钥对内容(或者说明文)进行加密,得到密文。加密过程需要用到公钥。 解密:通过解密算法和私钥对密文进行解密,得到明文。解密过程...转载 2020-04-24 18:40:30 · 1342 阅读 · 0 评论 -
http协议各版本差异
http协议各版本差异一、http协议介绍 http(Hypertext transfer protocol)超文本传输协议,它是互联网上应用最为广泛的一种网络协议,工作在应用层。二、http协议发展 http协议目前有4个版本,其中1.0、1.1版本在互联网上被广泛使用,2.0版本目前应用很少,是下一代的http协议。 http/0.9版本:1991...转载 2020-03-03 16:21:13 · 4050 阅读 · 0 评论 -
iOS10 如何正确的使用通知
iOS10把以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifications.framework 来集中管理和使用 iOS 系统中通知的功能。在此基础上,Apple 还增加了撤回单条通知,更新已展示通知,中途修改通知内容,在通知中展示图片视频,自定义通知 UI 等一系列新功能,非常强大。对于开发者来说,相较于之前版本,iOS 10 提供了一套非常易用的通...转载 2019-09-04 16:45:13 · 1119 阅读 · 0 评论 -
NSURLCache缓存使用,附实例
NSURLCache是一个系统默认会使用的网络请求类 , 读下文档可以知道以下信息该类是NSObject的子类;实现URL requests到NSCachedURLResponse的映射,提供了内存和硬盘的缓存 ,可以设置内存磁盘缓存大小和磁盘存储路径,在ios系统中,当app不运行的时候 , 磁盘缓存会在系统空间满的时候被清理 .既然里面提...原创 2019-08-30 16:09:30 · 660 阅读 · 0 评论 -
完整的HMAC加密过程
在用户端进行请求的时候,如果要上传一些敏感数据,比如用户的密码,身份证号,银行卡信息时一般是需要进行加密,以用户的登录密码为例,说下HMAC加密的过程. 先说原理 : 通过哈希算法,我们可以验证一段数据是否有效,方法就是对比该数据的哈希值。md5是应用非常广泛的哈希算法.其他的还有SHA-1,SHA-256,等等都行. 从注册开始 1....原创 2019-08-19 11:04:34 · 4129 阅读 · 1 评论 -
官方文档阅读 , 了解原生网络请求
简书上的一个小伙伴,对官方文档的翻译很多:https://www.jianshu.com/u/4d63ab4b9120NSURLSession官方文档阅读 :https://www.jianshu.com/p/b29dd24ec752NSURLSession的代理官方文档阅读 :https://www.jianshu.com/p/aee8507d0becNSURLSessio...转载 2019-07-01 11:04:48 · 98 阅读 · 0 评论 -
WKWebView 使用和坑
iOS8以后,苹果推出了新框架Wekkit,提供了替换UIWebView的组件WKWebView。各种UIWebView的问题没有了,速度更快了,占用内存少了,一句话,WKWebView是App内部加载网页的最佳选择!先看下 WKWebView的特性:在性能、稳定性、功能方面有很大提升(最直观的体现就是加载网页是占用的内存,模拟器加载百度与开源中国网站时,WKWebView占用23M,而U...原创 2016-11-09 13:17:17 · 9937 阅读 · 3 评论 -
监听网络改变, 实时获取网络连通性,ping/发请求
可以使用AFN框架中的AFNetworkReachabilityManager来监听网络状态的改变,也可以利用苹果提供的Reachability来监听。建议在开发中直接使用AFN框架处理。示例代码如下:-(void)afn{ //1.创建网络状态监测管理者 AFNetworkReachabilityManager *manger = [AFNetworkReach.........原创 2016-09-06 16:57:15 · 1358 阅读 · 1 评论 -
三次握手与四次挥手
TCP/IP协议三次握手与四次握手流程解析一、TCP报文格式 TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占32位,只有原创 2016-03-12 10:18:24 · 332 阅读 · 0 评论 -
iOS与js交互
原文http://www.cnblogs.com/wanxudong/p/5581367.html http://www.cnblogs.com/wanxudong/p/5983706.html前提:在iOS控制器中加载UIWebView,设置代理,遵守UIWebViewDelegate协议。 一、iOS调用JS方法 通过iOS调用JS代码实现起来比较方转载 2017-05-22 16:08:53 · 643 阅读 · 0 评论 -
iOS 实现webSocket
闲扯原文 :http://www.cnblogs.com/oc-bowen/p/6019090.htmlFacebook 源码地址 :https://github.com/facebook/SocketRocket今天一个APP需要接websocket了,然后便找到了facebook的 SocketRocket 框架,然后用了一天时间接上了,完成了掉线自动重连,自动重登录,心...转载 2017-06-05 09:53:37 · 672 阅读 · 0 评论 -
https 中的SSL/TLS 加密
HTTPS原文 : http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html,http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后转载 2017-06-08 13:53:01 · 1819 阅读 · 0 评论 -
完整的HTTP请求会经历以下过程
一次完整的Http请求,虽然说的是浏览器,但是换成ios,android也是完全没毛病的。原文http://blog.51cto.com/linux5588/1351007当我们在浏览器的地址栏输入www.linux178.com,然后回车,回车这一瞬间到看到页面到底发生了什么呢?以下过程仅是个人理解:Http 的header会给我们的请求包装,比如AF中经常设置的可接受的Acc...转载 2017-12-05 15:18:48 · 36194 阅读 · 2 评论 -
SDWebImage的主流程
SDWebImage提供了UIImageView的分类来实现从网络端下载数据并缓存到内存和磁盘。非常的流行,现在就主流程分析下.主要的学习链接 :https://www.jianshu.com/p/6183c28df078SDWebImage有如下特点:提供了UIImageView和UIButton的分类。以支持加载网络图片并缓存。 一个异步的图片下载器 提供异步的内存和磁盘缓...原创 2019-02-15 19:25:05 · 922 阅读 · 0 评论 -
最简单的网络请求封装,没有使用AFNetworking
对网络请求的封装 , 没有使用AFNetworking , 直接对原生的NSURLSession进行封装 , 功能比较简单 , 由于要封装一个包给别人用 , 如果我引入了AFNetworking , 别人也引入了 , 工程会报错 , 那我就对网络请求进行了简单的封装 .1.参数的拼接 , 看过AFN的源码, AF会对参数的数组字典嵌套做处理, 但是我的网络请求很简单 , 参数中没有 数组字典的...原创 2018-12-14 14:29:34 · 224 阅读 · 0 评论 -
处理服务器的json中的数字显示价格
在做商城的时候,经常会涉及到价格,但是服务器一般给过来是数字类型 , json转换之后是NSNumber类型,在把NSNumber转成NSString显示到label.绝大多数数字都没有问题,但是某些特殊的数字,比如 服务器给过来时 99.99 , 在json解析后也确实是99.99,但是打印log或者显示在label上变成了99.98999999999999 ,主要是系统是用二进制存贮1...原创 2018-12-13 17:23:57 · 484 阅读 · 1 评论 -
做直播拉流 , 准备的一些资料,亲测有效
知识性的内容比较详细的说了说推流的过程 :https://www.jianshu.com/p/447df915984e推流拉流的:https://www.jianshu.com/p/e516a5b31480对比 hls 和 rtmp的:http://www.samirchen.com/ios-rtmp-vs-hls/直播原理:https://www.jianshu.com/p/b...转载 2018-07-19 16:50:59 · 7876 阅读 · 0 评论 -
iOS webSocket 和 网络 基础知识
原文地址:http://blog.csdn.net/jinglijun/article/details/9365879 这一篇我们先了解一下基本知识,这样对我们后面的学习更加有帮助 。 Socket,WebSocket,Http,Tcp等这些我们已经听的耳朵有茧了,但是用得时候还是复习一下吧。 大学学习网络基础的时...转载 2017-06-05 09:51:39 · 2691 阅读 · 0 评论 -
ios 断点续传
链接:https://www.jianshu.com/p/0e6deea7de87网络下载是我们在项目中经常要用到的功能,如果是小文件的下载,比如图片和文字之类的,我们可以直接请求源地址,然后一次下载完毕。但是如果是下载较大的音频和视频文件,不可能一次下载完毕,用户可能下载一段时间,关闭程序,回家接着下载。这个时候,就需要实现断点续传的功能。让用户可以随时暂停下载,下次开始下载,还能接着上次的下载...转载 2018-02-24 11:18:03 · 386 阅读 · 0 评论 -
读读 AFNetworking
以前看过源码,但是看得很迷,还是这篇文章好,作者很厉害,其他文章也可以看看,原文(是一系列文章,此处是第一篇,后续直接看原文就好) :AFNetworking到底做了什么?转载 2018-03-06 22:06:48 · 919 阅读 · 1 评论 -
HTTP与HTTPS的区别
原文 :https://www.cnblogs.com/wqhwe/p/5407468.html 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付...转载 2017-12-02 18:40:13 · 248 阅读 · 0 评论