首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

URLSession:使用http/1.1而不是http/2

URLSession是苹果公司提供的一个用于进行网络请求的框架,它可以用于发送HTTP/1.1和HTTP/2请求。HTTP/1.1和HTTP/2是两个不同的HTTP协议版本,它们在网络通信和性能方面有一些区别。

HTTP/1.1是目前广泛使用的HTTP协议版本,它使用了传统的请求-响应模式,每个请求都需要建立一个新的TCP连接。这种方式在处理大量小型请求时效率较低,因为每个请求都需要进行TCP连接的建立和关闭,造成了较大的延迟。另外,HTTP/1.1在传输数据时没有进行二进制分帧,导致了头部信息冗余和传输效率低下。

HTTP/2是HTTP/1.1的升级版本,它引入了二进制分帧、多路复用、头部压缩等新特性,提高了网络通信的效率和性能。HTTP/2可以在同一个TCP连接上同时发送多个请求和响应,减少了连接建立和关闭的开销,提高了并发处理能力。此外,HTTP/2使用二进制分帧传输数据,减少了头部信息的大小,提高了传输效率。

在使用URLSession进行网络请求时,默认情况下会使用HTTP/1.1协议。如果需要使用HTTP/2协议,可以通过设置URLSessionConfiguration的protocolClasses属性来实现。具体代码如下:

代码语言:txt
复制
let configuration = URLSessionConfiguration.default
configuration.protocolClasses = [URLProtocol.self]
let session = URLSession(configuration: configuration)

以上代码将URLSession的protocolClasses属性设置为URLProtocol.self,这样就可以使用HTTP/2协议进行网络请求了。

URLSession的使用场景非常广泛,可以用于获取网络数据、上传文件、下载文件等。在iOS开发中,常用的网络请求库Alamofire就是基于URLSession封装的。另外,URLSession还支持设置请求超时时间、设置请求头、处理Cookie等功能,非常灵活和强大。

腾讯云提供了云服务产品,其中与网络通信相关的产品包括云服务器、负载均衡、弹性公网IP等。您可以根据具体需求选择适合的产品进行使用。更多关于腾讯云产品的介绍和详细信息,您可以访问腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么叫 HTTP2 ,而不是 HTTP2.0 ?

当然,这个不是标准字段,只是一个临时方案。 三、 HTTP/1.1 1997年,HTTP/1.1 版本发布。进一步完善了HTTP协议,也是目前最流行的版本,一直活跃至今。...而 HTTP/2 通过 Stream 这一设计,允许请求并发传输。因此,HTTP/1.1 时代 Chrome 通过 6 个连接访问页面的速度,远远比不上 HTTP/2 单连接的速度。...HTTP/2 的并发性能比 HTTP/1.1 通过 TCP 连接实现并发要高。...为什么是 HTTP/2 ,而不是HTTP/2.0 ? HTTP/2 工作组特别给出了解释,以前的1.0、1.1 容易让人误解,实际使用中难以区分,所以,决定后续的版本不在使用小版本,一律采用大版本。...为了解决这个问题,Google推出了QUIC协议,让 HTTP 跑在 QUIC 上而不是 TCP 上,这个新版本,我们称之为 HTTP/3 HTTP/3 目前还处于草案阶段,离正式发布还有段时间,我们拭目以待

77740

HTTP HTTPS HTTP1.1 HTTP2 HTTP3

HTTP/1.1 这是HTTP协议目前的流行格式。它是基于文本的协议, HTTP/1.1消息可以是未加密的(网站地址以http://开头),也可以使用HTTPS加密(网站地址以https://开头)。...客户端使用URL的开头来决定要使用的协议,如果未提供,通常默认为http:// HTTP2 2015年发布的HTTP新版本,通过从基于文本的协议转移到二进制协议,解决了1.1版本的性能问题。...HTTP/2没有强制要求使用TLS,可以通过未加密(http://)和加密(https://)通道使用,但是Web浏览器仅通过HTTPS支持它(在此情况下,连接开始时进行的HTTPS协商决定了后面使用HTTP.../1.1还是HTTP/2)。...它将建立在称为QUIC的基于UDP的传输之上(而不是HTTP/1.1和HTTP/2所基于的基于TCP的协议)。 它将在协议中包括HTTPS,因此HTTP/3仅可通过HTTPS使用。

2.7K11
  • HTTP协议之:HTTP1.1和HTTP2

    基本上所有的现代浏览器都支持HTTP/2协议了,但是还有很多应用程序使用的是老的HTTP/1.1协议,本文将会介绍HTTP/1.1和HTTP/2的不同之处。...之前我们讲到HTTP/1.1是以文本的形式进行传输的,这样的缺点就是数据占用的空间比较大,相较于HTTP/1.1来说HTTP/2使用的是二进制进行传输的,使用二进制对消息进行封装,同时保留了HTTP的语义...传输模式对比 在HTTP1.0中,每当客户端向服务器端请求页面的时候,往往返回的不是一个完整的页面,而是这个页面还需要的额外的资源链接信息,因为完整的页面需要所有的资源都下载完毕之后才能展示,所以在HTTP1.0...因为HTTP1.1使用多个TCP连接,多以可以对每一个TCP连接进行单独的流量控制。但是HTTP2使用的是多路复用的模式,所以它的流量控制方式和HTTP1.1是不同的。...我们看下HTTP1.1和HTTP2是怎么做的。

    1.9K30

    详解HTTP1.0、HTTP1.1、HTTP2、HTTPS

    协议,是目前最流行的版本 SPDY :2009年谷歌发布SPDY协议,主要解决HTTP/1.1效率不高的问题 HTTP/2 :2015年借鉴SPDY的HTTP/2发布 五....HTTP/1.0和1.1的区别 缓存处理:HTTP/1.0 使用 Pragma:no-cache + Last-Modified/If-Modified-Since来作为缓存判断的标准;HTTP/1.1...HTTP/2解决了HTTP/1.1的性能问题,主要特点如下: 二进制分帧:HTTP/1.1的头信息是文本(ASCII编码),数据体可以是文本,也可以是二进制;HTTP/2 头信息和数据体都是二进制,统称为...HTTP/1.1取消数据流的唯一方法,就是关闭TCP连接。这就是说,HTTP/2 可以取消某一次请求,同时保证TCP连接还打开着,可以被其他请求使用。客户端还可以指定数据流的优先级。...一方面,头信息压缩后再发送(SPDY 使用的是通用的DEFLATE 算法,而 HTTP/2 则使用了专门为首部压缩而设计的 HPACK 算法)。

    12.4K30

    HTTP2:HTTP1.1你该进步了

    摘要 兼容HTTP1.1 头部压缩 二进制帧 并发传输 服务器主动推送资源 HTTP2的队头阻塞问题 兼容HTTP1.1 HTTP2的优点我们后面会一一列出,但是一个新的东西的升级必须要做到向前兼容才能快速推广...HTTP2对HTTP1.1的兼容体现在哪些方面 协议名依然使用http,加密的依然使用https,浏览器和服务器只需要在幕后自动升级协议,用户并不会感知到协议的变化。...有些Head Value不是固定的,这些value需要经过Huffman压缩后在进行发送。...二进制帧 HTTP2相比于HTTP1.1使用了二进制进行数据传输,提高了HTTP的传输效率,同时也方便了使用位运算对HTTP数据进行解析。...HTTP2的队头阻塞问题 HTTP2虽然在应用层解决了队头阻塞问题,但由于下层还是使用一个TCP连接,所以HTTP2的队头阻塞问题存在于传输层。

    1.1K30

    网络协议(十三):HTTP1.1的升级改进(HTTP2、HTTP3)

    于2015年5月以 RFC 7540 正式发表 根据 W3Techs 的数据,截至2019年6月,全球有36.5%的网站支持了HTTP/2 下列两个网站可以进行 HTTP/1.1 和 HTTP/2 速度对比...http://www.http2demo.io/ https://http2.akamai.com/demo HTTP/2在底层传输做了很多的改进和优化,但在语意上完全与 HTTP/1.1 兼容...- 二进制格式 HTTP/2 采用二进制格式传输数据,而非HTTP/1.1的文本格式 二进制格式在协议的解析和优化扩展上带来更多的优势和可能 2、HTTP/2基本概念 - 数据流、消息、帧 数据流:已建立的连接内的双向字节流...,最后再在另一端把它们重新组装起来 并行交错地发送多个请求,请求之间互不影响 并行交错地发送多个响应,响应之间互不干扰 使用一个连接并行发送多个请求和响应 不必再为绕过HTTP/1.1限制而做很多工作...目前世界上的网络设备基本只认TCP、UDP 如果要修改传输层,意味着操作系统的内核也要修改 另外,由IETF标准化的许多TCP新特性都因缺乏广泛支持而没有得到广泛的部署或使用 因此,要想开发并应用一个新的传输层协议

    11610

    HTTP2和HTTP1.1的区别是什么?

    2.3、二进制协议 HTTP/2在功能和属性方面有了显著的发展,比如从文本协议转换为了二进制协议。HTTP1.x通过处理文本命令来完成请求-响应循环。HTTP/2则是使用二进制命令来执行相同的任务。...二进制协议减轻了构造的复杂性,并简化了由于命令包含文本和可选空格而易被混淆的命令的实现。 浏览器如果使用了HTTP/2的实现,会将命令转化为二进制再进行传输。 ?...对于HTTP/1.1和HTTP/2协议的一点区别。想象一下,服务员是一个TCP连接,而你想要点一份早餐和一瓶水。...服务端推送实践案例: 下面我们用一个简单的例子来探究HTTP/1.1,HTTP/2和HTTP/2服务端推送的区别,我们用一个拥有100张图片的网页来测试。...3、使用HTTP/2来加速你的站点 HTTP/2给我们提供了许多新的技术来减少HTTP/1.1中的问题,这使得我们的web网页性能得到提高。

    1.3K20

    http1.1相对http2有哪些不足

    在http1.1协议下,针对浏览器对每个域名最大并发数的限制,我们可以利用域名分片的技术来进一步缩短时间,什么叫域名分片呢,给同一个网站设置多个域名,比如a.com和b.com都指向同一个网站,这样浏览器对同一个网站的最大并发数就会随着域名的增加而增加...以上便是今天文章的内容,总结一下: 1、在http1.1版本中我们可以针对浏览器对同一个域名支持的最大TCP链接数这个特性,使用域名分片技术来加快资源下载,但是这样会也会随之带来一些问题,服务器压力增大...2、http1.1中的TCP长连接存在队头阻塞的问题,针对同一个tcp链接中的每一http请求必须响应之后后面的http才能继续。...针对这些问题我们给出了一下解决方案,但是终归不是太优雅,随着互联网的高速发展http1.1似乎越来越不能满足当下用户的需求了,http2在这众望所归的时刻到来了,下篇文章带领大家利用http2来改善http1.1...2、当我们请求某个网址的时候,服务器能不能提前将页面需要的重要资源推送过来,而不是等待浏览器扫描html后再去加载?

    1.3K40

    【计算机网络】HTTP 与 HTTPS ( HTTP 发展过程 | HTTP1.1 与 HTTP2 对比 | HTTP 报文格式 )

    文章目录 前言 一、HTTP 发展过程 二、HTTP/1.1 与 HTTP/2 对比 三、HTTP 报文格式 ---- 前言 目前如果在浏览器中访问 http 网站 , 浏览器会提示不安全 , 如下图..., 规定客户端服务器通信格式 ; ( 不是正式标准 ) HTTP/1.0 : 1996 年 , 增加了 PUT , PATCH , HEAD , OPTIONS , DELETE 等命令 , 不再限制传输内容的格式...; ( 正式标准 ) HTTP/1.1 : 1997 年 , 支持 长连接 , 带宽节约 , HOST 域 , 管道机制 , 分块传输编码 等机制 ; ( 目前使用最广泛的版本 ) HTTP/2...: 2015 年 , 支持 多路复用 , 服务器推送 , 头信息压缩 , 二进制协议 等机制 ; ( 逐步推进覆盖市场 ) 目前使用最广泛的版本是 HHTP/1.1 , 但是 2015 年后 ,...HTTP/2 出现 , 逐渐覆盖市场 ; 二、HTTP/1.1 与 HTTP/2 对比 ---- HTTP/1.1 请求网页流程 : ① 建立 HTTP 连接 ; ② 客户端发送 GET 请求 , 请求服务器端的

    80120

    为什么网址一定要用https开头,而不是用http

    正是在这个背景下,HTTPS协议的广泛采用成为了必然趋势,相比传统的HTTP,HTTPS在网站地址(网址)开头的使用,为用户和网站之间搭建起了一道坚固的安全桥梁。...搜索引擎优化与用户体验 搜索引擎如Google明确表示,HTTPS作为排名信号之一,使用HTTPS的网站在搜索结果中的排名可能会优于HTTP网站。...同时,随着浏览器对未加密网站的提示越来越明显,例如显示“不安全”警告,使用HTTPS可以避免此类负面用户体验,增强用户信任度。...这些法规通常要求网站在处理个人数据时采取适当的安全措施,而HTTPS正是实现数据安全传输的重要手段之一。...但随着技术进步,如HTTP/2、HTTP/3协议的引入,以及TLS 1.3的高效加密算法,HTTPS的性能劣势已经大大缩小,甚至在某些场景下,由于协议优化和浏览器预加载机制,HTTPS的性能表现可与HTTP

    18810

    http2将淘汰websocket? http3将使用udp? http新闻

    HTTP / 2被多路复用以解决称为线头阻塞(HOL阻塞)的网络中的已知限制。当在单个TCP连接(即HTTP流水线)上发出多个请求时,HTTP 1.1可能会发生此问题。...HTTP / 2推送服务器只能由浏览器处理,而不能由应用程序处理。 结合HTTP / 2和SSE可提供高效的基于HTTP的双向通信。...不可靠是一个机会 放弃HTTP一直用于UDP的TCP连接并不像看起来那么奇怪。U有时会扩展为“不可靠”而不是用户数据报协议,因为它不保证消息传递或数据包顺序。...“ 默认安全 集成TLS还可以提高安全性,因为身份验证和加密是由网络协议提供的,而不是像TLS这样的高级协议提供的 - 并且在HTTP / 3中内置了TLS,使用它也不是可选的。...当站点使用HTTPS时,浏览器现在会在站点没有加密连接时向您发出警告,而不是显示锁定。HTTP / 3和QUIC是这个方向的另一个举措。 “更多的QUIC是加密的,”汤姆森解释道。

    5.6K30

    解决Nginx配置http2不生效,谷歌浏览器仍然采用http1.1协议问题

    昨天一个网友通过 QQ 联系我,说按照我博客之前分享的 http2 配置教程不能生效,想请我帮忙看看。...经过测试,使用谷歌浏览器访问他的测试站点,确实没有开启 http2,但他的配置和编译参数都正确的,这有点奇怪了。 ? 不过昨天太忙就没有继续帮他分析,他只好将服务器账号和密码都留言给了我。...而他在编译 Nginx 的时候并没有使用--with-openssl=DIR 的选项来静态编译,所以他编出来的 Nginx 用的系统低版本的 openssl,导致谷歌访问时并不会开启 http2!...参考资料: 新版 Chrome 下滚回 HTTP/1.1 Supporting HTTP/2 for Google Chrome Users 所以,解决方法就非常简单了,从openssl 官网下载最新源码包...这里我个人建议使用源码静态编译。 重新编译安装后,再利用谷歌浏览器访问如下网址: chrome://net-internals/#http2 测试他的网站已经成功开启 http2 了: ?

    2.3K70

    LinkedIn 将 Espresso 从 HTTP1.1 迁移到 HTTP2,连接数减少 88%,延迟降低 75%

    作者 | Rafal Gancarz 译者 | 明知山 策划 | 丁晓昀 LinkedIn 将其 Espresso 数据库从 HTTP/1.1 迁移到 HTTP/2,极大 提升 了可伸缩性和性能...,我们早期的方法是使用了 HTTP/1.1,这是一种广泛用于 Web 服务器和客户端之间交互的协议。...团队决定在进行 HTTP/2 迁移时继续使用 Netty 框架,但很快发现其性能并不理想(比 HTTP/1.1 实现的吞吐量低 45%,延迟高 60% 左右),因此工程师们不得不去解决 HTTP/2 栈的性能瓶颈...最后,团队通过创建自定义编解码器来优化编码 / 解码性能,编解码器将 HTTP/2 请求封装为 HTTP/1.1 请求,帮助处理 Espresso 使用的许多自定义 HTTP 标头,并禁用了 HPACK...迁移到 HTTP/2 后延迟减少(来源:LinkedIn Engineering Blog) 团队报告称,在所有这些定制化改进之后,迁移到 HTTP/2 带来了明显的性能改进,相较于 HTTP/1.1,

    15020

    应用层编解码调优思路——HTTP1.1和HTTP2以及编解码工具Protobuf

    在上一篇中和大家分享了HTTPS协议的优化,这一篇我们先从一道被各厂面试官考烂的面试题“从浏览器输入地址到呈现页面中间发生了什么,结合通信协议”出发,开始谈谈HTTP1.1和HTTP/2,简单介绍编解码工具...那对于HTTP1.1我们有什么优化思路呢?...---- 以上是对于HTTP1.1的优化思路,顺着这个思路我们来看看HTTP/2做了哪些优化,它对于H3又有什么可优化的点呢?...客户端与服务器双方对于首次出现的HTTP头部,用相同的规则构建动态表,传输时只传数字即可。 对于HTTP/2支持并发传输请求,不同于HTTP1.1的拉模式,HTTP/2采用主动推送的推模式。...使用Protobuf 的编解码简言之就是把HTTP/2框架实现的字段名映射关系交由应用系统自行完成。对比来看json简化了XML,而Protobuf 优化了json的key部分。

    48210
    领券