首页
学习
活动
专区
工具
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 目前还处于草案阶段,离正式发布还有段时间,我们拭目以待

70140

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.1HTTP/2所基于的基于TCP的协议)。 它将在协议中包括HTTPS,因此HTTP/3仅可通过HTTPS使用

2.4K11

HTTP协议之:HTTP1.1HTTP2

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

1.4K30

详解HTTP1.0、HTTP1.1HTTP2、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 算法)。

10.7K30

HTTP2HTTP1.1你该进步了

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

1K30

http1.1相对http2有哪些不足

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

1.2K40

HTTP2HTTP1.1的区别是什么?

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

1.1K20

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

文章目录 前言 一、HTTP 发展过程 二、HTTP/1.1HTTP/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.1HTTP/2 对比 ---- HTTP/1.1 请求网页流程 : ① 建立 HTTP 连接 ; ② 客户端发送 GET 请求 , 请求服务器端的

67220

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

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

11710

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是加密的,”汤姆森解释道。

5K30

解决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 了: ?

2K70

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

11520

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

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

39810

使用 HTTP2 提升性能的几个建议

HTTP/2是二进制(文本)协议,因此更简洁高效; 它针对每个域只使用一个多路复用的连接,不是每个文件一个连接; 首部使用特制的HPACK协议(而非SPDY中使用的gzip)压缩; HTTP/2设计了复杂的优先级排定规则...建议一:现在是否需要迁移到HTTP/2 实现HTTP/2很简单,看看我们的白皮书就明白了(PDF)。不过,HTTP/2不是万能的银弹,它只对某些Web应用有用,对另外一些则没那么有用。...如果你使用SSL/TLS(以后简称TLS),那么HTTP/2可以提升网站性能。如果你没有,那在使用HTTP/2之前要先支持TLS。这时候,使用TLS的性能损耗大致可以被使用HTTP/2的性能提升抵销。...HTTP/2有五大优势。 每个服务器只用一个连接。HTTP/2对每个服务器只使用一个连接,不是每个文件一个连接。这样,就省掉了多次建立连接的时间,这个时间对TLS尤其明显,因为TLS连接费时间。...第二种情况是减少合并某些文件,不是完全不合并。比如,牵扯到很多场景的雪碧图就不用动,被塞得满满的HTML可能就要分离出来一些。

77530
领券