spdy

图解kubernetes命令执行核心实现

懵懂的女人 提交于 2020-04-16 15:41:52
【推荐阅读】微服务还能火多久?>>> K8s中的命令执行由apiserver、kubelet、cri、docker等组件共同完成, 其中最复杂的就是协议切换以及各种流拷贝相关,让我们一起来看下关键实现,虽然代码比较多,但是不会开发应该也能看懂,祝你好运 1. 基础概念 K8s中的命令执行中有很多协议相关的处理, 我们先一起看下这些协议处理相关的基础概念 1.1 Http协议中的Connection与Upgrade HTTP/1.1中允许在同一个链接上通过Header头中的Connection配合Upgrade来实现协议的转换,简单来说就是允许在通过HTTP建立的链接之上使用其他的协议来进行通信,这也是k8s中命令中实现协议升级的关键 1.2 Http协议中的101状态码 在HTTP协议中除了我们常见的HTTP1.1,还支持websocket/spdy等协议,那服务端和客户端如何在http之上完成不同协议的切换呢,首先第一个要素就是这里的101(Switching Protocal)状态码, 即服务端告知客户端我们切换到Uprage定义的协议上来进行通信(复用当前链接) 1.3 SPDY协议中的stream SPDY协议是google开发的TCP会话层协议, SPDY协议中将Http的Request/Response称为Stream,并支持TCP的链接复用

前端面试复习:网络篇 | 30岁的我找工作好难

岁酱吖の 提交于 2020-04-10 16:22:37
前言 个人情况(陈年老词): 2020.1 公司因为业务调整,90% 被友好劝退了(N+1)。又逢疫情在家耗了 4 个月,3 月末开始找工作,发现都没人搭理我,快 30 的我开始慌了。 某晚看到 【新鲜面经】 四月面试不用慌,掘友攻略来帮忙| 掘金技术征文展(第一弹) ,深深佩服各位掘友的 掘学 出众,反思自己太“弱”了,就这段时间好好再巩固下前端知识点,希望也能找到个不错的工作。 这篇主要写下 网络相关 的知识点。后续还会涉及:数据结构、js、css、Vue 等一些能归纳的知识块,不会面面俱到,起码为后续自己面试有个足够的准备。 每篇内容肯定不够细致,更多扩展的地方可以看如下的“参考文章”。 参考文章 短期内,无法落地 demo 用于实践,多数还是借鉴网上各个作者的知识总结,这里为他们的付出表示感谢! 【掘金】2020年前端面试复习必读精选文章【赠复习导图】 【掘金】面试官,不要再问我三次握手和四次挥手 【头条】web 前端基础:浏览器的缓存机制 【头条】从事件轮询 Event Loop,看 microTask、macroTask 【bbsmax】HTTP2.0 简明笔记 【segmentfault】你真的了解回流和重绘吗 【github】浅说 XSS 和 CSRF TCP TCP/IP 四层网络模型 TCP(Transmission Control Protocol)

图解kubernetes命令执行核心实现

谁都会走 提交于 2020-04-09 12:43:29
K8s中的命令执行由apiserver、kubelet、cri、docker等组件共同完成, 其中最复杂的就是协议切换以及各种流拷贝相关,让我们一起来看下关键实现,虽然代码比较多,但是不会开发应该也能看懂,祝你好运 1. 基础概念 K8s中的命令执行中有很多协议相关的处理, 我们先一起看下这些协议处理相关的基础概念 1.1 Http协议中的Connection与Upgrade HTTP/1.1中允许在同一个链接上通过Header头中的Connection配合Upgrade来实现协议的转换,简单来说就是允许在通过HTTP建立的链接之上使用其他的协议来进行通信,这也是k8s中命令中实现协议升级的关键 1.2 Http协议中的101状态码 在HTTP协议中除了我们常见的HTTP1.1,还支持websocket/spdy等协议,那服务端和客户端如何在http之上完成不同协议的切换呢,首先第一个要素就是这里的101(Switching Protocal)状态码, 即服务端告知客户端我们切换到Uprage定义的协议上来进行通信(复用当前链接) 1.3 SPDY协议中的stream SPDY协议是google开发的TCP会话层协议, SPDY协议中将Http的Request/Response称为Stream,并支持TCP的链接复用,同时多个stream之间通过Stream-id来进行标记

图解kubernetes命令执行核心实现

一笑奈何 提交于 2020-04-08 13:01:09
K8s中的命令执行由apiserver、kubelet、cri、docker等组件共同完成, 其中最复杂的就是协议切换以及各种流拷贝相关,让我们一起来看下关键实现,虽然代码比较多,但是不会开发应该也能看懂,祝你好运 1. 基础概念 K8s中的命令执行中有很多协议相关的处理, 我们先一起看下这些协议处理相关的基础概念 1.1 Http协议中的Connection与Upgrade HTTP/1.1中允许在同一个链接上通过Header头中的Connection配合Upgrade来实现协议的转换,简单来说就是允许在通过HTTP建立的链接之上使用其他的协议来进行通信,这也是k8s中命令中实现协议升级的关键 1.2 Http协议中的101状态码 在HTTP协议中除了我们常见的HTTP1.1,还支持websocket/spdy等协议,那服务端和客户端如何在http之上完成不同协议的切换呢,首先第一个要素就是这里的101(Switching Protocal)状态码, 即服务端告知客户端我们切换到Uprage定义的协议上来进行通信(复用当前链接) 1.3 SPDY协议中的stream SPDY协议是google开发的TCP会话层协议, SPDY协议中将Http的Request/Response称为Stream,并支持TCP的链接复用,同时多个stream之间通过Stream-id来进行标记

大型网站的 HTTPS 实践(四)-- 协议层以外的实践

泄露秘密 提交于 2020-04-08 02:04:57
本文作者:HelloDeveloper 大型网站的 HTTPS 实践(四) -- 协议层以外的实践 前言 网上介绍 https 的文章并不多,更鲜有分享在大型互联网站点部署 https 的实践经验,我们在考虑部署 https 时也有重重的疑惑。 本文为大家介绍百度 HTTPS 的实践和一些权衡 , 希望以此抛砖引玉。 协议层以外的实践工作 全站覆盖 https 的理由 很多刚接触 https 的会思考,我是不是只要站点的主域名换了 https 就可以?答案是不行。 https 的目的就是保证传输过程的安全,如果只有主域名上了 https,但是主域名加载的资源,比如 js,css,图片没有上 https,会怎么样? 从效果上来说,没有达到保证网站传输过程安全的目的,因为你的 js,css,图片仍然有被劫持的可能性,如果这些内容被篡改 / 嗅探了,那么 https 的意义就失去了。 浏览器在设计上早就考虑的这样的情况,会有相应的提示。具体的实现依赖浏览器,例如地址栏锁形标记从绿色变为黄色 , 阻止这次请求,或者直接弹出非常影响用户体验的提示 (主要是 IE),用户会感觉厌烦,疑惑和担忧安全性。 很多用户看见这个链接会习惯性的点” 是”,这样非 https 的资源就被禁止加载了。非 ie 的浏览器很多也会阻止加载一些危害程度较高的非 https 资源(例如 js)

大型网站的 HTTPS 实践(三)-- 基于协议和配置的优化

浪尽此生 提交于 2020-04-07 03:57:26
本文作者:HelloDeveloper 大型网站的 HTTPS 实践(三) -- 基于协议和配置的优化 前言 上文讲到 HTTPS 对用户访问速度的影响。 本文就为大家介绍 HTTPS 在访问速度,计算性能,安全等方面基于协议和配置的优化。 HTTPS 访问速度优化 Tcp fast open HTTPS 和 HTTP 使用 TCP 协议进行传输,也就意味着必须通过三次握手建立 TCP 连接,但一个 RTT 的时间内只传输一个 syn 包是不是太浪费?能不能在 syn 包发出的同时捎上应用层的数据?其实是可以的,这也是 tcp fast open 的思路,简称 TFO。具体原理可以参考 rfc7413。 遗憾的是 TFO 需要高版本内核的支持,linux 从 3.7 以后支持 TFO,但是目前的 windows 系统还不支持 TFO,所以只能在公司内部服务器之间发挥作用。 HSTS 前面提到过将用户 HTTP 请求 302 跳转到 HTTPS,这会有两个影响: 不安全,302 跳转不仅暴露了用户的访问站点,也很容易被中间者支持。 降低访问速度,302 跳转不仅需要一个 RTT,浏览器执行跳转也需要执行时间。 由于 302 跳转事实上是由浏览器触发的,服务器无法完全控制,这个需求导致了 HSTS 的诞生: HSTS(HTTP Strict Transport Security)

linux编译安装nginx以及各个步骤参数的详解

白昼怎懂夜的黑 提交于 2020-04-06 08:30:32
1.环境以及依赖包的安装 [root@localhost ~]# systemctl stop firewalld && setenforce 0 #首先关闭防火墙和selinux [root@localhost ~]# yum -y install gcc gcc-c++ #安装编译环境 [root@localhost ~]# yum install -y pcre pcre-devel #安装pcre软件包(使nginx支持http rewrite模块) [root@localhost ~]# yum install -y openssl openssl-devel #安装openssl-devel(使nginx支持ssl) [root@localhost ~]# yum install -y zlib zlib-devel #安装zlib [root@localhost ~]# useradd nginx #创建用户nginx [root@localhost ~]# passwd nginx #设置用户密码 2.下载并安装 [root@localhost ~]# wget http://nginx.org/download/nginx-1.16.0.tar.gz #下载,你也可以直接去官网上下载压缩包然后rz上传到虚拟机上 [root@localhost ~]# tar

大型网站的 HTTPS 实践(四)-- 协议层以外的实践

强颜欢笑 提交于 2020-04-06 07:36:55
本文作者:HelloDeveloper 大型网站的 HTTPS 实践(四) -- 协议层以外的实践 前言 网上介绍 https 的文章并不多,更鲜有分享在大型互联网站点部署 https 的实践经验,我们在考虑部署 https 时也有重重的疑惑。 本文为大家介绍百度 HTTPS 的实践和一些权衡 , 希望以此抛砖引玉。 协议层以外的实践工作 全站覆盖 https 的理由 很多刚接触 https 的会思考,我是不是只要站点的主域名换了 https 就可以?答案是不行。 https 的目的就是保证传输过程的安全,如果只有主域名上了 https,但是主域名加载的资源,比如 js,css,图片没有上 https,会怎么样? 从效果上来说,没有达到保证网站传输过程安全的目的,因为你的 js,css,图片仍然有被劫持的可能性,如果这些内容被篡改 / 嗅探了,那么 https 的意义就失去了。 浏览器在设计上早就考虑的这样的情况,会有相应的提示。具体的实现依赖浏览器,例如地址栏锁形标记从绿色变为黄色 , 阻止这次请求,或者直接弹出非常影响用户体验的提示 (主要是 IE),用户会感觉厌烦,疑惑和担忧安全性。 很多用户看见这个链接会习惯性的点” 是”,这样非 https 的资源就被禁止加载了。非 ie 的浏览器很多也会阻止加载一些危害程度较高的非 https 资源(例如 js)

该请求已中止:无法创建SSL / TLS安全通道

拥有回忆 提交于 2020-03-04 11:30:26
由于以下错误消息,我们无法使用 WebRequest 连接到HTTPS服务器: The request was aborted: Could not create SSL/TLS secure channel. 我们知道服务器在使用的路径中没有有效的HTTPS证书,但是为了绕过此问题,我们使用了从另一StackOverflow帖子中获取的以下代码: private void Somewhere() { ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(AlwaysGoodCertificate); } private static bool AlwaysGoodCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors policyErrors) { return true; } 问题是服务器永远不会验证证书,并且会因上述错误而失败。 有谁知道我该怎么办? 我应该提到,一个同事和我几周前进行了测试,并且与我上面写的类似,它运行良好。 我们发现的唯一“主要区别”是我使用的是Windows 7,而他使用的是Windows

How to detect if a server is using SPDY

江枫思渺然 提交于 2020-01-22 11:18:44
问题 Any way to detect if a remote website supports SPDY and what version it is? Something I can use from the command line like a bash script. Tried sending custom User-Agent headers with curl but can't get any kind of response headers that would help me. The idea is to be able to get SPDY:true/false Version:3.1/3.0... for any domain. 回答1: openssl s_client -connect google.com:443 -nextprotoneg '' CONNECTED(00000003) Protocols advertised by server: spdy/3.1, spdy/3, http/1.1 回答2: The SPDY protocol