iOS网络:协议基础知识-2020-08-26-周三

2020-08-26  本文已影响0人  勇往直前888

基本模式

image.png

HTTP协议

即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

image.png

请求

image.png

响应

image.png

常见的状态码

image.png

URL

image.png

TCP三次握手

image.png

在TCP三次握手之后,建立了TCP连接,此时HTTP就可以进行传输了。一个重要的概念是面向连接,既HTTP在传输完成之前并不断开TCP连接。在HTTP1.1中这是默认行为。

GET和POST

image.png image.png

其实,在实际的移动开发中,统一使用POST进行数据传输就可以了,处理起来也更方便。

iOS中发送HTTP请求的方案

image.png

在实际项目中,一般用AFNetworking;在某些场合也可以使用NSURLSection自己写。

HTTPS

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

image.png
  1. https协议需要到ca申请证书,一般免费证书很少,需要交费。

  2. http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTP 2.0

HTTP/2 源自 SPDY/2,SPDY 系列协议由谷歌开发,于 2009 年公开。它的设计目标是降低 50% 的页面加载时间。当下很多著名的互联网公司,例如百度、淘宝都在自己的网站或 APP 中采用了 SPDY 系列协议(当前最新版本是 SPDY/3.1),因为它对性能的提升是显而易见的。主流的浏览器(谷歌、火狐、Opera)也都早已经支持 SPDY,它已经成为了工业标准,HTTP Working-Group 最终决定以 SPDY/2 为基础,开发 HTTP/2。

  1. 相同的Host占用一个TCP链接

  2. 请求可以设置优先级

  3. 采用二进制协议,而不是之前的文本协议

  4. 多路复用

  5. 头部压缩

  1. 苹果从iOS9开始支持HTTP2.0,对iOS开发人员来说,即是iOS9开始,NSURLSession可以支持HTTP2.0。

  2. 因为苹果已经打算废弃NSURLConnection,所以NSURLConnection不能支持HTTP2.0。

  3. UIWebView也不能支持HTTP2.0(当然,如果你使用UIWebView,然后使用NSURLProtocol,在NSURLProtocol中使用NSURLSession,这样也是可以支持HTTP2.0的),WKWebView是可以的。

说白了,就是什么也不用做,最低支持版本iOS9,用NSURLSession、WKWebview就可以了。

参考文章

上一篇下一篇

猜你喜欢

热点阅读