2 小时前 / Ryan众乐
↓推荐关注↓ 6 月 6 日,IETF QUIC(Internet Engineering Task Force,互联网工程任务组,简称 IETF)、比利时的 HTTP 工作组成员 Robin Mark 在 Twitter 上宣布“历时 5 年,HTTP/3 终于被标准化为 RFC 9114。 将与 RFC 9204(QPACK header 压缩)和 RFC 9218 (可扩展的优先级)一起开启 Web 的新篇章!”,这意味着该协议已经进入了稳定的状态,而 HTTP/3 是 HTTP 超文本传输协议的第三个主要版本。 同时 HTTP/2 也更新为新的 RFC 9113 标准。
9 天前 / hyper0x
最近把一个负责的 HTTP 服务搬上了公司的内部的 k8s 平台。由于部分 HTTP 服务还未接入 k8s 平台,所以内部服务之间的交互主要通过内网域名。说到这里,一天下午小土负责的 A 服务跟下游服务 B 的请求一直报警超时,开始小土使用 tcpdump 定时抓包系统采集了一些 pcap 文件,由于小土对抓包也不是很在行,HTTP 抓包也碰了一鼻子灰。在跟同事交流的同时,想到了 httptrace 包,下面主要介绍一下 httptrace 和问题的定位过程。 HTTP trace 的介绍 Go 官方于 2016 年 10 月 4 日发的一篇博文 Introducing HTTP Tracing[1]。翻译见 Go 的 HTTP tracing。
12 天前 / Ryan众乐
6 月 7 日早晨 (UTC 时间 Mon, 06 June 2022 20:09),HTTP/3 标准 RFC9114 由 IETF 标准化工作组正式发布,由此 QUIC 第一代协议族 6 大基础标准(不变量 / 传输框架 / 拥塞控制和恢复 /TLS/HTTP3/QPACK 压缩)全部完成 RFC 化,开启一段新的网络时代。在淘宝,我们从 18 年开始尝试 QUIC,到 21~22 年实现 IETF QUIC 及 HTTP3 标准的规模化应用,针对导购和交易核心链路场景拿到 15~20% 的网络耗时优化收益,同时沉淀自研的标准协议库实现 XQUIC,并于年初开源。
29 天前 / cxc_xinconan
HTTP 1.0 是 1996 年发布的,奠定了 web 的基础。时隔三年,1999 年又发布了 HTTP 1.1,对功能上做了扩充。之后又时隔十六年,2015 年发布了 HTTP 2.0。 同学们肯定会觉得,隔了这么长时间,而且还从版本号还从 1 到了 2,那肯定有很多的新功能。其实不是的,HTTP 2.0 没有没有功能上的新增,只是优化了性能。 为什么要这么大的版本升级来优化性能,HTTP 1.1 的性能很差么? 那我们就来看下 HTTP 1.1 有什么问题: HTTP 1.1 的问题我们知道,HTTP 的下层协议是 TCP,需要经历三次握手才能建立连接。
34 天前 / 蚂蚁金服云原生架构SOFAStack
文|曾柯(花名:毅丝) 蚂蚁集团高级工程师 负责蚂蚁集团的接入层建设工作主要方向为高性能安全网络协议的设计及优化 本文10924字 阅读 20分钟 PART. 1 引言 从前一篇文章《深入 HTTP/3(1)|从 QUIC 链接的建立与关闭看协议的演进》对于 QUIC 的浅述中我们了解到,QUIC 的优化很大程度上是一种基于 TLS 流程的优化,由此也可见 TLS 对于 QUIC 的重要性,那么今天我们就来聊一聊 QUIC-TLS。为了表述尽量没有歧义,我们先来规范下文章中各个术语的意义。
59 天前 / 跨界架构师
这里是 Z 哥的个人公众号 每周五 11:45 按时送达 当然了,也会时不时加个餐~ 我的第「224」篇原创敬上 大家好,我是 Z 哥。 做技术的都知道,程序之间的通讯,常用的方式有两种,RPC 和 HTTP。普遍的共识是系统内部的各个子系统之间的通讯用 RPC,与外部系统之间的通讯用 HTTP。 为了避免需要分别编写两套契约文件来生成两套 API(.proto 和 .api),如果能够根据同一份契约文件生成两套 API 的代码就太棒了。 Z 哥目前所在的公司,rpc 使用的框架是 gRPC,所以自然先想得是,是否能够根据一份 proto 文件,同时生成 gRPC 和 HTTP 的 stub 代码呢。
119 天前 / 后端研究所
今天一起来研究 Http 协议的一些事情,通过本文你将了解到以下内容: Http 协议各版本的对比和优缺点 Http2.0 协议相关的 SPDY 协议、二进制分帧协议、多路复用、首部压缩、服务推送等基本原理 HTTP3.0 和 QUIC 协议 1. Http 协议各版本的对比 Http 超文本传输协议同空气一般,感触不到它的存在但是又无处不在,笔者从维基百科摘录了一些 Http 协议的发展历程的简单信息,一起来看下吧: 超文本传输协议是分布式协作超媒体信息系统的应用协议。超文本传输协议是万维网数据通信的基础,在万维网中超文本文档包括到用户可以轻松访问的其他资源的超链接。
121 天前 / 冷星1024
大家好,我是 ConardLi,我又来给大家解读浏览器策略了,这次是缓存相关的。 设置缓存大家可能大家都是从性能角度去考虑的,但是如果你不注意或者稍微设置不当,缓存也可能对我们的网站的安全性和用户隐私造成负面影响。 开门见山老规矩,先把推荐的配置说出来,后面再啰嗦: 为了防止中介缓存,建议设置:Cache-Control: private 建议设置适当的二级缓存 key:如果我们请求的响应是跟请求的 Cookie 相关的,建议设置:Vary: Cookie 那么为啥推荐这两个配置呢?如果不配置会对我们的网站带来什么风险呢?且听我下面的讲解。
126 天前 / hyper0x
大家好,我是 frank。 欢迎大家点击标题下方蓝色文字「Golang 语言开发栈」关注公众号。 设为星标,第一时间接收推送文章。 文末扫码,加群一起学 Golang 语言。 01 介绍 关于 gRPC 的文章,我们之前写过几篇,如果读者朋友还对 gRPC 不了解,我建议您可以翻阅一下公众号的历史文章。 当我们需要提供 gRPC 服务的 RESTful API 时,可以先创建一个 gRPC 客户端服务,在 gRPC 客户端服务编写 RESTful API,接收到 HTTP 请求时,通过 gRPC 客户端服务调用 gRPC 服务端服务的方法。
148 天前 / reesunhuang
来自公众号:微观技术大家好,我是 Tom 哥~ 今天主要给各位分享 TCP 网络的一些常见知识点,日常工作或面试会经常遇到。考虑内容篇幅不小,建议先收藏,慢慢咀嚼。 如果有帮助,也请转给身边的朋友们,”独乐乐不如众乐乐“ 首先,来个目录,让大家对文章内容先有个直观了解 网络的七层模型,简单介绍每层的作用? 答案:分为 7 层,从下到上依次是: 应用层:计算机用户与网络之间的接口,常见的协议有:HTTP、FTP、 SMTP、TELNET 表示层:数据的表示、安全、压缩。将应用处理的信息转换为适合网络传输的格式。
151 天前 / hyper0x
req 全新 v2 版本带着革命性创新和黑魔法重磅发布啦:https://github.com/imroc/req ( 点击左下角阅读原文可跳转 Github 链接) 易用性和 Debug API 的能力都做到了极致。 链式调用轻松搞定各种复杂场景的 Client 与 Request 配置: 从比较底层处嗅探并提取出原始传输的内容,HTTP2 也不在话下,方便调试 API: 开启 Debug 日志看到更多细节: 国内很多网站还不是 utf-8,老是被乱码困扰?req 默认会嗅探编码并自动转码成 utf-8,从上面的 Debug 日志也能看出来 ( 即便 Content-Type 里没指定也能嗅探)。
151 天前 / 编程一生
《HTTP 状态码 1XX 深入理解》里发起了一个投票:客户端与服务端通信时,所有的 http 状态码是否都是服务端返回的? 现公布答案: 是的! http 状态码共 5 种: 1XX 表示服务端已经收到了请求,但是还需要进一步处理; 2XX 表示服务端已经收到了请求,并且已经分析处理完; 3XX 表示服务端已经收到了请求,但是还需要其他资源或者服务处理; 4XX 表示服务端已经收到了请求,但是无法理解,说明客户端请求姿势不正确; 5XX 表示服务端已经收到了请求,但是由于服务端自身问题无法正确响应。
152 天前 / 编程一生
前段时间看了《御赐小仵作》,里面有很多细节很有心。看了一些评论都是:终于在剧里能够看到真正在搞事业、发了工资第一时间还钱的正常人了。我印象比较深的是王府才能吃上的葡萄。觉得非常合理。剧里说的明明白白,是唐朝中晚期唐宣宗的时候,那时候丝绸之路刚刚开通,西域(现在的新疆以及更西的地方)的葡萄终于能吃上了,这就和那一整段历史给对应上了。 谈到对应的问题,咱们回到正题,http 状态码 1XX。对于 http 状态 200、404、500,大家可能熟悉一些。1XX 可能实际中从来没有见过,今天咱们用剥洋葱的叙述方式,拨开 1XX 状态码的层层面纱。
166 天前 / 豌豆花下猫
大家好,我是肖恩,源码解析每周见 httpbin 是 requests 作者 Kenneth Reitz 的项目,是一个使用 flask 制作的 http 协议演示项目。学习这个项目,我们大概可以获得两个小收获: 学习如何使用 flask 制作一个网站学习一些 http 协议的细节正式开始之前,对 flask 不熟悉的朋友,欢迎去回顾 flask 的源码解析: flask 源码阅读 - 上 flask 源码阅读 - 中 flask 源码阅读 - 下 httpbin 的项目结构我们选用 httpbin 的 v0.7.0 版本,项目大概结构如下: 模块功能 templates 模版文件 core 功能实现 fileters 一些装饰器实现 helpers 一些帮助类 structures 数...